mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
125605 rmunteanu: Merged 5.1.1 (5.1.1) to 5.1.N (5.1.2) 125498 slanglois: MNT-16155 Update source headers - remove svn:eol-style property on Java and JSP source files git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@125783 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
70 lines
2.7 KiB
Java
70 lines
2.7 KiB
Java
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();
|
|
}
|
|
}
|
|
}
|