OpenIDMResolverFactory.java revision 21dcdac963f79c098a5ea1a2c5c5e109429c9786
/*
* The contents of this file are subject to the terms of the Common Development and
* Distribution License (the License). You may not use this file except in compliance with the
* License.
*
* You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
* specific language governing permission and limitations under the License.
*
* When distributing Covered Software, include this CDDL Header Notice in each file and include
* the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
* Header, with the fields enclosed by brackets [] replaced by your own identifying
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2012-2015 ForgeRock AS.
*/
/**
* Factory for resolving openidm variable in scripts
*
*/
public class OpenIDMResolverFactory implements ResolverFactory {
JsonValue openidmContext = (JsonValue) variableScope.getVariable(ActivitiConstants.OPENIDM_CONTEXT);
if (openidmContext == null) {
LoggerFactory.getLogger(OpenIDMResolverFactory.class).debug("Could not find openidmcontext variable from " +
"current execution. Copying from parent..");
//bug OPENIDM-3044, if a parent workflow uses callActivity to launch child workflow,
//then openidmcontext needs to be explicitly added because it will not have been
//copied
JsonValue parentVariable = (JsonValue) superExecutionEntity.getVariable(ActivitiConstants.OPENIDM_CONTEXT);
if (parentVariable != null) {
} else {
throw new ActivitiException("Unable to find openidmcontext");
}
}
}
try {
if (variableScope instanceof ExecutionEntity) {
ActivityBehavior activityBehavior = ((ExecutionEntity) variableScope).getActivity().getActivityBehavior();
//Called from ScriptTask
if (activityBehavior instanceof ScriptTaskActivityBehavior) {
languageField.setAccessible(true);
} else {
//Called from ExecutionListener
List<ExecutionListener> executionListeners = ((ExecutionEntity) variableScope).getActivity().getExecutionListeners(eventName);
if (executionListener instanceof ClassDelegate) {
}
}
}
}
} else if (variableScope instanceof TaskEntity) {
//Called from TaskListener
Map<String, List<TaskListener>> taskListeners = ((TaskEntity) variableScope).getTaskDefinition().getTaskListeners();
if (taskListener instanceof ClassDelegate) {
}
}
}
} else {
LoggerFactory.getLogger(OpenIDMResolverFactory.class).info("Script language could not be determined, using default groovy instead");
}
}
try {
}
}
return new OpenIDMResolver(bindings);
}
/**
* Processes a ClassDelegate, fetching the language field of it.
* @param scope variable scope the function was called from
* @param delegate object containing the language field
* @return value of language field, if not found groovy is the default language
*/
try {
languageFields.setAccessible(true);
}
}
}
return language;
}
}