protected ClassLoader initClassLoader() throws RulesInstantiationException {// Required for lazy if (classLoader == null) { SimpleBundleClassLoader simpleBundleClassLoader = new SimpleBundleClassLoader(Thread.currentThread() .getContextClassLoader()); ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(simpleBundleClassLoader); classLoader = getEngineFactory().getCompiledOpenClass().getClassLoader(); //simpleBundleClassLoader.addClassLoader(newClassLoader); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } //classLoader = simpleBundleClassLoader; } return classLoader; }
protected ClassLoader initClassLoader() throws RulesInstantiationException {// Required for lazy if (classLoader == null) { SimpleBundleClassLoader simpleBundleClassLoader = new SimpleBundleClassLoader(Thread.currentThread() .getContextClassLoader()); ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(simpleBundleClassLoader); classLoader = getEngineFactory().getCompiledOpenClass().getClassLoader(); //simpleBundleClassLoader.addClassLoader(newClassLoader); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } //classLoader = simpleBundleClassLoader; } return classLoader; }
protected CompiledOpenClass initializeOpenClass() { // Change class loader to OpenLBundleClassLoader // // ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); try { // if current bundle is dependency of parent bundle it must be // visible // for parent bundle // if (!(oldClassLoader instanceof OpenLBundleClassLoader)) { ClassLoader newClassLoader = new SimpleBundleClassLoader(oldClassLoader); Thread.currentThread().setContextClassLoader(newClassLoader); } return OpenLManager.compileModuleWithErrors(getOpenL(), getSourceCode(), executionMode, dependencyManager); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }
protected ClassLoader buildClassLoader(AbstractProjectDependencyManager dependencyManager) { ClassLoader projectClassLoader = dependencyManager.getClassLoader(modules.iterator().next().getProject()); SimpleBundleClassLoader simpleBundleClassLoader = new SimpleBundleClassLoader(null); simpleBundleClassLoader.addClassLoader(projectClassLoader); return simpleBundleClassLoader; }
protected ClassLoader buildClassLoader(AbstractProjectDependencyManager dependencyManager) { ClassLoader projectClassLoader = dependencyManager.getClassLoader(modules.iterator().next().getProject()); SimpleBundleClassLoader simpleBundleClassLoader = new SimpleBundleClassLoader(null); simpleBundleClassLoader.addClassLoader(projectClassLoader); return simpleBundleClassLoader; }
protected CompiledOpenClass initializeOpenClass() { // Change class loader to OpenLBundleClassLoader // // ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); try { // if current bundle is dependency of parent bundle it must be // visible // for parent bundle // if (!(oldClassLoader instanceof OpenLBundleClassLoader)) { ClassLoader newClassLoader = new SimpleBundleClassLoader(oldClassLoader); Thread.currentThread().setContextClassLoader(newClassLoader); } return OpenLManager.compileModuleWithErrors(getOpenL(), getSourceCode(), executionMode, dependencyManager); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }
@SuppressWarnings("deprecation") protected ClassLoader initClassLoader() { ProjectDescriptor project = getModule().getProject(); ClassLoader parent = project.getClassLoader(false); SimpleBundleClassLoader classLoader = new SimpleBundleClassLoader(project.getClassPathUrls(), parent); return classLoader; }
@SuppressWarnings("deprecation") protected ClassLoader initClassLoader() { ProjectDescriptor project = getModule().getProject(); ClassLoader parent = project.getClassLoader(false); SimpleBundleClassLoader classLoader = new SimpleBundleClassLoader(project.getClassPathUrls(), parent); return classLoader; }
private List<XlsTable> load(IOpenSourceCodeModule src) { final ClassLoader oldCl = Thread.currentThread().getContextClassLoader(); SimpleBundleClassLoader bundleCl = null; try { bundleCl = new SimpleBundleClassLoader(oldCl); Thread.currentThread().setContextClassLoader(bundleCl); UserContext ucxt = new UserContext(bundleCl, "."); IParsedCode pc = new SequentialParser(ucxt).parseAsModule(src); IBoundCode bc = new XlsBinder(ucxt).bind(pc); IOpenClass ioc = bc.getTopNode().getType(); XlsMetaInfo xmi = (XlsMetaInfo) ioc.getMetaInfo(); XlsModuleSyntaxNode xsn = xmi.getXlsModuleNode(); TableSyntaxNode[] nodes = xsn.getXlsTableSyntaxNodes(); List<XlsTable> tables = new ArrayList<>(nodes.length); for (TableSyntaxNode node : nodes) { tables.add(new XlsTable(node)); } return tables; } finally { OpenClassUtil.releaseClassLoader(bundleCl); Thread.currentThread().setContextClassLoader(oldCl); } }
protected IOpenClass makeOpenClass() throws Exception { ClassLoader applicationClassLoader = getApplicationClassLoader(); SimpleBundleClassLoader bundleClassLoader = new SimpleBundleClassLoader(applicationClassLoader); UserContext ucxt = getUserContext(bundleClassLoader); Thread.currentThread().setContextClassLoader(bundleClassLoader); long start = System.currentTimeMillis(); OpenClassJavaWrapper jwrapper = null; try { IDependencyManager dependencyManager = instantiateDependencyManager(); jwrapper = OpenClassJavaWrapper.createWrapper(openlName, ucxt, resourcesPath + srcFile, false, dependencyManager); } finally { long end = System.currentTimeMillis(); log("Loaded " + resourcesPath + srcFile + " in " + (end - start) + " ms"); } List<OpenLMessage> errorMessages = OpenLMessagesUtils.filterMessagesBySeverity( jwrapper.getCompiledClass().getMessages(), Severity.ERROR); if (errorMessages != null && !errorMessages.isEmpty()) { String message = getErrorMessage(errorMessages); // throw new OpenLCompilationException(message); log(message, Project.MSG_ERR); } // else { return jwrapper.getOpenClass(); // } }
private CollectionUtils.Predicate<ITreeElement> getUtilityTablePredicate(WebStudio studio, Module module) { CollectionUtils.Predicate<ITreeElement> utilityTablePredicate; if (module.getExtension() == null) { utilityTablePredicate = new UtilityTablePredicate(hideUtilityTables); } else { ClassLoader classLoader = null; try { classLoader = new SimpleBundleClassLoader(Thread.currentThread().getContextClassLoader()); utilityTablePredicate = ExtensionDescriptorFactory.getExtensionDescriptor( module.getExtension(), classLoader ).getUtilityTablePredicate(studio.getModel().getXlsModuleNode()); } finally { ClassLoaderUtils.close(classLoader); } } return utilityTablePredicate; }
private CollectionUtils.Predicate<ITreeElement> getUtilityTablePredicate(WebStudio studio, Module module) { CollectionUtils.Predicate<ITreeElement> utilityTablePredicate; if (module.getExtension() == null) { utilityTablePredicate = new UtilityTablePredicate(hideUtilityTables); } else { ClassLoader classLoader = null; try { classLoader = new SimpleBundleClassLoader(Thread.currentThread().getContextClassLoader()); utilityTablePredicate = ExtensionDescriptorFactory .getExtensionDescriptor(module.getExtension(), classLoader) .getUtilityTablePredicate(studio.getModel().getXlsModuleNode()); } finally { ClassLoaderUtils.close(classLoader); } } return utilityTablePredicate; }
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; }
ClassLoader classLoader = new SimpleBundleClassLoader(Thread.currentThread().getContextClassLoader()); IExtensionDescriptor extensionDescriptor = ExtensionDescriptorFactory.getExtensionDescriptor( module.getExtension(),
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 protected ClassLoader initClassLoader() throws RulesInstantiationException { SimpleBundleClassLoader classLoader = new SimpleBundleClassLoader(Thread.currentThread() .getContextClassLoader()); for (Module module : modules) { try { CompiledDependency compiledDependency = getDependencyManager().loadDependency( new Dependency(DependencyType.MODULE, new IdentifierNode(null, null, module.getName(), null))); CompiledOpenClass compiledOpenClass = compiledDependency.getCompiledOpenClass(); classLoader.addClassLoader(compiledOpenClass.getClassLoader()); } catch (OpenLCompilationException e) { throw new RulesInstantiationException(e.getMessage(), e); } } return classLoader; }
@Override protected ClassLoader initClassLoader() throws RulesInstantiationException { SimpleBundleClassLoader classLoader = new SimpleBundleClassLoader(Thread.currentThread() .getContextClassLoader()); for (Module module : modules) { try { CompiledDependency compiledDependency = getDependencyManager().loadDependency( new Dependency(DependencyType.MODULE, new IdentifierNode(null, null, module.getName(), null))); CompiledOpenClass compiledOpenClass = compiledDependency.getCompiledOpenClass(); classLoader.addClassLoader(compiledOpenClass.getClassLoader()); } catch (OpenLCompilationException e) { throw new RulesInstantiationException(e.getMessage(), e); } } return classLoader; }
public ClassLoader getClassLoader(ProjectDescriptor project) { getDependencyLoaders(); if (classLoaders.get(project.getName()) != null) { return classLoaders.get(project.getName()); } SimpleBundleClassLoader classLoader = new SimpleBundleClassLoader(project.getClassPathUrls(), rootClassLoader); classLoader.addClassLoader(project.getClassLoader(false)); if (project.getDependencies() != null) { for (ProjectDependencyDescriptor projectDependencyDescriptor : project.getDependencies()) { if (getProjectDescriptors() != null) { for (ProjectDescriptor projectDescriptor : getProjectDescriptors()) { if (projectDependencyDescriptor.getName().equals(projectDescriptor.getName())) { classLoader.addClassLoader(getClassLoader(projectDescriptor)); break; } } } } } classLoaders.put(project.getName(), classLoader); return classLoader; }
public ClassLoader getClassLoader(ProjectDescriptor project) { getDependencyLoaders(); if (classLoaders.get(project.getName()) != null) { return classLoaders.get(project.getName()); } SimpleBundleClassLoader classLoader = new SimpleBundleClassLoader(project.getClassPathUrls(), rootClassLoader); classLoader.addClassLoader(project.getClassLoader(false)); if (project.getDependencies() != null) { for (ProjectDependencyDescriptor projectDependencyDescriptor : project.getDependencies()) { if (getProjectDescriptors() != null) { for (ProjectDescriptor projectDescriptor : getProjectDescriptors()) { if (projectDependencyDescriptor.getName().equals(projectDescriptor.getName())) { classLoader.addClassLoader(getClassLoader(projectDescriptor)); break; } } } } } classLoaders.put(project.getName(), classLoader); return classLoader; }
ClassLoader applicationClassLoader = getApplicationClassLoader(); SimpleBundleClassLoader bundleClassLoader = new SimpleBundleClassLoader(applicationClassLoader); UserContext ucxt = new UserContext(bundleClassLoader, userHome); Thread.currentThread().setContextClassLoader(bundleClassLoader);