Skip to content

Commit

Permalink
[BZ-1070191] make kie-maven-plugin to compile dtables and processes
Browse files Browse the repository at this point in the history
  • Loading branch information
mariofusco committed Mar 14, 2014
1 parent 0eca163 commit 2d117c2
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 8 deletions.
Expand Up @@ -5,6 +5,8 @@

public class BPMN2ProcessFactory {

private static final String PROVIDER_CLASS = "org.jbpm.bpmn2.BPMN2ProcessProviderImpl";

private static BPMN2ProcessProvider provider;

public static void configurePackageBuilder(PackageBuilder packageBuilder) {
Expand All @@ -24,8 +26,15 @@ public static synchronized BPMN2ProcessProvider getBPMN2ProcessProvider() {

@SuppressWarnings("unchecked")
private static void loadProvider() {
ServiceRegistryImpl.getInstance().addDefault( BPMN2ProcessProvider.class, "org.jbpm.bpmn2.BPMN2ProcessProviderImpl" );
ServiceRegistryImpl.getInstance().addDefault( BPMN2ProcessProvider.class, PROVIDER_CLASS );
setBPMN2ProcessProvider(ServiceRegistryImpl.getInstance().get( BPMN2ProcessProvider.class ) );
}

public static synchronized void loadProvider(ClassLoader cl) {
if (provider == null) {
try {
provider = (BPMN2ProcessProvider)Class.forName(PROVIDER_CLASS, true, cl).newInstance();
} catch (Exception e) { }
}
}
}
Expand Up @@ -6,12 +6,12 @@
import org.kie.internal.utils.ServiceRegistryImpl;

public class DecisionTableFactory {
private static DecisionTableProvider provider;


private static final String PROVIDER_CLASS = "org.drools.decisiontable.DecisionTableProviderImpl";

private static DecisionTableProvider provider;

public static String loadFromInputStream(InputStream is, DecisionTableConfiguration configuration) {

return getDecisionTableProvider().loadFromInputStream( is, configuration );
}

Expand All @@ -27,7 +27,15 @@ public static synchronized DecisionTableProvider getDecisionTableProvider() {
}

private static void loadProvider() {
ServiceRegistryImpl.getInstance().addDefault( DecisionTableProvider.class, "org.drools.decisiontable.DecisionTableProviderImpl" );
ServiceRegistryImpl.getInstance().addDefault( DecisionTableProvider.class, PROVIDER_CLASS );
setDecisionTableProvider(ServiceRegistryImpl.getInstance().get( DecisionTableProvider.class ) );
}

public static synchronized void loadProvider(ClassLoader cl) {
if (provider == null) {
try {
provider = (DecisionTableProvider)Class.forName(PROVIDER_CLASS, true, cl).newInstance();
} catch (Exception e) { }
}
}
}
Expand Up @@ -20,6 +20,8 @@

public class PMMLCompilerFactory {

private static final String PROVIDER_CLASS = "org.drools.pmml.pmml_4_1.PMML4Compiler";

private static PMMLCompiler provider;

public static synchronized PMMLCompiler getPMMLCompiler() {
Expand All @@ -34,7 +36,15 @@ public static void setProvider(PMMLCompiler provider) {
}

private static void loadProvider() {
ServiceRegistryImpl.getInstance().addDefault( PMMLCompiler.class, "org.drools.pmml.pmml_4_1.PMML4Compiler" );
ServiceRegistryImpl.getInstance().addDefault( PMMLCompiler.class, PROVIDER_CLASS );
setProvider(ServiceRegistryImpl.getInstance().get(PMMLCompiler.class));
}

public static synchronized void loadProvider(ClassLoader cl) {
if (provider == null) {
try {
provider = (PMMLCompiler)Class.forName(PROVIDER_CLASS, true, cl).newInstance();
} catch (Exception e) { }
}
}
}
Expand Up @@ -5,6 +5,8 @@

public class ProcessBuilderFactory {

private static final String PROVIDER_CLASS = "org.jbpm.process.builder.ProcessBuilderFactoryServiceImpl";

private static ProcessBuilderFactoryService provider;

public static ProcessBuilder newProcessBuilder(PackageBuilder packageBuilder) {
Expand All @@ -23,8 +25,16 @@ public static synchronized ProcessBuilderFactoryService getProcessBuilderFactory
}

private static void loadProvider() {
ServiceRegistryImpl.getInstance().addDefault( ProcessBuilderFactoryService.class, "org.jbpm.process.builder.ProcessBuilderFactoryServiceImpl" );
ServiceRegistryImpl.getInstance().addDefault( ProcessBuilderFactoryService.class, PROVIDER_CLASS );
setProcessBuilderFactoryService(ServiceRegistryImpl.getInstance().get( ProcessBuilderFactoryService.class ) );
}


public static synchronized void loadProvider(ClassLoader cl) {
if (provider == null) {
try {
provider = (ProcessBuilderFactoryService)Class.forName(PROVIDER_CLASS, true, cl).newInstance();
} catch (Exception e) { }
}
}
}
Expand Up @@ -2,10 +2,15 @@

import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
import org.drools.compiler.compiler.BPMN2ProcessFactory;
import org.drools.compiler.compiler.DecisionTableFactory;
import org.drools.compiler.compiler.PMMLCompilerFactory;
import org.drools.compiler.compiler.ProcessBuilderFactory;
import org.drools.compiler.kie.builder.impl.InternalKieModule;
import org.drools.compiler.kie.builder.impl.KieMetaInfoBuilder;
import org.kie.api.KieServices;
Expand All @@ -20,6 +25,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
Expand Down Expand Up @@ -62,7 +68,9 @@ public void execute() throws MojoExecutionException, MojoFailureException {
for (String element : project.getCompileClasspathElements()) {
urls.add(new File(element).toURI().toURL());
}
for (Artifact artifact : project.getDependencyArtifacts()) {

project.setArtifactFilter(new CumulativeScopeArtifactFilter(Arrays.asList("compile", "runtime")));
for (Artifact artifact : project.getArtifacts()) {
File file = artifact.getFile();
if (file != null) {
urls.add(file.toURI().toURL());
Expand All @@ -75,6 +83,11 @@ public void execute() throws MojoExecutionException, MojoFailureException {

Thread.currentThread().setContextClassLoader(projectClassLoader);

BPMN2ProcessFactory.loadProvider(projectClassLoader);
DecisionTableFactory.loadProvider(projectClassLoader);
ProcessBuilderFactory.loadProvider(projectClassLoader);
PMMLCompilerFactory.loadProvider(projectClassLoader);

} catch (DependencyResolutionRequiredException e) {
throw new RuntimeException(e);
} catch (MalformedURLException e) {
Expand Down

0 comments on commit 2d117c2

Please sign in to comment.