Nuevos Objetos para motor JavaScript

RECU-0055 (Recurso Manual)

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();