Translate

jueves, 21 de marzo de 2013

Listar usuarios en Share

Hace poco me han preguntado en un curso como se podia obtener el listado completo de usuarios desde la interfaz de Alfresco Share, que a diferencia del Alfresco Web explorer no tiene un boton del tipo "mostrar todos".

Hasta las versiones 4.1 siempre había recurrido al wildcard '*' ya que el mecanismo de búsqueda obligaba a poner almenos uno. Incluso en algunas búsquedas que exigen almenos 3 carácteres se había podido usar '***'.


En la versión 4.1.3 he podido comprobar como el asterisco '*' ya no devolvía ningún resultado, sin embargo tenemos la posibilidad de utilizar el wildcard '%' ya que las consultas de los usuarios se hacen a la base de datos para evitar problemas de consistencia con SOLR.


miércoles, 20 de marzo de 2013

File System Transfer Reciever


Cuando hablamos de replicación en Alfresco normalmente nos referimos a la replicación de contenidos entre repositorios de Alfresco, pero está no es la única opción que tenemos. En algunos casos por ejemplo podriamos estar ejecutando un sitio web con una tecnología diferente que simplemente requiera una estructura de ficheros en el filesystem, al más puro estilo CMS.

Aunque el transfer service apareció por primera vez en la versión 3.3, no ha sido hasta la versión 4 cuando hemos podido tener una interfaz web que haga uso de este servicio


Algunas características del File System Transfer Reciever o FSTR:

  • Permite transferir carpetas y contenido a un file system remoto a través del Transfer Service.
  • El file system de destino se establece especializando el tipo transfer target a file system transfer.
  • Nos permite establecer un mapeo entre la raíz del file system de origen y de destino.
  • Soporta la sincronización del Replication Service
  • Usa una base de datos derby para mantener el historial de nodos sincronizados (no usa la estructura del contentstore de Alfresco).
  • Se ejecuta bajo una instancia de Tomcat 7 como una aplicación web usando el framework de webscripts
El File System Transfer Reciever que viene empaquetado como un zip que se instala a parte y está disponible tanto para versiones Community como Enterprise. La estructura del fichero zip es la siguiente:

|- classes/
  |   |- 
ftr-custom.properties
  |   |- ftr-custom-context.xml
  |   |- 
ftr-launcher.properties
  |   |- ftr-launcher-context.xml
  |   |- log4j.properties
  |- lib/
  |   |- <various libs>
  |-
webapps/
  |   |- file-transfer-
receiver.war
  |- file-transfer-receiver.jar

En los ficheros properties configuramos:

ftr-launcher.properties

  ftr.tomcat.baseDir=${user.dir}
  ftr.tomcat.portNum=9090
 
ftr-custom.properties
  
  ftr.tomcat.portNum=9090
  fileTransferReceiver.stagingDirectory=./ftr-staging
  fileTransferReceiver.rootDirectory=./ftr-root
  fileTransferReceiver.jdbcUrl=jdbc:derby:./derbyDB;create=true;user=alfresco;password=alfresco
  fileTransferReceiver.username=admin
  fileTransferReceiver.password=admin

El staging directory será el directorio temporal donde se va a realizar la replicación y una vez está haya concluido se moverá al root directory.  Una vez configurado levantaremos el servicio:

java –jar file-transfer-receiver.jar
 
En la interfaz de Share crearemos primero el target, para ello tendremos que crear una carpeta en la ruta siguiente:
La carpeta Default Group tiene una regla que automáticamente especializa las carpetas al tipo trx:transferTarget. Como en este caso lo que necesitamos es una especialización a trx:fileTransferTarget. A día de hoy y con la versión 4.1.3 no podremos realizar este cambio a menos que editmos el ficher share-config-custon.xml y añadamos a la seccion types lo siguiente:

      <types>
         <type name="cm:content">
         </type>

         <type name="cm:folder">
         </type>

         <type name="trx:transferTarget">
               <subtype name="trx:fileTransferTarget" />
         </type>
      </types>

Además deberemos activar la replicación a nivel de configuración en el fichero alfresco-global.properties
 replication.enabled=true
En las acciones del directorio que acabamos de crear (pulsar 2 veces en el directorio creado sobre la barra de navegación) tendremos la accion Change Type y nos aparecerá un desplegable para especializar al tipo fileTransferTarget


Editando las propiedades establecemos la configuración:


Y configuramos el job de replicación a través de la consola de administración

Y ejecutamos o programamos el job. En la consola del fstr veremos un mensaje cuando se finalice la replicación

Status update: COMPLETE

Y podemos comprobar que la estructura de ficheros aparece bajo la ruta configurada:

alfresco@alfresco:/opt/ftr$ ls ftr-root/
Drafts  Effective  In Review