Download manual integración de documentum en un proyecto atlas

Document related concepts
no text concepts found
Transcript
ATLAS
MANUAL INTEGRACIÓN DE
DOCUMENTUM EN UN PROYECTO
ATLAS
Versión 1.0
Unidad de Arquitectura de Software
Framework Atlas
Integración de documentos
Hoja de Control
Título
Manual de de integración de documentos en un proyecto Atlas
Documento de Referencia
NORMATIVA ATLAS
Responsable
Unidad de Arquitectura de Software
Versión
1.0
Fecha Versión
16/09/2013
Registro de Cambios
Versión
Causa del Cambio
Responsable del Cambio
Fecha del Cambio
1.0
Versión inicial del documento
Unidad de Arquitectura de Software
16/09/2013
2 de 16
Framework Atlas
Integración de documentos
Índice
1
INTRODUCCIÓN ................................................................................................................................................................ 4
1.1
1.2
2
AUDIENCIA OBJETIVO .............................................................................................................................................. 4
CONOCIMIENTOS PREVIOS ...................................................................................................................................... 4
CONFIGURACIÓN ............................................................................................................................................................. 5
2.1
PASOS COMUNES .......................................................................................................................................................... 5
2.1.1
2.1.2
2.1.3
2.1.3.1
2.1.3.2
2.2
PASOS SI SE USAN LAS LIBRERÍAS QUE LLAMAN A DOCUMENTUM A TRAVÉS DE WEB SERVICES 8
2.2.1
2.2.2
2.3
INCLUIR LAS DEPENDENCIAS DEL WS DE DOCUMENTUM EN EL POM.XML ................................................................... 8
AÑADIR VARIABLES DE CONFIGURACIÓN A ENVIROMENT.PROPERTIES ........................................................................ 9
PASOS SI SE USAN LAS LIBRERÍAS QUE LLAMAN A DOCUMENTUM DIRECTAMENTE ...................... 10
2.3.1
2.3.2
2.3.3
3
INCLUIR LAS DEPENDENCIAS COMUNES DE DOCUMENTUM EN EL POM.XML ................................................................ 5
AÑADIR EL BEAN DE CONEXIÓN A DOCUMENTUM EN APPLICATIONCONTEXT-SERVICES.XML .................................... 6
IMPORTAR FICHERO DE CONFIGURACIÓN DE BEANS DE SPRING DE DOCUMENTUM ..................................................... 7
SI SE ESTÁ HACIENDO UNA APLICACIÓN BATCH ........................................................................................................... 7
SI SE ESTÁ HACIENDO UNA APLICACIÓN WEB O UN SERVICIO WEB ............................................................................. 8
INCLUIR LAS DEPENDENCIAS DE LLAMADA A DOCUMENTUM EN EL POM.XML ........................................................... 10
AÑADIR LOS FICHEROS DFC.PROPERTIES Y DFC.KEYSTORE AL PROYECTO.................................................................. 10
AÑADIR VARIABLES DE CONFIGURACIÓN A ENVIROMENT.PROPERTIES ...................................................................... 11
USO ...................................................................................................................................................................................... 12
3.1
DEFINICIÓN DE VARIABLES DE ACCESO A DOCUMENTUM EN LA CLASE JAVA ................................. 12
3.1.1
3.1.2
3.1.3
AÑADIR AL SERVICIO QUE SE ESTÁ CREANDO LOS SETTER Y GETTER DE LOS SERVICIOS DE DOCUMENTUM .............. 12
SI SE USA LA IMPLEMENTACIÓN QUE LLAMA A DOCUMENTUM MEDIANTE WEB SERVICE.......................................... 13
SI SE USA LA IMPLEMENTACIÓN QUE LLAMA A DOCUMENTUM SIN PASAR POR WEB SERVICE ................................... 13
3.2
DEFINICIÓN DEL MÉTODO DE ACCESO A DOCUMENTUM EN LA CLASE JAVA .................................... 14
3.3
INYECCIÓN DE DEPENDENCIAS AL BEAN QUE VA A HACER EL USO ....................................................... 14
3.3.1
IMPORTAR FICHERO DE CONFIGURACIÓN DE BEANS DE SPRING DE COMPONENTES JSF DE DOCUMENTUM ............... 15
3 de 16
Framework Atlas
Integración de documentos
1
INTRODUCCIÓN
Este manual explica cómo integrar Documentum en un proyecto web de ATLAS ya existente o en un proyecto
ATLAS de tipo WebService o Batch.
¡SI VA A CREAR UNA NUEVA APLICACIÓN WEB NO USAR ESTE MANUAL!
Si lo que se quiere es hacer una nueva aplicación web se deberá partir del
arquetipo de Documentum que ya tiene configurado todos los pasos de este
manual.
1.1
AUDIENCIA OBJETIVO
Este documento está dirigido a desarrolladores de proyectos java para ICM en los que se deseen integrar
Documentum en su proyecto.
1.2
CONOCIMIENTOS PREVIOS
Para un completo entendimiento del documento, el lector deberá tener conocimientos previos sobre las siguientes
tecnologías:
-
Java
-
Eclipse
-
Documentum
4 de 16
Framework Atlas
Integración de documentos
2
CONFIGURACIÓN
El acceso de cualquier módulo a Documentum debe realizarse obligatoriamente a través de las librerías ATLAS
de acceso a Documentum. Estas librerías, a su vez, pueden conectarse a Documentum de dos formas:
1- Conexión a Documentum a través del webservice
2- Conexión a Documentum directamente sin pasar por el webservice
2.1
PASOS COMUNES
En este punto se explicarán los pasos comunes que siempre hay que hacer cuando se vaya a integrar
Documentum en una aplicación.
En siguientes pasos se explicará la configuración dependiendo de cómo las librerías de Atlas de Documentum van
a llamar a Documentum.
2.1.1
Incluir las dependencias comunes de Documentum en el pom.xml
Añadir la siguiente dependencia de Atlas en la sección <dependencies> del fichero pom.xml de nuestro
proyecto:
pom.xml
<dependency>
<groupId>atlasfrm</groupId>
<artifactId>atlasfrm-gdoc-api-lib</artifactId>
<version>${atlasfrm-gdoc-api-lib.version}</version>
<type>jar</type>
<exclusions>
<exclusion>
<groupId>atlasfrm</groupId>
<artifactId>atlasfrm-comunes-lib</artifactId>
</exclusion>
</exclusions>
</dependency>
Si no existiese la sección <dependencies>, hay que incluirla.
5 de 16
Framework Atlas
Integración de documentos
Incluir las variables de configuración para acceso a documentum en los enviroment.properties
Incluir las variables de configuración todos los ficheros enviroment.properties situados en:
·
·
·
En el directorio src/main/resources
En todos los subdirectorios del directorio war si es en una aplicación web
En todos los subdirectorios del directorio zip si es en una aplicación batch
enviroment.properties
# properties gestion documental
documentum.docbase=prudoc_01
documentum.usuario=adm_atlas
documentum.clave=9007F1C9EF55C193CCB3E60DA386DA29
Hay que tener en cuenta que las variables: documentum.docbase, documentum.usuario y documentum.clave,
deberán contener los valores determinados para la aplicación. (Los valores anteriores son un ejemplo)
¡ATENCIÓN!
La password en el enviroment.properties debe ir encriptada
NOTA
Si los datos de conexión a Documentum no son fijos, sino que dependen del flujo de ejecución en
distintos momentos del tiempo, entonces no se insertarán estas variables en el fichero
environment.properties, sino que se obtendrán del lugar oportuno desde el código de la
aplicación
2.1.2
Añadir el Bean de conexión a Documentum en applicationContext-services.xml
Abrir el fichero src/main/resources/conf/applicationContext-services.xml de nuestro proyecto y
añadir la siguiente definición de bean para los datos de conexión a documentum.
applicationContext-services.xml
<bean id="gdocDatosConexion" class="atlas.core.domain.CoreDatosConexion">
<property name="repo" value="${documentum.docbase}"/>
<property name="username" value="${documentum.usuario}"/>
<property name="password" value="${documentum.clave}"/>
</bean>
6 de 16
Framework Atlas
Integración de documentos
NOTA
Si los datos de conexión a Documentum no son fijos, sino que dependen del flujo de ejecución en
distintos momentos del tiempo, entonces no se insertará este bean en el fichero
applicationContext-services.xml, sino que se obtendrán del lugar oportuno desde el código de
la aplicación
2.1.3
Importar fichero de configuración de Beans de Spring de Documentum
Dependiendo de si se está haciendo una aplicación Batch o Web hay que hacer diferentes cosas para incluir el
fichero de bean de spring de Documentum, según se indica en los siguientes sub-apartados.
2.1.3.1
Si se está haciendo una aplicación Batch
Incluir el fichero de configuración applicationContext-gdoc.xml en el arranque del batch, de forma que se
cargue este fichero al ejecutar la clase BatchRunner.java:
Antes:
BatchRunner.java
/**
* Metodo main que se ejecuta al iniciar el programa
* @param args Argumentos del programa (no requeridos).
*/
public static void main(String[] args) {
log.info("Iniciando contexto de Spring");
AbstractApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"/conf/applicationContext-batch.xml"});
…
Despues:
BatchRunner.java
…
/**
* Metodo main que se ejecuta al iniciar el programa
* @param args Argumentos del programa (no requeridos).
*/
public static void main(String[] args) {
log.info("Iniciando contexto de Spring");
AbstractApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"/conf/applicationContext-batch.xml",
"/conf/applicationContext-gdoc.xml"});
7 de 16
Framework Atlas
Integración de documentos
2.1.3.2
Si se está haciendo una aplicación Web o un Servicio Web
Incluir el fichero de configuración applicationContext-gdoc.xml en el fichero web.xml para que se cargue
en el contexto de Spring al arrancar la aplicación Web:
web.xml
<context-param>
<description>
Este parametro indica la localización exacta de los ficheros de
configuración de SPRING
</description>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/conf/applicationContext-systemProperties.xml;
classpath:/conf/applicationContext-general.xml;
classpath:/conf/applicationContext-services.xml;
classpath:/conf/applicationContext-dao.xml;
classpath:/conf/applicationContext-database.xml;
classpath:/conf/atlas-trazas-application-context.xml;
classpath:/conf/applicationContext-gdoc.xml;
</param-value>
</context-param>
2.2
PASOS SI SE USAN LAS LIBRERÍAS QUE LLAMAN A DOCUMENTUM A TRAVÉS DE WEB SERVICES
Sólo se seguirán los pasos de este apartado si se usan las librerías de ATLAS de Documentum que internamente
llaman a Documentum a través de Web Services. Si se desea utilizar las librerías que llaman directamente a
Documentum sin pasar por el Web Service, deberán seguirse los pasos indicados en el apartado 2.3.
2.2.1
Incluir las dependencias del WS de Documentum en el pom.xml
Añadir las dependencias de Atlas en la sección <dependencies> del pom.xml
pom.xml
<dependency>
<groupId>atlasfrm</groupId>
<artifactId>atlasfrm-gdoc-api-wsclient-lib</artifactId>
<version>${atlasfrm-gdoc-api-wsclient-lib.version}</version>
<type>jar</type>
<exclusions>
<exclusion>
<groupId>atlasfrm</groupId>
<artifactId>atlasfrm-gdoc-api-lib</artifactId>
</exclusion>
<exclusion>
<groupId>atlasfrm</groupId>
<artifactId>atlasfrm-dep-clientews</artifactId>
</exclusion>
<exclusion>
<groupId>atlasfrm</groupId>
<artifactId>atlasfrm-dep-spring</artifactId>
</exclusion>
</exclusions>
</dependency>
8 de 16
Framework Atlas
Integración de documentos
2.2.2
Añadir variables de configuración a enviroment.properties
Incluir las variables de configuración todos los ficheros enviroment.properties situados en:
·
·
·
En el directorio src/main/resources
En todos los subdirectorios del directorio war si es en una aplicación web
En todos los subdirectorios del directorio zip si es en una aplicación batch
enviroment.properties
# Configuración de los servicios web de Documentum
gdocConsulta.endpoint=http://desarrollo.madrid.org/atlas_ws_gdoc/services/consultaWS
gdocGestionCarpetas.endpoint=http://desarrollo.madrid.org/atlas_ws_gdoc/services/gestionCarpetasWS
gdocGestionGrupos.endpoint=http://desarrollo.madrid.org/atlas_ws_gdoc/services/gestionGruposWS
gdocGestionTablas.endpoint=http://desarrollo.madrid.org/atlas_ws_gdoc/services/gestionTablasWS
gdocGestionDoc.endpoint=http://desarrollo.madrid.org/atlas_ws_gdoc/services/gestionDocWS
gdocSessionTicket.endpoint=http://desarrollo.madrid.org/atlas_ws_gdoc/services/sessionTicketWS
Incluir el mismo valor en todos los entornos, aunque no sea el correcto. Cuando se solicite la instalación de la
aplicación en alguno de los entornos de ICM, durante la instalación la Unidad de Paso a Producción se encargará
de modificar los valores para indicar los correctos según el entorno.
9 de 16
Framework Atlas
Integración de documentos
2.3
PASOS SI SE USAN LAS LIBRERÍAS QUE LLAMAN A DOCUMENTUM DIRECTAMENTE
Sólo se seguirán los pasos de este apartado si se usan las librerías de Atlas que internamente llaman a
Documentum, sin usar el Web Service, y usando directamente las DFC (Documentum Fundation Classes) hay que
hacer los siguiente pasos:
2.3.1
Incluir las dependencias de llamada a documentum en el pom.xml
Añadir las dependencias de Atlas en la sección <dependencies> del pom.xml
enviroment.properties
<dependency>
<groupId>atlasfrm</groupId>
<artifactId>atlasfrm-gdoc-api-spring-documentum-impl-lib</artifactId>
<version>${atlasfrm-gdoc-api-spring-documentum-impl-lib.version}</version>
<exclusions>
<exclusion>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
</exclusion>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
</exclusions>
</dependency>
2.3.2
Añadir los ficheros dfc.properties y dfc.keystore al proyecto
En la misma zona de la web de ArquitecturaSw donde se encuentra este manual, deberán encontrarse dos ficheros
que se descargarán y se situarán en el directorio src/main/resources de nuestra aplicación:
·
·
dfc.properties
dfc.keystore
10 de 16
Framework Atlas
Integración de documentos
2.3.3
Añadir variables de configuración a enviroment.properties
Incluir las variables de configuración todos los ficheros enviroment.properties situados en:
·
·
·
En el directorio src/main/resources
En todos los subdirectorios del directorio war si es en una aplicación web
En todos los subdirectorios del directorio zip si es en una aplicación batch
enviroment.properties
# Variables para configurar las DFC's
dfc.data.dir=D\:/Documentum
dfc.docbroker.host0 = icmcs03
dfc.docbroker.port0 = 1489
dfc.globalregistry.repository=desdocum_01
dfc.globalregistry.username=dm_bof_registry
dfc.globalregistry.password=GrRNPhLJrkoTDAZE0RGJow\=\=
dfc.search.ecis.ssl.enable = false
dfc.security.keystore.password = dfc
dfc.security.keystore.privatekey.password = !!dfc!!
dfc.session.allow_trusted_login = false
Estas variables se utilizarán automáticamente por maven para sustituir sus valores en el fichero dfc.properties
anteriormente descargado.
11 de 16
Framework Atlas
Integración de documentos
3
USO
3.1
Definición de variables de acceso a Documentum en la clase Java
En este apartado vamos a hacer un ejemplo de uso llamando el servicio consultaService de la librería Atlas de
acceso a Documentum. Al igual que el servicio consultaService se puede usar cualquiera de los servicios
definidos en el manual de uso de Gestión Documental.
3.1.1
Añadir al servicio que se está creando los setter y getter de los servicios de Documentum
EjemploServiceImpl.java
…
/** Servicio de consulta de documentos */
ConsultaService consultaService;
/** Datos de conexión a documentum */
CoreDatosConexion datosConexion;
/**
* @return the consultaService<
*/
public ConsultaService getConsultaService() {
return consultaService;
}
/**
* @param consultaService the consultaService to set
*/
public void setConsultaService(ConsultaService consultaService) {
this.consultaService = consultaService;
}
…
/**
* @return the datosConexion
*/
public CoreDatosConexion getDatosConexion() {
return datosConexion;
}
12 de 16
Framework Atlas
Integración de documentos
3.1.2
Si se usa la implementación que llama a Documentum mediante Web Service
Añadir un setter para el Bean de conexión a Documentum
EjemploServiceImpl.java
/**
* @param datosConexion the datosConexion to set
*/
public void setDatosConexion(CoreDatosConexion datosConexion) {
this.datosConexion = datosConexion;
}
3.1.3
Si se usa la implementación que llama a Documentum sin pasar por Web Service
En el setter de la conexión de Documentum hay que desencriptar la contraseña, ya que en el fichero
enviroment.properties siempre tiene que ir encriptada y las llamadas a las librerías de Documentum
necesitan esta contraseña sin encriptar:
EjemploServiceImpl.java
/**
* @param datosConexion the datosConexion to set
*/
public void setDatosConexion(CoreDatosConexion datosConexion) {
// IMPORTANTE: Estas líneas sólo se meten si se utiliza la
// implementación que llama a Documentum sin pasar por el
// Web Service, y sirven para desencriptar la password
// antes de mandársela a documentum
String passwordOriginal = datosConexion.getPassword();
if(passwordOriginal != null) {
String passwordDesencriptada =
AtlasCryptoUtils.desencriptaClave(passwordOriginal,
Des_BD.getClaveDesBD());
datosConexion.setPassword(passwordDesencriptada);
}
this.datosConexion = datosConexion;
}
13 de 16
Framework Atlas
Integración de documentos
3.2
Definición del método de acceso a Documentum en la clase Java
En el ejemplo se hace una consulta en DQL (Documentum Query Languaje) para obtener los id de todos los
documentos y luego devolver el número de elementos.
Nota: Es sólo un ejemplo y esta no es la forma óptima de contar el número de documentos.
EjemploServiceImpl.java
/**
* Devuelve el número de elementos de una carpeta en Documentum
* @return el número de elementos de una carpeta en Documentum
* @throws ServiceException Error procesando la petición
*/
public int cuentaDocumentosCarpeta() throws ServiceException {
GDocParametrosConsulta pc = new GDocParametrosConsulta();
String queryDQL = "SELECT r_object_id as resultados FROM dm_document
where folder('/ATLAS',descend)";
pc.setQuery(queryDQL);
GDocResultadoConsulta res =
consultaService.buscar(datosConexion, pc);
List<GDocResultadoConsultaFila> listaResultados =
res.getListaResultados();
if(listaResultados == null) {
return 0;
}
return listaResultados.size();
}
3.3
Inyección de dependencias al bean que va a hacer el uso
Inyectar al Bean del servicio que estamos creando las dependencias de la conexión a Documentum y del servicio
de Documentum al que vamos a llamar en el fichero applicationContext-services.xml
Antes:
applicationContext-services.xml
…
<bean id="ejemploService"
…
class="ejpl.services.EjemploServiceImpl" />
Ahora:
applicationContext-services.xml
…
<bean id="ejemploService" class="ejpl.services.EjemploServiceImpl"
<property name="consultaService" ref="gdocConsulta"/>
<property name="datosConexion" ref="gdocDatosConexion"/>
/>
…
14 de 16
Framework Atlas
Integración de documentos
3.3.1
Importar fichero de configuración de Beans de Spring de componentes JSF de Documentum
a) Desde una aplicación Batch, cargar el fichero de configuración en el arranque del Bath
Antes:
BatchRunner.java
/**
* Metodo main que se ejecuta al iniciar el programa
* @param args Argumentos del programa (no requeridos).
*/
public static void main(String[] args) {
log.info("Iniciando contexto de Spring");
AbstractApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"/conf/applicationContext-batch.xml"});
…
Despues:
BatchRunner.java
…
/**
* Metodo main que se ejecuta al iniciar el programa
* @param args Argumentos del programa (no requeridos).
*/
public static void main(String[] args) {
log.info("Iniciando contexto de Spring");
AbstractApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"/conf/applicationContext-batch.xml",
"/conf/applicationContext-gdoc.xml"});
b) Desde una aplicación web o un servicio web, añadir al web.xml:
web.xml
15 de 16
Framework Atlas
Integración de documentos
<context-param>
<description>
Este parametro indica la localización exacta de los ficheros de configuración
de SPRING
</description>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/conf/applicationContext-systemProperties.xml;
classpath:/conf/applicationContext-general.xml;
classpath:/conf/applicationContext-gdoc.xml;
classpath*:applicationContext-jsf-gdoc-consultas.xml;
classpath:/conf/applicationContext-database.xml;
classpath:/conf/applicationContext-dao.xml;
classpath:/conf/applicationContext-services.xml;
classpath:/conf/applicationContext-security.xml;
classpath:/conf/applicationContext-security-hostPolitica.xml
classpath:/conf/applicationContext-componentes.xml;
classpath:/conf/atlas-trazas-application-context.xml;
</param-value>
</context-param>
16 de 16