Posts Tagged 'Java'

Alfresco Monitoring with JavaMelody

JavaMelodyInspired by Toni de la Fuente (@toniblyxpost about (Alfresco) server monitoring using JavaMelody, I decided to replicate the effort. Continue reading ‘Alfresco Monitoring with JavaMelody’

Alfresco development using JRebel – less restarting, more focus

JRebelA while ago I was pointed to JRebel, and recently had some time to fire it up. JRebel is a tool that can prevent restarts of your (web)application by dynamically loading  classes and classpath changes. This effectively means that the number of restarts during development can be dramatically reduced, having all kind of benefits. The most obvious is you loose less time waiting for the system to restart. Side effects I notice, is that I stay more focussed on developing and solving the problem at hand. I do not dive into distracting activities as email, webbrowsing, chats, getting/drinking coffee or beer to spend the time ‘effectively’, waiting for my application server to be back online again. I stay in the ‘flow’, stay focussed, and be productive. Continue reading ‘Alfresco development using JRebel – less restarting, more focus’

Executing JNDI based Pentaho reports using the Java API

alfresco business reporting logoI am working on the Alfresco Business Reporting project. In there, the tool can execute PentahoJaspersoft reports (against Alfresco business objects, using the Pentaho/Jasersoft Java API) on a scheduled basis. I ran into the issue of portability of the (Pentaho) reports. The database, url, credentials were not identical on my Development, Test and Production environments… JNDI is the answer.

(How) Is your Alfresco repository being used?

In a recent post I just discovered this “Alfresco generate reports with JasperReports” project. It seemed to fit my needs for reporting against Alfresco and Share, and I was very happy and exited. However… It appeared to be too complex to use.

I try to be as little indispensible as possible. If someone from ‘the business’ is in need of reporting, I try to give access to a tool that suits his/her needs. If they need to create or modify a report, they should not be dependent of me, or anyone else capable of doing Alfresco Magic. Being build op Open Standards and proven technologies does not mean everybody is capable of doing everything with it

My view on reporting is:

  1. ‘The business’ should be able to create/maintain reports.
  2. The reporting environment should support Aspects. If one adds a type with some additional properties, the reporting environment should be able to deal with it, without manual reconfiguring.

Continue reading ‘(How) Is your Alfresco repository being used?’

Ephesoft CMIS Export plugin using Alfresco’s Aspects

Ephesoft is a great tool to process scanned pages, construct documents again (no separator pages anymore), gather metadata, and read barcodes and line items. Next to that it is build on a wide diversity of open standards. CMIS is one of them, and it is a perfect standard to use to get the document and metadata as a whole to a content management system of choice (as I described before). The major document management solutions implemented this open industry standard in their latest releases. The ‘biggest’ downside is the CMIS standard is bound to Document Types being transfered. Alfresco is focused on the concept of an Aspect, a bundle of metadata and behavior that one could assign to any object. Alfresco has created an CMIS extension that supports these Aspects. This blog post describes how to use this extension to allow Ephesoft to export Alfresco Aspects using CMIS. Continue reading ‘Ephesoft CMIS Export plugin using Alfresco’s Aspects’

Executing named scripts as System in Alfresco

Sometimes you are assigned to a running project, and wonder why some design decisions have been made. I am facing rule-triggered scripts trying to change permissions on a folder structure, that travels the repository (folder based routing alike). And in this project there is (of course) no time/budget to decently solve this. This results in a system where no one should change any permission because it results in a failing system. (The folder structure has nodes with -very- limited permissions for most users, therefore coordinators cannot modify them). These scripts need to run as System of course. There are quite a bunch of these, and a simple, quick solution has my preference (it’s my own time right?).

This blog describes how I tweaked the class responsible for executing scripts in Alfresco. A set of scripts can be named that will be executed as System user, therefore eliminating my issues with permissions. All other scripts will be run as before, having the context of the user invoking them. It is a follow up on my ‘Sudo for Scripts in Alfresco‘ post, originated from the discussion with Fabio Strozzi. Continue reading ‘Executing named scripts as System in Alfresco’

Sudo for Scripts in Alfresco

sudoToday I ran into the pitfall of Alfresco scripts and permissions again. For all kind of reasons I cannot rewrite code, but run into trouble because a user having a particular role executes a script that modifies permissions. This of course fails if this user has less permissions on a given space or document than expected. The user/group will have more permissions (that make no sense) than needed, and only a little tiny change in the security settings can screw-up the transaction the script is part of. The best approach is of course to get rid of the script approach at all (related to permissions), and implement a decent class running as System. But I cannot.

I remember having seen the sudoUtils in the past, and the improved version after that, created by Fabio Strozzi. This is nice, but not exactly matching my use case/requirements. I have no clue who executes this function. An unknown, in time growing set of groups can execute, but only if it is defined in a particular script. The script limits the access, not the user or group. It would make sense to allow execution of a particular named script (or better, a set of predefined scripts). My idea is that I can define a set of scripts that can be executed as System user. However, to make sure we meet security, these named scripts (in alfresco-global.properties) need to be loaded from classpath, not from repository.

Lets face it, if someone has access to the file system, anything is possible… Continue reading ‘Sudo for Scripts in Alfresco’