mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Merged 1.4 to HEAD (Repository support for Records Management)
svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4/root/projects/repository@4306 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4/root/projects/repository@4307 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4/root/projects/repository@4485 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4/root/projects/repository@4486 . svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4/root/projects/repository@4532 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4/root/projects/repository@4533 . svn resolved source\java\org\alfresco\repo\jscript\Node.java svn resolved config\alfresco\action-services-context.xml git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4664 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
72
source/java/org/alfresco/repo/jscript/ExecuteScriptJob.java
Normal file
72
source/java/org/alfresco/repo/jscript/ExecuteScriptJob.java
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package org.alfresco.repo.jscript;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||
import org.alfresco.service.cmr.repository.ScriptLocation;
|
||||
import org.alfresco.service.cmr.repository.ScriptService;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobDataMap;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
/**
|
||||
* Quartz job that executes a scheduled JS script.
|
||||
*
|
||||
* @author Roy Wetherall
|
||||
*/
|
||||
public class ExecuteScriptJob implements Job
|
||||
{
|
||||
private static final String PARAM_SCRIPT_LOCATION = "scriptLocation";
|
||||
private static final String PARAM_SCRIPT_SERVICE = "scriptService";
|
||||
private static final String PARAM_AUTHENTICATION_COMPONENT = "authenticationComponent";
|
||||
|
||||
/**
|
||||
* Executes the scheduled script
|
||||
*
|
||||
* @see org.quartz.Job#execute(org.quartz.JobExecutionContext)
|
||||
*/
|
||||
public void execute(JobExecutionContext context) throws JobExecutionException
|
||||
{
|
||||
JobDataMap jobData = context.getJobDetail().getJobDataMap();
|
||||
|
||||
// Get the script service from the job map
|
||||
Object scriptServiceObj = jobData.get(PARAM_SCRIPT_SERVICE);
|
||||
if (scriptServiceObj == null || !(scriptServiceObj instanceof ScriptService))
|
||||
{
|
||||
throw new AlfrescoRuntimeException(
|
||||
"ExecuteScriptJob data must contain valid script service");
|
||||
}
|
||||
|
||||
// Get the script location from the job map
|
||||
Object scriptLocationObj = jobData.get(PARAM_SCRIPT_LOCATION);
|
||||
if (scriptLocationObj == null || !(scriptLocationObj instanceof ScriptLocation))
|
||||
{
|
||||
throw new AlfrescoRuntimeException(
|
||||
"ExecuteScriptJob data must contain valid script location");
|
||||
}
|
||||
|
||||
// Get the authentication component from the job map
|
||||
Object authenticationComponentObj = jobData.get(PARAM_AUTHENTICATION_COMPONENT);
|
||||
if (authenticationComponentObj == null || !(authenticationComponentObj instanceof AuthenticationComponent))
|
||||
{
|
||||
throw new AlfrescoRuntimeException(
|
||||
"ExecuteScriptJob data must contain valid authentication component");
|
||||
}
|
||||
|
||||
|
||||
// Execute the script as the system user
|
||||
((AuthenticationComponent)authenticationComponentObj).setSystemUserAsCurrentUser();
|
||||
try
|
||||
{
|
||||
// Execute the script
|
||||
((ScriptService)scriptServiceObj).executeScript((ScriptLocation)scriptLocationObj, null);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((AuthenticationComponent)authenticationComponentObj).clearCurrentSecurityContext();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user