
org.openl.rules.project.dependencies.ResolvingRulesProjectDependencyLoader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.openl.rules.project Show documentation
Show all versions of org.openl.rules.project Show documentation
Classes and utilities to work with OpenL Rules Project
package org.openl.rules.project.dependencies;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openl.dependency.CompiledDependency;
import org.openl.dependency.IDependencyManager;
import org.openl.dependency.loader.IDependencyLoader;
import org.openl.exception.OpenLCompilationException;
import org.openl.rules.project.model.Module;
import org.openl.rules.project.model.ProjectDescriptor;
import org.openl.rules.project.resolving.RulesProjectResolver;
public class ResolvingRulesProjectDependencyLoader implements IDependencyLoader {
private RulesProjectResolver projectResolver;
private RulesModuleDependencyLoader delegate;
public ResolvingRulesProjectDependencyLoader(String workspace) {
this(initResolverFromClasspath(workspace));
}
public ResolvingRulesProjectDependencyLoader(RulesProjectResolver projectResolver) {
this.projectResolver = projectResolver;
init();
}
public CompiledDependency load(String dependencyName, IDependencyManager dependencyManager) throws OpenLCompilationException{
return delegate.load(dependencyName, dependencyManager);
}
private void init() {
List projects = projectResolver.listOpenLProjects();
Map modules = new HashMap();
for (ProjectDescriptor project : projects) {
for (Module module : project.getModules()) {
String key = module.getName();
modules.put(key, module);
}
}
delegate = new RulesModuleDependencyLoader(modules.values());
}
private static RulesProjectResolver initResolverFromClasspath(String workspace) {
RulesProjectResolver projectResolver = RulesProjectResolver.loadProjectResolverFromClassPath();
projectResolver.setWorkspace(workspace);
return projectResolver;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy