-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
ProcessBuilderFactory.java
40 lines (29 loc) · 1.37 KB
/
ProcessBuilderFactory.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package org.drools.compiler.compiler;
import org.kie.internal.utils.ServiceRegistryImpl;
public class ProcessBuilderFactory {
private static final String PROVIDER_CLASS = "org.jbpm.process.builder.ProcessBuilderFactoryServiceImpl";
private static ProcessBuilderFactoryService provider;
public static ProcessBuilder newProcessBuilder(PackageBuilder packageBuilder) {
return getProcessBuilderFactoryService().newProcessBuilder(packageBuilder);
}
public static synchronized void setProcessBuilderFactoryService(ProcessBuilderFactoryService provider) {
ProcessBuilderFactory.provider = provider;
}
public static synchronized ProcessBuilderFactoryService getProcessBuilderFactoryService() {
if (provider == null) {
loadProvider();
}
return provider;
}
private static void loadProvider() {
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) { }
}
}
}