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