@Override public CompiledDependency load(String dependencyName, IDependencyManager dm) throws OpenLCompilationException { AbstractProjectDependencyManager dependencyManager; if (dm instanceof AbstractProjectDependencyManager) { dependencyManager = (AbstractProjectDependencyManager) dm; } else { throw new IllegalStateException("This loader works only with AbstractProjectDependencyManager!"); } if (this.dependencyName.equals(dependencyName)) { boolean isCircularDependency = dependencyManager.getCompilationStack().contains(dependencyName); if (!isCircularDependency && !dependencyManager.getCompilationStack().isEmpty()){ AbstractProjectDependencyManager.DependencyReference dr = new AbstractProjectDependencyManager.DependencyReference(dependencyManager.getCompilationStack().getLast(), dependencyName); dependencyManager.getDependencyReferences().add(dr); } if (compiledDependency != null) { log.debug("Dependency for dependencyName = {} from cache has been returned.", dependencyName); return compiledDependency; } try { if (isCircularDependency) { throw new OpenLCompilationException("Circular dependency has been detected in module: " + dependencyName); } return compileDependency(dependencyName, dependencyManager); } finally { dependencyManager.getCompilationStack().pollLast(); } } return null; }
@Override public CompiledDependency load(String dependencyName, IDependencyManager dm) throws OpenLCompilationException { AbstractProjectDependencyManager dependencyManager; if (dm instanceof AbstractProjectDependencyManager) { dependencyManager = (AbstractProjectDependencyManager) dm; } else { throw new IllegalStateException("This loader works only with AbstractProjectDependencyManager!"); } if (this.dependencyName.equals(dependencyName)) { boolean isCircularDependency = dependencyManager.getCompilationStack().contains(dependencyName); if (!isCircularDependency && !dependencyManager.getCompilationStack().isEmpty()){ AbstractProjectDependencyManager.DependencyReference dr = new AbstractProjectDependencyManager.DependencyReference(dependencyManager.getCompilationStack().getLast(), dependencyName); dependencyManager.getDependencyReferences().add(dr); } if (compiledDependency != null) { log.debug("Dependency for dependencyName = {} from cache has been returned.", dependencyName); return compiledDependency; } try { if (isCircularDependency) { throw new OpenLCompilationException("Circular dependency has been detected in module: " + dependencyName); } return compileDependency(dependencyName, dependencyManager); } finally { dependencyManager.getCompilationStack().pollLast(); } } return null; }
ClassLoader classLoader = buildClassLoader(dependencyManager); if (!isProject && modules.size() == 1) { dependencyManager.getCompilationStack().add(dependencyName); log.debug("Creating dependency for dependencyName = {}", dependencyName); rulesInstantiationStrategy = RulesInstantiationStrategyFactory.getStrategy(modules.iterator()
ClassLoader classLoader = buildClassLoader(dependencyManager); if (!isProject && modules.size() == 1) { dependencyManager.getCompilationStack().add(dependencyName); log.debug("Creating dependency for dependencyName = {}", dependencyName); rulesInstantiationStrategy = RulesInstantiationStrategyFactory.getStrategy(modules.iterator()