Conectar Eclipse con OpenCms mediante servidor SMB

15/07/2014       Sergio Raposo Vargas       OpenCms 9, Programación

Cuando en el OpenCms Days del 2013 nos contaron que OpenCms 9 venía integrado con SMB, no terminé de verle el filón que tenía. Hablaban de que podríamos acceder a OpenCms como si fuera una unidad de red compartida, pero esto realmente ya lo podiamos hacer por ejemplo con WebDav o CMIS. El potencial de SMB va más allá. Al poder utilizar una carpeta de OpenCms como si fuera una unidad de red, podemos, por ejemplo, trabajar con todos los recursos de dicha carpeta como si fueran archivos locales. Es decir, podemos editar JSP, JS, CSS, etc. directamente desde nuestro ordenador y los cambios se guardan automáticamente en OpenCms. Ya no hay que sincronizar nada, ni subir, ni bajar, nada, todo lo que tocamos está directamente sincronizado y no tenemos el problema de pisar el trabajo de otros compañeros.

Vamos manos a la obra, en este artículo queremos mostrar desde como activar SMB en OpenCms hasta como conectarnos desde nuestro eclipse.

Activar SMB en OpenCms

Antes de comenzar con la activación, debemos tener en cuenta si estamos en un servidor linux o windows.

Para Linux:

  1. Nos vamos a la carpeta de configuración de OpenCms ($OPENCMS_HOME/WEB-INF/config/) y copiamos el fichero jlanConfig.xml.linux y le llamamos: jlanConfig.xml.
  2. Ahora tenemos que redirigir el puerto 445 a 1445, para ello usamos la sentencia de linux:
    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 445 -j REDIRECT --to-port 1445
  3. Guardamos la iptables con iptables-save
  4. Reiniciamos el servidor para que se actualice la configuración

Para Windows:

  1. Nos vamos a la carpeta de configuración de OpenCms ($OPENCMS_HOME/WEB-INF/config/) y copiamos el fichero jlanConfig.xml.windows y le llamamos: jlanConfig.xml.
  2. Ahora tenemos que deshabilitar el servicio de Windows llamado: "Server" o "Servidor"
  3. Damos de alta en el fichero opencms-importexport.xml un nuevo repositorio:
    <repository name="OPENCMS_MODULES" class="org.opencms.jlan.CmsJlanRepository">
          <params>
            <param name="project">Offline</param>
            <param name="root">/system/modules</param>
            <param name="addBOM">false</param>       
            <param name="wrapper">org.opencms.file.wrapper.CmsResourceWrapperReplaceDeleted</param>
          </params>
    </repository>
  4. Reiniciamos el servidor para que se actualice la configuración

 

Configuración de nuevos repositorios

 

Como alternativa podemos crear nuevos repositorios a parte del repositorio por defecto, para ello damos de alta en el fichero opencms-importexport.xml elnuevo repositorio:

<repository name="OPENCMS_MODULES" class="org.opencms.jlan.CmsJlanRepository">
      <params>
        <param name="project">Offline</param>
        <param name="root">/system/modules</param>
        <param name="addBOM">false</param>       
        <param name="wrapper">org.opencms.file.wrapper.CmsResourceWrapperReplaceDeleted</param>
      </params>
</repository>

 

 

Configuración para eclipse

Una vez que ya tengamos activado el nuevo respositorio que hemos llamado OPENCMS_MODULES, podemos conectarnos a la nueva unidad de red. Para probar que todo está funcionando correctamente, intentamos abrir la carpeta usando la dirección:

\\IP_SERVIDOR\OPENMCS_MODULE\

Si todo ha funcionado correctamente deberás ver todas las carpetas correspondiente a los módulos de OpenCms.

Bien, ahora que tenemos esto, vamos a ver los pasos para conectar nuestro módulo en eclipse:

  1. Nos creamos un nuevo proyecto de eclipse (Opcional, si ya tenéis uno creado podéis reutilizarlo)
  2. Seleccionamos el proyecto donde vamos a añadir la carpeta y le damos a: File -> New -> Folder
  3. Pulsamos el botón de Advanced >>
  4. Marcamos la opción: Link to alternative location (Linked Folder)
  5. En la casilla inferior añadimos la ruta a nuestro módulo, que será algo como: \\IP_SERVIDOR\OPENMCS\system\modules\module_name\. Es recomendable crear una unidad de red propia para el OpenCms y utilizar dicha unidad de red a la hora de sincronizarlo con OpenCms.
  6. Opcionalmente podemos cambiar el nombre a la carpeta a crear.
  7. Pulsamos botón Finish

Una vez realizado estos pasos ya tenedremos sincronizada una carpeta de OpenCms en nuestro eclipse, y lista para poder editar cualquier recurso dentro de ella. Todos los cambios que hagamos se guardarán automáticamente sobre el recurso de OpenCms sin necesidad de hacer nada más.

 

 OpenCms 9, SMB, Eclipse