public class RhinoScriptProcessor extends BaseProcessor implements ScriptProcessor, org.alfresco.scripts.ScriptResourceLoader, org.springframework.beans.factory.InitializingBean
extension, name, processorExtensions, scriptService, services, templateService
Constructor and Description |
---|
RhinoScriptProcessor() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet()
Pre initializes two scope objects (one secure and one not) with the standard objects preinitialised.
|
Object |
execute(org.alfresco.service.cmr.repository.NodeRef nodeRef,
org.alfresco.service.namespace.QName contentProp,
Map<String,Object> model)
Execute script
|
Object |
execute(ScriptLocation location,
Map<String,Object> model)
Execute script
|
Object |
execute(String location,
Map<String,Object> model)
Execute script
|
Object |
executeString(String source,
Map<String,Object> model)
Execute script string
|
protected org.mozilla.javascript.Scriptable |
initScope(org.mozilla.javascript.Context cx,
boolean secure,
boolean sealed)
Initializes a scope for script execution.
|
String |
loadScriptResource(String resource)
Load a script content from the specific resource path.
|
void |
reset()
Reset the processor - such as clearing any internal caches etc.
|
void |
setCompile(boolean compile) |
void |
setShareSealedScopes(boolean shareSealedScopes) |
void |
setStorePath(String storePath) |
void |
setStoreUrl(String storeRef)
Set the default store reference
|
getExtension, getName, getProcessorExtensions, register, registerProcessorExtension, setExtension, setName, setScriptService, setServiceRegistry, setTemplateService
public void setStoreUrl(String storeRef)
storeRef
- The default store referencepublic void setStorePath(String storePath)
storePath
- The store path to set.public void setCompile(boolean compile)
compile
- the compile flag to setpublic void setShareSealedScopes(boolean shareSealedScopes)
shareSealedScopes
- true to allow sharing of sealed scopes between script executions - set to
false to disable this feature and ensure that a new scope is created for each executed script.public void reset()
ScriptProcessor
reset
in interface ScriptProcessor
ScriptProcessor.reset()
public Object execute(ScriptLocation location, Map<String,Object> model)
ScriptProcessor
execute
in interface ScriptProcessor
location
- the location of the scriptmodel
- context modelScriptProcessor.execute(org.alfresco.service.cmr.repository.ScriptLocation, java.util.Map)
public Object execute(String location, Map<String,Object> model)
ScriptProcessor
execute
in interface ScriptProcessor
location
- the classpath string locating the scriptmodel
- the context modelScriptProcessor.execute(java.lang.String, java.util.Map)
public Object execute(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName contentProp, Map<String,Object> model)
ScriptProcessor
execute
in interface ScriptProcessor
nodeRef
- the script node referencecontentProp
- the content property of the scriptmodel
- the context modelScriptProcessor.execute(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName, java.util.Map)
public Object executeString(String source, Map<String,Object> model)
ScriptProcessor
executeString
in interface ScriptProcessor
source
- the script stringmodel
- the context modelScriptProcessor.executeString(java.lang.String, java.util.Map)
public String loadScriptResource(String resource)
loadScriptResource
in interface org.alfresco.scripts.ScriptResourceLoader
resource
- Resources can be of the form:
classpath:alfresco/includeme.js workspace://SpacesStore/6f73de1b-d3b4-11db-80cb-112e6c2ea048 /Company Home/Data Dictionary/Scripts/includeme.js
org.alfresco.error.AlfrescoRuntimeException
- on any IO or ContentIO errorpublic void afterPropertiesSet() throws Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
Exception
InitializingBean.afterPropertiesSet()
protected org.mozilla.javascript.Scriptable initScope(org.mozilla.javascript.Context cx, boolean secure, boolean sealed)
cx
- the thread execution contextsecure
- Do we consider the script secure? When false
this ensures the script may not
access insecure java.* libraries or import any other classes for direct access - only the
configured root host objects will be available to the script writer.sealed
- Should the scope be sealed, making it immutable? This should be true
if a scope
is to be reused.Copyright © 2005–2017 Alfresco Software. All rights reserved.