#

Alfresco y el punto de unión entre JavaScriptAPI y Spring

Alfresco ofrece una diversidad de APIs para el acceso a toda la funcionalidad que atesora. Cada una la solemos elegir para según que tarea y en base diferentes factores.
Alfresco | Javascript | Spring

Alfresco ofrece una diversidad de APIs para el acceso a toda la funcionalidad que atesora. Cada una la solemos elegir para según que tarea y en base a diferentes factores.

Una de las Apis útiles de cara a un Administrador, es el API Javascript que ofrece. Este API ofrece un mecanismo muy ágil y rico, útil para la ejecución de tareas por parte de un usuario Administrador.

Pero la funcionalidad que ofrece este API no es suficiente y entendemos que la única solución es desarrollar un servicio con Spring.

Afortunadamente, existe otra solución, si conocemos la arquitectura y el código fuente de Alfresco en profundidad. En este punto, debemos tener en cuenta root object del Api de Javascript es, en esencia, una clase Java con las siguientes características: hereda de la clase BaseProcesorExtension y debe ser declarada como un bean de Spring siguiendo la siguiente sintaxis.

[xml]

<bean id="xxx.xxxxxx.xxxxxx.SixphereRootObject"
class="xxx.xxxxxx.xxxxxx.SixphereRootObject"
parent="baseJavaScriptExtension">
</bean>

[/xml]

Esto lleva a la conclusión que, desde un script JavaScript, tengo acceso al contexto de Spring y, por consiguiente, a la clase que me da acceso a las instancias de los beans instanciados, es decir, a la clase ContextLoader. Pero ¿cómo? Pues mediante el objeto Packages, usando la sintaxis que se muestra a continuación:

[php]

var contextLoader=Packages.org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext();

[/php]

Una vez tenemos acceso al contextLoader actual, tenemos acceso a todos los objetos instanciados en él y, ahora sí, poder acceder a toda la funcionalidad de Alfresco y de un modo seguro.

Algunas acciones interesantes pueden ser las siguientes:

• Desactivar y activar políticas sobre nodos.

[php]

var policyBehaviourFilter = context.getBean(‘policyBehaviourFilter’, Packages.org.alfresco.repo.policy.BehaviourFilter);
policyBehaviourFilter.disableBehaviour();
//Your code.
policyBehaviourFilter.enableBehaviour();

[/php]

• Gestionar reglas sobre nodos.

[php]

var ruleService = context.getBean(‘RuleService’, Packages.org.alfresco.service.cmr.rule.RuleService);
ruleService.disableRules();
//Your code.
ruleService.enableRules();

[/php]

• Invocar a un bean que hayas implementado y desplegado anteriormente.

[php]

var sixphereService = context.getBean(‘SixphereCmisService’, Packages.xxx.xxxxxx.xxxxxx.SixphereCmisService);
sixphereService.doSomething();
//Your code.

[/php]

CONOCIMIENTO / Descargables

EBook gratuito
eficiencia OEE

Asistimos tu proceso de diseño y análisis de datos

Descubre las particularidades del indicador OEE, cómo automatizar su cálculo y que requisitos deben cumplir tus procesos de producción para implementarlo.