private CompiledDependency createFailedCompiledDependency(String dependencyName, ClassLoader classLoader, Exception ex) { Collection<OpenLMessage> messages = new LinkedHashSet<>(); for (OpenLMessage openLMessage : OpenLMessagesUtils.newErrorMessages(ex)) { String message = String.format("Failed to load dependent module '%s': %s", dependencyName, openLMessage.getSummary()); messages.add(new OpenLMessage(message, Severity.ERROR)); } ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(classLoader); try { return new CompiledDependency(dependencyName, new CompiledOpenClass(NullOpenClass.the, messages, new SyntaxNodeException[0], new SyntaxNodeException[0])); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } } }
private CompiledDependency createFailedCompiledDependency(String dependencyName, ClassLoader classLoader, Exception ex) { Collection<OpenLMessage> messages = new LinkedHashSet<>(); for (OpenLMessage openLMessage : OpenLMessagesUtils.newErrorMessages(ex)) { String message = String.format("Failed to load dependent module '%s': %s", dependencyName, openLMessage.getSummary()); messages.add(new OpenLMessage(message, Severity.ERROR)); } ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(classLoader); try { return new CompiledDependency(dependencyName, new CompiledOpenClass(NullOpenClass.the, messages, new SyntaxNodeException[0], new SyntaxNodeException[0])); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } } }
OpenLValidationManager.turnOffValidation(); CompiledOpenClass compiledOpenClass = rulesInstantiationStrategy.compile(); CompiledDependency cd = new CompiledDependency(dependencyName, compiledOpenClass); log.debug("Dependency for dependencyName = {} has been stored in cache.", dependencyName); compiledDependency = cd;
OpenLValidationManager.turnOffValidation(); CompiledOpenClass compiledOpenClass = rulesInstantiationStrategy.compile(); CompiledDependency cd = new CompiledDependency(dependencyName, compiledOpenClass); log.debug("Dependency for dependencyName = {} has been stored in cache.", dependencyName); compiledDependency = cd;
@Override public CompiledDependency load(String dependencyName, IDependencyManager dm) throws OpenLCompilationException { if (name.equals(dependencyName)) { final RuleServiceDeploymentRelatedDependencyManager dependencyManager; if (dm instanceof RuleServiceDeploymentRelatedDependencyManager) { dependencyManager = (RuleServiceDeploymentRelatedDependencyManager) dm; } else { throw new IllegalStateException( "This loader works only with RuleServiceDeploymentRelatedDependencyManager!"); } if (!isCompiledOnce) { compile(dependencyName, dependencyManager); isCompiledOnce = true; } if (lazyCompiledDependency == null) { CompiledOpenClass compiledOpenClass = new LazyCompiledOpenClass(dependencyManager, this, new Dependency(DependencyType.MODULE, new IdentifierNode(null, null, dependencyName, null))); lazyCompiledDependency = new CompiledDependency(dependencyName, compiledOpenClass); } return lazyCompiledDependency; } return null; }
public CompiledDependency load(String dependencyName, IDependencyManager dependencyManager) throws OpenLCompilationException{ Module dependencyModule = findDependencyModule(dependencyName); if(dependencyModule != null) { try { ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); // create classloader for the dependency. With the parent for current module. // ProjectDescriptor project = dependencyModule.getProject(); SimpleBundleClassLoader moduleClassLoader = new SimpleBundleClassLoader(project.getClassPathUrls(), oldClassLoader); SingleModuleInstantiationStrategy strategy = RulesInstantiationStrategyFactory.getStrategy(dependencyModule, dependencyManager.isExecutionMode(), dependencyManager, moduleClassLoader); strategy.setExternalParameters(dependencyManager.getExternalParameters()); CompiledOpenClass compiledOpenClass = strategy.compile(); return new CompiledDependency(dependencyName, compiledOpenClass); } catch (Exception e) { throw new OpenlNotCheckedException(String.format("Failed to load dependency '%s'!", dependencyName) , e); } } return null; }
@Override public CompiledDependency load(String dependencyName, IDependencyManager dm) throws OpenLCompilationException { if (name.equals(dependencyName)) { final RuleServiceDeploymentRelatedDependencyManager dependencyManager; if (dm instanceof RuleServiceDeploymentRelatedDependencyManager) { dependencyManager = (RuleServiceDeploymentRelatedDependencyManager) dm; } else { throw new IllegalStateException( "This loader works only with RuleServiceDeploymentRelatedDependencyManager!"); } if (!isCompiledOnce) { compile(dependencyName, dependencyManager); isCompiledOnce = true; } if (lazyCompiledDependency == null) { CompiledOpenClass compiledOpenClass = new LazyCompiledOpenClass(dependencyManager, this, new Dependency(DependencyType.MODULE, new IdentifierNode(null, null, dependencyName, null))); lazyCompiledDependency = new CompiledDependency(dependencyName, compiledOpenClass); } return lazyCompiledDependency; } return null; }
public CompiledDependency load(String dependencyName, IDependencyManager dependencyManager) throws OpenLCompilationException{ Module dependencyModule = findDependencyModule(dependencyName); if(dependencyModule != null) { try { ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); // create classloader for the dependency. With the parent for current module. // ProjectDescriptor project = dependencyModule.getProject(); SimpleBundleClassLoader moduleClassLoader = new SimpleBundleClassLoader(project.getClassPathUrls(), oldClassLoader); SingleModuleInstantiationStrategy strategy = RulesInstantiationStrategyFactory.getStrategy(dependencyModule, dependencyManager.isExecutionMode(), dependencyManager, moduleClassLoader); strategy.setExternalParameters(dependencyManager.getExternalParameters()); CompiledOpenClass compiledOpenClass = strategy.compile(); return new CompiledDependency(dependencyName, compiledOpenClass); } catch (Exception e) { throw new OpenlNotCheckedException(String.format("Failed to load dependency '%s'!", dependencyName) , e); } } return null; }