Consultor tecnológico de desarrollo de proyectos informáticos.
Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación
Somos expertos en Java/JEE
Regístrate para votar
Alfresco - Añadiendo contenido desde nuestras aplicaciones Java
0. Índice de contenidos.
- 1. Introducción.
- 2. Entorno
- 3. Configuración
- 4. Creando Contenido
- 5. La Aplicación
- 6. Comprobando el resultado
- 7. Conclusión
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
- Recupera la referencia al nodo donde se creará el contenido
- Define el nombre para el nodo hijo
- Construye el nodo donde añadiremos el contenido.
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
- 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
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.
Comentarios
-
2010-03-04 - 17:38:36markhola 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!!!









