Integrar en Alfresco un jar de un custom action

cancel
Showing results for 
Search instead for 
Did you mean: 
cristi
Member II

Integrar en Alfresco un jar de un custom action

Hola!

He creado un custom action para Alfresco con un proyecto de eclipse. Lo he empaquetado en un jar y lo he puesto dentro de: alfresco-3.4.d/tomcat/webapps/alfresco/WEB-INF/lib
Luego, una vez levantado Alfresco, he creado la regla con mi custom action, de forma que se ejecute cuando se cree un nuevo contenido en esa carpeta.

Pero cuando voy a crear un nuevo contenido me doy cuenta de que han desaparecido todos los tipos de contenido (types) que tengo definidos. Solo aparece "content". Y si selecciono ese y creo el nuevo contenido, si que funciona la regla. Pero el problema es que me hacen falta los demás tipos de contenido.

Probando a arrancar alfresco sin el jar, si que aparecen mis tipos de contenido.

¿Es posible que tenga mal la estructura del proyecto? :

src.main.java
-executer
   ·UrlActionExecuter.java
   ·UrlActionHandler.java
src.main.resources
-alfresco.extension
   ·url-actions-context.xml
   ·web-client-config-custom.xml
   ·webclient.properties
src.main.webapp
  -jsp.actions
   ·url-action-executer.jsp

o el build.xml? :

<?xml version="1.0"?>

<project name="Action Url" default="package" basedir=".">
   
   <property name="project.dir" value="."/>
   <property name="build.dir" value="${project.dir}/build"/>
   <property name="package.file" value="${build.dir}/Action-url.jar"/>
   
   <path id="class.path">
      <dirset dir="${build.dir}" />
      <fileset dir="../../lib/server" includes="**/*.jar"/>
   </path>
   
   <target name="compile">
      <mkdir dir="${build.dir}" />
      <javac classpathref="class.path" srcdir="${project.dir}/src" destdir="${build.dir}" />
   </target>
     
   <target name="package" >
      <jar destfile="${package.file}">
         <fileset dir="${build.dir}"/>
      </jar>
   </target>
   
</project>   


Muchas gracias de antemano!
7 Replies
venzia
Senior Member

Re: Integrar en Alfresco un jar de un custom action

Me da que el web-client-config-custom.xml esta sobreescribiendo los bloques config de visualización de tus otros tipos de contenido. Puedes indicar el contenido de este fichero ubicado en el .jar y el del directorio shared/../extension?
Saludos!
cristi
Member II

Re: Integrar en Alfresco un jar de un custom action

Hola innovasoft,

Realmente pienso que el problema está en lo que comentas, que el web-client-config-custom.xml del jar del action está sobreescribiendo el web-client-config-custom.xml situado en shared/../extension que sí contiene la definición de los tipos de contenido. ¿Cómo le puedo decir desde el action que no sobreescriba nada?

El contenido del xml del jar es:

<alfresco-config>
   <config evaluator="string-compare" condition="Action Wizards">
      <action-handlers>
         <handler name="url-action-executer" class="executer.UrlActionHandler" />
      </action-handlers>
   </config>    
</alfresco-config>

y el situado en extension contiene referencias a mis tipos como lo que sigue:

 <config evaluator="string-compare" condition="Action Wizards">
          <subtypes>
              <type name="my:type1"/>
              <type name="my:type2"/>
          </subtypes>
   </config>
    <config evaluator="string-compare" condition="Space Wizards">
      <folder-types>
         <type name="my:type1"/>
      </folder-types>
   </config>

Un saludo y gracias por la respuesta.
venzia
Senior Member

Re: Integrar en Alfresco un jar de un custom action

Si no me equivoco vale cualquier nombre de fichero que cumpla el patron *-custom.xml y se encuentre en el "classpath". Prueba a nombrar el del jar como web-client-custom.xml y reinicias Alfresco (ahora mismo no dispongo de ninguna instancia para hacer pruebas).
Ya nos cuentas que tal.
Espero que te sirva de ayuda.
cristi
Member II

Re: Integrar en Alfresco un jar de un custom action

Sí! eso ha funcionado!  Smiley Very Happy
Muchas gracias!

Un saludo.
cristi
Member II

Re: Integrar en Alfresco un jar de un custom action

Hola de nuevo,
parece ser que se arregló esa parte, pero al haber cambiado el nombre al web-client-custom.xml, no reconoce la jsp. Cuando voy a crear la regla, selecciono mi custom action, pero al darle a "add values or set" no me aparece la jsp.

Un saludo.
venzia
Senior Member

Re: Integrar en Alfresco un jar de un custom action

Hola de nuevo,
Si el contenido de tu fichero web-client-custom es el que indicabas no deberias tener problemas con el cambio de nombre. Te sugiero revises cualquier referencia que se pueda hacer al antiguo nombre de fichero en tu desarrollo.
De cualquier forma, una opción para salir del paso puede ser cambiar el nombre al otro fichero (el de extension) y dejar el del .jar como estaba inicialmente, prueba con otros nombre si quieres, cumpliendo siempre *-custom.xml.
A ver si damos con la tecla.
Saludos!
cristi
Member II

Re: Integrar en Alfresco un jar de un custom action

Hola!

Voy a recapitular las pruebas que he hecho:

- Renombrar el fichero que contiene los custom types como web-client-custom.xml y el del custom action lo he renombrado como web-client-config-custom.xml –> De esta forma no coge los custom types.

- Renombrar el fichero que contiene los custom types y el del custom action como web-clien-config-custom.xml –> De esta manera no coge los custom types.

- Renombrar el fichero que contiene los custom types como web-client-config-custom.xml y el del custom action como web-client-custom.xml –> En este caso lo que pasa es que sí aparecen los custom types, pero en la acción, al crear la regla asociada a dicho custom action, al pulsar el boton "add values or set" no aparece la jsp para dar valor al parámetro del action. Así pues, en este caso el action no funciona como se espera.

He revisado si se referencia directamente con el nombre al web-client-config-custom.xml del action, pero no es así, así pues si renombro este fichero no encuentro otro sitio donde también deba renombrarlo.

El contenido del web-client-config-custom.xml del action es:
<alfresco-config>
   <config evaluator="string-compare" condition="Action Wizards">
      <action-handlers>
         <handler name="url-action-executer" class="executer.UrlActionHandler" />
      </action-handlers>
   </config>   
</alfresco-config>

Un saludo.