Nuevos Objetos para motor JavaScript
- Área: Extensión de Alfresco
- Carácter del recurso: Recomendado
Descripción
Es posible crear y añadir Script API's personalizados implementados en Java y accesible como objetos raíz en JavaScript. Este proporciona un punto de integración para extensiones de Alfresco que proporcionar API'S a medida.
Definición del Objeto
Extender la Clase
El primer paso sera realizar una clase en nuestro proyecto que extienda de BaseProcessorExtension, en la cual definiremos los métodos públicos para que sean accesibles mediante el objeto que creemos en JavaScript.
public final class test extends BaseProcessorExtension
{....}
Definición de objeto ServiceRegistry
Es necesario implementar este objeto dado que es el que nos proporcionara cualquier servicio que se requiera .
private ServiceRegistry serviceRegistry;
public void setServiceRegistry(ServiceRegistry services)
{
this.serviceRegistry = services;
}
Definición del método público
Definiremos un metodo público el cual sera accesible desde el objeto creado en JavaScript,el cual realizara las operaciones que se definan en el mismo. Este método nos devolverá una array de String en la cual estarán los documentos existentes en el directorio Company Home
public String[] ObtenerDocumentos() throws Exception
{......}
Definir Bean de Configuración
El siguiente paso sera realizar un archivo de configuración xml en el cual se definirá el bean correspondiente para poder agregar el objeto al motor de JavaScript
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<bean id="IDENTIFICADORDELBEEN" parent="baseJavaScriptExtension" class="<Package>.<Nombre de la clase>">
<property name="extensionName">
<value><NOMBREOBJETO></value>
</property>
<property name="serviceRegistry">
<ref bean="ServiceRegistry"/>
</property>
</bean>
</beans>
En nuestro caso y siguiendo el ejemplo se definiría de la siguiente manera:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<bean id="Documentos" parent="baseJavaScriptExtension" class="es.alfresco.test">
<property name="extensionName">
<value>test</value>
</property>
<property name="serviceRegistry">
<ref bean="ServiceRegistry"/>
</property>
</bean>
</beans>
Generar libreria Jar
Se realizara la generación de la libreria para despues realizar la instalación en alfresco.
Acceso al nuevo objeto mediante JavaScript
Instalación en Alfresco
Para que el objeto sea accesible debemos de copiar la clase generada con en el directorio :
<Maquina Local>\<Directorio Apache>\<Directorio Tomcat>\webapps\alfresco\WEB-INF\lib
Acceder al objeto mediante JavaScript
Para acceder a las clases públicas definidas en nuestra libreria lo realizaremos mediante el objeto definido, bastara con llamar al nombre del objeto seguido de un punto y el metodo requerido.
nombreobjeto.metodo();
En nuestro caso y siguiendo el ejemplo se realizaria la llamada así:
test.ObtenerDocumentos();