mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
AVM JavaScript integration refactored to use new Spring bean config pattern (as per recent HEAD merge changes)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4313 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -36,4 +36,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="avmScript" parent="baseScriptImplementation" class="org.alfresco.repo.jscript.AVM">
|
||||||
|
<property name="scriptName">
|
||||||
|
<value>avm</value>
|
||||||
|
</property>
|
||||||
|
<property name="serviceRegistry">
|
||||||
|
<ref bean="ServiceRegistry"/>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
@@ -19,27 +19,29 @@ package org.alfresco.repo.jscript;
|
|||||||
import org.alfresco.repo.avm.AVMNodeConverter;
|
import org.alfresco.repo.avm.AVMNodeConverter;
|
||||||
import org.alfresco.service.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
|
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
|
||||||
import org.alfresco.service.cmr.avm.AVMService;
|
|
||||||
import org.mozilla.javascript.Scriptable;
|
import org.mozilla.javascript.Scriptable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Helper to access AVM nodes from a script context.
|
||||||
|
*
|
||||||
* @author Kevin Roast
|
* @author Kevin Roast
|
||||||
*/
|
*/
|
||||||
public final class AVM implements Scopeable
|
public final class AVM extends BaseScriptImplementation implements Scopeable
|
||||||
{
|
{
|
||||||
|
/** Repository Service Registry */
|
||||||
|
private ServiceRegistry services;
|
||||||
|
|
||||||
/** Root scope for this object */
|
/** Root scope for this object */
|
||||||
private Scriptable scope;
|
private Scriptable scope;
|
||||||
|
|
||||||
private AVMService avmService;
|
|
||||||
private ServiceRegistry services;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Set the service registry
|
||||||
|
*
|
||||||
|
* @param serviceRegistry the service registry
|
||||||
*/
|
*/
|
||||||
public AVM(ServiceRegistry services)
|
public void setServiceRegistry(ServiceRegistry serviceRegistry)
|
||||||
{
|
{
|
||||||
this.services = services;
|
this.services = serviceRegistry;
|
||||||
this.avmService = services.getAVMService();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,7 +65,7 @@ public final class AVM implements Scopeable
|
|||||||
if (store != null && store.length() != 0)
|
if (store != null && store.length() != 0)
|
||||||
{
|
{
|
||||||
String rootPath = store + ':' + getWebappsFolderPath();
|
String rootPath = store + ':' + getWebappsFolderPath();
|
||||||
AVMNodeDescriptor nodeDesc = this.avmService.lookup(-1, rootPath);
|
AVMNodeDescriptor nodeDesc = this.services.getAVMService().lookup(-1, rootPath);
|
||||||
if (nodeDesc != null)
|
if (nodeDesc != null)
|
||||||
{
|
{
|
||||||
rootNode = new AVMNode(AVMNodeConverter.ToNodeRef(-1, rootPath), this.services, null, this.scope);
|
rootNode = new AVMNode(AVMNodeConverter.ToNodeRef(-1, rootPath), this.services, null, this.scope);
|
||||||
@@ -84,7 +86,7 @@ public final class AVM implements Scopeable
|
|||||||
AVMNode node = null;
|
AVMNode node = null;
|
||||||
if (path != null && path.length() != 0)
|
if (path != null && path.length() != 0)
|
||||||
{
|
{
|
||||||
AVMNodeDescriptor nodeDesc = this.avmService.lookup(-1, path);
|
AVMNodeDescriptor nodeDesc = this.services.getAVMService().lookup(-1, path);
|
||||||
if (nodeDesc != null)
|
if (nodeDesc != null)
|
||||||
{
|
{
|
||||||
node = new AVMNode(AVMNodeConverter.ToNodeRef(-1, path), this.services, null, this.scope);
|
node = new AVMNode(AVMNodeConverter.ToNodeRef(-1, path), this.services, null, this.scope);
|
||||||
|
@@ -27,6 +27,9 @@ import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
|||||||
import org.mozilla.javascript.Scriptable;
|
import org.mozilla.javascript.Scriptable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Represents a AVM specific node in the Script context. Provides specific implementations
|
||||||
|
* of AVM specific methods such as copy, move, rename etc.
|
||||||
|
*
|
||||||
* @author Kevin Roast
|
* @author Kevin Roast
|
||||||
*/
|
*/
|
||||||
public class AVMNode extends Node
|
public class AVMNode extends Node
|
||||||
|
@@ -235,7 +235,6 @@ public class RhinoScriptService implements ScriptService
|
|||||||
{
|
{
|
||||||
model.put(script.getScriptName(), script);
|
model.put(script.getScriptName(), script);
|
||||||
}
|
}
|
||||||
model.put("avm", new AVM(services));
|
|
||||||
|
|
||||||
// insert supplied object model into root of the default scope
|
// insert supplied object model into root of the default scope
|
||||||
for (String key : model.keySet())
|
for (String key : model.keySet())
|
||||||
|
Reference in New Issue
Block a user