Si
estáis pensando en empezar una aplicación J2EE sobre Alfresco, os
dejamos unos cuantos consejos e ideas que hemos adoptado en un
recién finalizado proyecto.
OpenCMIS y para todo lo demás Webscripts
Tomamos la determinación de
que intentaríamos adaptarnos a lo que CMIS nos diera (OpenCMIS
para Java , en nuestro caso v0.4) , y que para aquellas
partes que no se pudieran cubrir con la implementación del
estándar, desarrollaríamos servicios personalizados mediante
webscripts.
Con
el proyecto finalizado,
la
implementación CMIS de Alfresco junto con OpenCMIS nos ha
provisto de todo lo necesario para nuestro desarrollo con
las siguientes pequeñas excepciones en forma de webscript:Notificaciones
Email; Webscript para la generación de notificaciones vía
email dada cierta casuística, debido a que el sistemas de
reglas y acciones para el envío de notificaciones
proporcionada por Alfresco desde su interfaz no se ajustaba
a nuestras necesidades.Categorías;
Obtención de las subcategorías que pertenezcan a las
categorías establecidas en el modelo de desarrollo.Asociaciones; Con la versión 0.4 de OpenCMIS no pudimos hacer
gran cosa a la hora de trabajar con asociaciones. Aunque el
establecimiento de estas sí fue posible, no pudimos realizar
búsquedas sobre estos campos, por lo que acabamos adoptando la
medida de crear un webscript para relacionar objetos tipo
folder ↔ folder y folder ↔ person.
Herramientas para el desarrollo de webscripts
Consola JavascriptLas
ventajas de usar la consola ya lo hemos comentado en previas
entradas.Si
como nosotros, tenéis la necesidad de crear webscripts, la
consola Javascript de Alfresco Share os permitirá probar la
parte servidora de Javascript.
Eclipse
Freemarker plugin
Crear
plantillas
Freemarker
puede resultar cansino si no se tiene una forma de
validar la sintaxis básica. Es por ello que el
freemarker.jar del plugin
JBoss
Tools Project
os será de gran utilidad. Contiene syntax-highlight,
así como autocompletado de su API.En
nuestro caso lo instalamos desde el Marketplace de
Eclipse sin problemas.
Uso de paquetería OpenCMIS
Antes de
empezar el proyecto es conveniente conocer la paquetería que
tenemos a nuestra disposición, para así evitar trabajo de más. En
nuestro caso, encontramos de utilidad los siguientes objetos:
PropertyIds;
Listado de propiedades de objetos OpenCMIS (cmis:name,
cmis:objectId, cmis:createdBy…)Interfaz
CmisObjectProperties
con los métodos básicos de
objetos OpenCMIS (getName(), getProperties(),
getProperty(String), getCreatedBy(), getId(), …)Uso de QueryStatements; El
hermano de los PreparedStatements de JDBC
http://chemistry.apache.org/java/0.5.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/QueryStatement.html
CMIS WorkbenchUn amigo
necesario para entender cómo se almacena la información bajo CMIS
y realizar búsquedas mediante CMIS-SQL.
Si
vosotros también tenéis vuestros ‘básicos’, compartirlos con
nosotros 😉