public static Object getHookInstance(PackageDefinitionUUID packageUUID, ClassInfo classInfo) { Object obj = getInstance(packageUUID, classInfo); if (!(obj instanceof Hook) && !(obj instanceof TxHook)) { throw new BonitaRuntimeException("The given class : " + classInfo + " is not a Hook instance neither a TxHook instance"); } return obj; }
private static PerformerAssign getPerformerAssign(final ProcessDefinitionUUID processUUID, final FilterDefinition filterDefinition) { try { return EnvTool.getClassDataLoader().getInstance(PerformerAssign.class, processUUID, filterDefinition); } catch (final Exception e) { return null; } }
public static RoleMapper getRoleMapperInstance(PackageDefinitionUUID packageUUID, ClassInfo classInfo) { Object obj = getInstance(packageUUID, classInfo); if (!(obj instanceof RoleMapper)) { throw new BonitaRuntimeException("The given class : " + classInfo + " is not a RoleMapper instance"); } return (RoleMapper)obj; }
public static PerformerAssign getPerformerAssignInstance(PackageDefinitionUUID packageUUID, ClassInfo classInfo) { Object obj = getInstance(packageUUID, classInfo); if (!(obj instanceof PerformerAssign)) { throw new BonitaRuntimeException("The given class : " + classInfo + " is not a PerformerAssign instance !"); } return (PerformerAssign)obj; }
public static MultiInstantiator getActivityInstantiatorInstance(PackageDefinitionUUID packageUUID, ClassInfo classInfo) { Object obj = getInstance(packageUUID, classInfo); if (!(obj instanceof MultiInstantiator)) { throw new BonitaRuntimeException("The given class : " + classInfo + " is not a MultiInstantiator instance"); } return (MultiInstantiator)obj; }
protected Object getInstance(final ProcessDefinitionUUID processUUID, final ConnectorDefinition connector) { final String className = connector.getClassName(); return getInstance(processUUID, className); }
private Map<String, Object> executeConnectorWithClassLoaderSet(final String connectorClassName, final Map<String, Object[]> parameters, final ProcessDefinitionUUID definitionUUID, final ProcessInstanceUUID instanceUUID, final ActivityInstanceUUID activityInstanceUUID, final ClassLoader classLoader, final Map<String, Object> context, final boolean useCurrentVariableValues, final ClassDataLoader classDataLoader) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception { Connector connector = null; if (classDataLoader != null) { connector = (Connector) classDataLoader.getInstance(null, connectorClassName); } else { final Class<?> objectClass = Class.forName(connectorClassName, true, classLoader); connector = (Connector) objectClass.newInstance(); } if (connector instanceof Mapper) { throw new IllegalAccessException(connectorClassName + " is a instance of RoleResolver or Filter"); } return ConnectorExecutor.executeConnector(connector, definitionUUID, instanceUUID, activityInstanceUUID, parameters, context, useCurrentVariableValues); }
private Set<String> executeRoleResolver(final String connectorClassName, final Map<String, Object[]> parameters, final ProcessDefinitionUUID definitionUUID, final ClassLoader classLoader) throws Exception { final ClassLoader baseClassLoader = Thread.currentThread().getContextClassLoader(); try { RoleResolver connector = null; if (classLoader == null) { connector = (RoleResolver) EnvTool.getClassDataLoader().getInstance(definitionUUID, connectorClassName); } else { Thread.currentThread().setContextClassLoader(classLoader); final Class<?> objectClass = Class.forName(connectorClassName, true, classLoader); connector = (RoleResolver) objectClass.newInstance(); } return ConnectorExecutor.executeRoleResolver(connector, parameters); } finally { Thread.currentThread().setContextClassLoader(baseClassLoader); } }
@Override public Map<String, Object> executeConnectorAndGetVariablesToSet(final String connectorClassName, final Map<String, Object[]> parameters, final ProcessDefinitionUUID processDefinitionUUID, final Map<String, Object> context) throws Exception { final Connector connector = (Connector) EnvTool.getClassDataLoader().getInstance(processDefinitionUUID, connectorClassName); if (connector instanceof Mapper) { throw new IllegalAccessException(connectorClassName + " is a instance of RoleResolver or Filter"); } return ConnectorExecutor.executeConnector(connector, parameters, processDefinitionUUID, context); }
private Set<String> executeFilter(final String connectorClassName, final Map<String, Object[]> parameters, final Set<String> members, final ProcessDefinitionUUID definitionUUID, final ClassLoader classLoader) throws Exception { FacadeUtil.checkArgsNotNull(members); final ClassLoader baseClassLoader = Thread.currentThread().getContextClassLoader(); try { Filter connector = null; if (classLoader == null) { connector = (Filter) EnvTool.getClassDataLoader().getInstance(definitionUUID, connectorClassName); } else { Thread.currentThread().setContextClassLoader(classLoader); final Class<?> objectClass = Class.forName(connectorClassName, true, classLoader); connector = (Filter) objectClass.newInstance(); } return ConnectorExecutor.executeFilter(connector, parameters, members); } finally { Thread.currentThread().setContextClassLoader(baseClassLoader); } }
@SuppressWarnings("unchecked") public <T> T getInstance(final Class<T> clazz, final ProcessDefinitionUUID processUUID, final ConnectorDefinition connector) { Misc.checkArgsNotNull(clazz, connector); final Object obj = getInstance(processUUID, connector); if (obj.getClass().isAssignableFrom(clazz)) { final String message = ExceptionManager.getInstance().getFullMessage("be_CDL_4", connector, clazz.getName(), obj); throw new BonitaRuntimeException(message); } return (T) obj; }
@SuppressWarnings("unchecked") public static <T> T getInstance(final Class<T> clazz, final PackageDefinitionUUID packageUUID, final ClassInfo classInfo) { Misc.checkArgsNotNull(clazz, classInfo); final Object obj = getInstance(packageUUID, classInfo); final String className = classInfo.getClassName(); if (obj == null) { throw new BonitaRuntimeException("Unable to create an instance of " + className); } if (obj.getClass().isAssignableFrom(clazz)) { throw new BonitaRuntimeException("The given class : " + classInfo + " is not an instance of " + clazz.getName() + ". Obj = " + obj); } return (T)obj; }
@Override public void executeConnectorAndSetVariables(final String connectorClassName, final Map<String, Object[]> parameters, final ActivityInstance activityInstance, final Map<String, Object> context) throws Exception { final ProcessDefinitionUUID processDefinitionUUID = activityInstance.getProcessDefinitionUUID(); final Connector connector = (Connector) EnvTool.getClassDataLoader().getInstance(processDefinitionUUID, connectorClassName); if (connector instanceof Mapper) { throw new IllegalAccessException(connectorClassName + " is a instance of RoleResolver or Filter"); } ConnectorExecutor.executeConnector(connector, parameters, activityInstance.getProcessInstanceUUID(), activityInstance, context); }
private static Set<String> executeRoleMapper(final TaskInstance task, final Performer performer) { final ProcessDefinitionUUID processUUID = task.getProcessDefinitionUUID(); final RoleMapperDefinition rolemapperDef = performer.getRoleMapperDefinition(); final ClassLoader baseClassLoader = Thread.currentThread().getContextClassLoader(); try { final ClassLoader processClassLoader = EnvTool.getClassDataLoader().getProcessClassLoader(processUUID); Thread.currentThread().setContextClassLoader(processClassLoader); if (rolemapperDef != null) { final RoleMapper roleMapper = EnvTool.getClassDataLoader().getInstance(RoleMapper.class, processUUID, rolemapperDef); try { return ConnectorExecutor.executeRoleMapper(roleMapper, task, performer.getName(), rolemapperDef.getParameters()); } catch (final Exception e) { throw new BonitaWrapperException(new RoleMapperInvocationException("be_TRT_2", rolemapperDef.toString(), e)); } } return null; } finally { Thread.currentThread().setContextClassLoader(baseClassLoader); } }
private static Set<String> executeFilter(final TaskInstance task, final Set<String> candidates, final Performer performer) { final ProcessDefinitionUUID processUUID = task.getProcessDefinitionUUID(); final ClassLoader baseClassLoader = Thread.currentThread().getContextClassLoader(); try { final ClassLoader processClassLoader = EnvTool.getClassDataLoader().getProcessClassLoader(processUUID); Thread.currentThread().setContextClassLoader(processClassLoader); final FilterDefinition filterDefinition = performer.getFilterDefinition(); if (filterDefinition != null) { final PerformerAssign performerAssign = getPerformerAssign(processUUID, filterDefinition); Filter filter = null; if (performerAssign == null) { filter = EnvTool.getClassDataLoader().getInstance(Filter.class, processUUID, filterDefinition); } else { filter = new PerformerAssignFilter(); } try { return ConnectorExecutor.executeFilter(filter, performerAssign, task, candidates, filterDefinition.getParameters()); } catch (final Exception e) { throw new BonitaWrapperException(e); } } return candidates; } finally { Thread.currentThread().setContextClassLoader(baseClassLoader); } }
final ClassLoader processClassLoader = EnvTool.getClassDataLoader().getProcessClassLoader(definitionUUID); Thread.currentThread().setContextClassLoader(processClassLoader); final MultipleInstancesJoinChecker checker = EnvTool.getClassDataLoader().getInstance( MultipleInstancesJoinChecker.class, definitionUUID, joinChecker); final Map<String, Object[]> parameters = joinChecker.getParameters(); final String className = ((MultiInstantiatorJoinChecker) checker).getClassName(); final org.ow2.bonita.connector.core.MultiInstantiator multiInstantiator = (org.ow2.bonita.connector.core.MultiInstantiator) EnvTool .getClassDataLoader().getInstance(definitionUUID, className); final Map<String, Object[]> temp = ((MultiInstantiatorJoinChecker) checker).getInstantiatorParameters(); if (temp != null) {
final ClassLoader processClassLoader = EnvTool.getClassDataLoader().getProcessClassLoader(definitionUUID); Thread.currentThread().setContextClassLoader(processClassLoader); final MultipleInstancesInstantiator activityinstantiator = EnvTool.getClassDataLoader().getInstance( MultipleInstancesInstantiator.class, definitionUUID, instantiator); final String className = ((MultiInstantiatorInstantiator) activityinstantiator).getClassName(); final org.ow2.bonita.connector.core.MultiInstantiator multiInstantiator = (org.ow2.bonita.connector.core.MultiInstantiator) EnvTool .getClassDataLoader().getInstance(definitionUUID, className); final Map<String, Object[]> temp = ((MultiInstantiatorInstantiator) activityinstantiator) .getInstantiatorParameters();
if (performerAssignInfo != null) { final PerformerAssign performerAssign = ClassDataLoader.getInstance(PerformerAssign.class, this.packageUUID, performerAssignInfo); Map<String, String> parameters = performerAssignInfo.getParameters(); if (parameters != null) {
protected void executeRoleMapper(final Performer performer) { final ClassInfo rolemapperInfo = performer.getRoleMapper(); if (rolemapperInfo != null) { final RoleMapper roleMapper = ClassDataLoader.getInstance(RoleMapper.class, this.packageUUID, rolemapperInfo); try { this.candidates = EngineEnvTool.getHookExecutor().executeRoleMapper( roleMapper, this.instanceUUID, performer.getParticipantId()); } catch (final Exception e) { throw new BonitaWrapperException( new RoleMapperInvocationException(rolemapperInfo.toString(), e) ); } } }
ClassDataLoader.getInstance(MultiInstantiator.class, xpdlExecution.getXpdlInstance().getPackageDefinitionUUID(), this.multiInstantiationClass); try {