Saúl García Díaz

Consultor tecnológico de desarrollo de proyectos informáticos.

Charla sobre LiquiBase

Charla sobre Alfresco Community Edition

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/JEE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2009-11-23

Tutorial visitado 18.968 veces Descargar en PDF
Alfresco -Añadiendo contenido desde nuestras aplicaciones Java

 

Alfresco - Añadiendo contenido desde nuestras aplicaciones Java

 


0. Índice de contenidos.

 

 

1. Introducción

 

Alfresco es la alternativa de código abierto para la gestión de contenido empresarial (ECM), proporcionando gestión documental, colaboración, gestión de registros, gestión de información, gestión del contenido web e imágenes. En esta ocasión de entre todas las posibilidades que ofrece Alfresco vamos a fijarnos en la gestión documental. La gestión documental de Alfresco captura, comparte y retiene contenido, permitiendo a los usuarios versionar, buscar y crear de forma sencilla sus propias aplicaciones de contenido, todo ello con las herramientas utilizadas hoy en día. Sin embargo no siempre es productivo que manejemos todos nuestro contenidos con Alfresco ya que podemos perder el control sobre la información especifica que define cada unos de los contenidos que añadimos.

Por eso es una buena opción tener aplicaciones Java que manejen todos los datos referentes a los contenidos que deseamos añadir sin que Alfresco tenga por que saber nada de los mismos. Este tutorial no pretende tratar Alfresco en profundidad, sino mostrar cómo dar nuestros los primeros pasos en la comunicación entre nuestras aplicaciones web y Alfresco.


Antes de empezar, os recomiendo que sigáis el siguiente tutorial de nuestro compañero Víctor Instalación Alfresco (Labs)

 

Dado que ciertas imágenes son demasiado grandes, aquellas que tengan un icono en la parte inferior derecha, podrán ser redimensionadas si se pulsa en ellas.

 

2. Entorno

 

El tutorial está escrito usando el siguiente entorno:

 

  • Hardware: Portátil Dell Latitude E5500(Core Duo T9550 2.66GHz, 4GB RAM, 340 GB HD)
  • Sistema operativo: Windows XP.
  • JDK 1.6.0_1
  • Eclipse ganymede
  • Maven 2.1.0
  • Alfresco Comunity Edition 3.2
  • SDK Alfresco 3.2
  • Tomcat 6.0.18

3. Configuración

 

Para poder llevar a cabo el web services que comunique nuestra aplicación con Alfresco lo primero que debemos hacer es instalar en el repositorio local de maven las siguientes librerías:


  • Alfresco-repository-3.2.jar
  • Alfresco-web-client-3.2.jar

 

Actualmente no hay ningún repositorio público de Maven para descargarse estos jar y ver las referencias que debiésemos poner en nuestros pom.xml. Sin embargo podemos encontrarlos en el directorio de instalación de Alfresco /Alfresco-community-sdk-3.2/lib/server A continuación vemos como instalarlos:

 

Copiamos las librerías en otro directorio, en C por ejemplo, renombramos estos jar quitándole del nombre de fichero la versión. Este paso es opcional pero muy recomendable para evitar la redundancia en nuestro repositorio local. De esta manera no aperecerá la versión en los artifacId.

Ahora desde línea de comandos nos situamos en el directorio donde se encuentran los jar y ejecutamos:

4. Creando Contenido

 

Una vez instaladas las librerías necesarias construimos la clase que manejará la comunicación con Alfresco. En un principio nos vamos a servir del ejemplo que proponen en el SDK de Alfresco, ya que es un ejemplo sencillo, perfecto para comenzar.

Revisemos el método addContent:

     

  • Inicia la sesión con alfreso
Pasando como parámetros el usuario y password por defecto para Alfresco.

     

  • Recupera la referencia al nodo donde se creará el contenido
Es importante destacar que Alfresco, por defecto define un conjunto de espacios y nodos donde añadir el nuevo contenido. Para el ejemplo añadiremos el nuevo contenido en el nodo company_home que se encuentra en el espacio SpaceStore. Como vemos se recupera la referencia al espacio de trabajo y a continuación la referencia al nodo del que colgará el nuevo contenido.

     

  • Define el nombre para el nodo hijo
Se forma un String con el nombre y se asigna al nodo padre el nombre para el hijo. Como veremos en las siguientes líneas de código también se utilizará el nombre tanto en la creación del nodo como en la creación de los aspectos.

     

  • Construye el nodo donde añadiremos el contenido.
Se define el nombre para el nodo, el mismo que se había asignado al nodo padre en el paso anterior. Además se crea el nodo pasando como parámetros el id local para el nodo, la referencia al nodo padre ,el tipo de contenido y las propiedades definidas para el nodo.

Anteriormente habíamos comentado que Alfresco define una serie de espacios y nodos por defecto. Pues bien, tambien define varios tipos de contenidos por defecto como por ejemplo el tipo content. Este es el tipo de contenido que le estamos indicando con el parámetro Constants.TYPE_CONTENT a la hora de crear el nodo.

     

  • Añade aspectos al nodo

Por el momento y respecto a los aspectos es importante saber que su objetivo principal es añadir funcionalidad a los tipos de contenidos existentes. Además los aspectos pueden tener propiedades que podremos manejar y que darán forma al contenido asociado. Para el ejemplo utilizamos unos de los aspectos definidos en Alfresco Constants.ASPECT_TITLED.Este aspecto posee una serie de propiedades como usuario_creación , fecha_creación, autor, fecha_modificación etc .. de las cuales modificamos titulo y descripción. Por último es importante destacar como a la hora de crear el aspecto se pasa como último parámetro "1".Este parámetro es el id_local del nodo que se ha creado en el paso anterior. De esta forma se asocia el aspecto al contenido

     

  • Crea CML con el nodo y el aspecto

Se crea el tipo de objeto necesario para crear y recuperar el contenido vía Web Service.

     

  • Crea y recupera el contenido vía Web Service
Se crea el contenido en Alfresco y se recupera su referencia. Esto nos permitirá poder escribir dicho contenido como vemos a continuación.

     

  • Escribe el contenido

Destacamos como a la hora de escribir el contenido se indica la referencia del contenido, el tipo y la codificación del documento, los bytes de información y que va a ser un contenido.

 

5. La aplicación.

 

Nuestra aplicación es muy sencilla.Consta de una pantalla donde podremos seleccionar un documento del sistema.Recuperaremos el nombre y el tipo de archivo,y añadiremos como información adicional el titulo y la descripción del documento.Podría ser algo como:

Cuando hagamos click el botón de Añadir contenido pasaremos por el método de acción correspondiente en nuestro controlador para esta pantalla y se llamará al método addContent definido anteriormente en la clase AlfrescoComunication, aunque con algunas modificaciones que nos permitirán añadir como contenido en Alfresco distintos tipos de documentos asignándoles el nombre, el titulo y la descripción.

A continuación vemos como quedaría la nueva versión del método:

Podemos observar que la única diferencia son los parámetros que hemos recogido desde el interfaz de usuario. Es importante destacar que además de las propiedades que se ven por pantalla cuando seleccionamos un fichero recuperamos sus bytes para pasarlo como parámetro junto con el resto y así poder escribir el contenido correctamente y de forma independiente del tipo de fichero seleccionado.

 

6. Comprobando el resultado.

 

Una vez tenemos nuestra aplicación en funcionamiento y hemos añadido algún documento como contenido de Alfresco vamos a ver cuál ha sido el resultado. Para ello accedemos ha Alfresco:

 

Nos logueamos y accedemos desde el menú lateral de la izquierda a Company Home, podremos comprobar gratamente como se encuentra el documento que hemos añadido desde nuestra aplicación y podremos ver que se ha creado con el nombre ,el titulo y la descripción que le hemos facilitado.

 

 

Como vemos se ha creado correctamente el contenido con el documento que hemos seleccionado desde la aplicación, podemos comprobar que en este caso la imagen se ve correctamente y además se simboliza con el icono correspondiente para las imágenes.

 

7. Conclusiones.

 

Como había comentado al principio del tutorial, no he pretendido tratar temas de Alfresco en profundidad ni mucho menos. Solamente he intentado mostrar cómo podemos sacarle mas partido a una herramienta que en su categoría esta de moda, pero que por si sola quizás no sea capaz de adaptarse a ciertos modelos de negocio, sobre todo ha aquellos que ya están predefinidos con anterioridad y que se basan en otras aplicaciones de gestión desarrolladas en Java por ejemplo. Sin embargo con esto no estoy desmereciendo la herramienta ya que como veremos en futuros tutoriales Alfresco es una herramienta potente y con mucha miga que tratar(Creación de contenidos personalizados, creación de aspectos, búsquedas, búquedas avanzadas, reglas de acción asociadas al contenido o a los aspectos, etc).
Hoy hemos visto como añadir contenido, pero también veremos como realizar búsquedas y como borrar contenidos de Alfresco desde nuestra aplicación.
Como veís quedan muchas cosas en el tintero que espero ir contando en próximos tutoriales. Hasta entonces espero que les sirva de utilidad esta primera aproximación a Alfresco y su conexión con aplicaciones Java.

 

Un saludo.

 

Saúl

 

Correo a: sgdiaz@autentia.com

 

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2010-03-04-17:38:36

Autor: mark

hola saul...

primeramente quiero felicitarte a ti y todos los integrantes de AUTENTIA ..

tengo una duda ..tengo una aplicación con ICEFACES 1.8 desarrollada con netbeans 6.5 y server Glassfish..como hago para las librerías necesarias si no estoy utilizando maven.. y además como le indico a alfreco en que lugar de la página debo ubicar los contenidos ya sean imágenes, texto..etc

de antemano MUCHAS GRACIAS!!

SALUDOS!!!