public static SingleModuleInstantiationStrategy getStrategy(Module moduleInfo, boolean executionMode, IDependencyManager dependencyManager, ClassLoader classLoader) { return new ApiBasedInstantiationStrategy(moduleInfo, executionMode, dependencyManager, classLoader); } }
@Override public Object instantiate(Class<?> rulesClass) throws RulesInstantiationException { // Ensure that instantiation will be done in strategy classLoader. // ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(getClassLoader()); try { return getEngineFactory().newEngineInstance(); } catch (Exception e) { throw new RulesInstantiationException(e); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }
Class<Object> serviceClass; try { serviceClass = (Class<Object>) getServiceClass(); } catch (ClassNotFoundException e) { log.debug("Failed to get service class.", e); if (getModule().getExtension() != null) { IExtensionDescriptor extensionDescriptor = ExtensionDescriptorFactory.getExtensionDescriptor(getModule().getExtension(), getClassLoader()); IOpenSourceCodeModule source = extensionDescriptor.getSourceCode(getModule()); source.setParams(prepareExternalParameters()); IOpenSourceCodeModule source = getSourceCode(getModule()); source.setParams(prepareExternalParameters()); Module m = getModule(); MethodFilter methodFilter = m.getMethodFilter(); if (methodFilter != null && (CollectionUtils.isNotEmpty(methodFilter.getExcludes()) || CollectionUtils.isNotEmpty(methodFilter.getIncludes()))) { engineFactory.setExecutionMode(isExecutionMode()); engineFactory.setDependencyManager(getDependencyManager());
@Override public void reset() { super.reset(); if (engineFactory != null) { getEngineFactory().reset(false); } }
Class<Object> serviceClass; try { serviceClass = (Class<Object>) getServiceClass(); } catch (ClassNotFoundException e) { log.debug("Failed to get service class.", e); if (getModule().getExtension() != null) { IExtensionDescriptor extensionDescriptor = ExtensionDescriptorFactory.getExtensionDescriptor(getModule().getExtension(), getClassLoader()); IOpenSourceCodeModule source = extensionDescriptor.getSourceCode(getModule()); source.setParams(prepareExternalParameters()); IOpenSourceCodeModule source = getSourceCode(getModule()); source.setParams(prepareExternalParameters()); Module m = getModule(); MethodFilter methodFilter = m.getMethodFilter(); if (methodFilter != null && (CollectionUtils.isNotEmpty(methodFilter.getExcludes()) || CollectionUtils.isNotEmpty(methodFilter.getIncludes()))) { engineFactory.setExecutionMode(isExecutionMode()); engineFactory.setDependencyManager(getDependencyManager());
@Override public void reset() { super.reset(); if (engineFactory != null) { getEngineFactory().reset(false); } }
@Override public Object instantiate(Class<?> rulesClass) throws RulesInstantiationException { // Ensure that instantiation will be done in strategy classLoader. // ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(getClassLoader()); try { return getEngineFactory().newEngineInstance(); } catch (Exception e) { throw new RulesInstantiationException(e); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }
public static SingleModuleInstantiationStrategy getStrategy(Module moduleInfo, boolean executionMode, IDependencyManager dependencyManager, ClassLoader classLoader) { return new ApiBasedInstantiationStrategy(moduleInfo, executionMode, dependencyManager, classLoader); } }
@Override public Class<?> getGeneratedRulesClass() throws RulesInstantiationException { // Service class for current implementation will be class, generated at // runtime by factory. // Using project class loader for interface generation. // ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(getClassLoader()); try { return getEngineFactory().getInterfaceClass(); } catch (Exception e) { throw new RulesInstantiationException("Failed to resolve a interface.", e); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }
@Override public Class<?> getGeneratedRulesClass() throws RulesInstantiationException { // Service class for current implementation will be class, generated at // runtime by factory. // Using project class loader for interface generation. // ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(getClassLoader()); try { return getEngineFactory().getInterfaceClass(); } catch (Exception e) { throw new RulesInstantiationException("Failed to resolve a interface.", e); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }