[jboss-svn-commits] JBL Code SVN: r32468 - in labs/jbossrules/trunk: drools-grid/drools-grid-core and 6 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 7 13:43:37 EDT 2010


Author: salaboy21
Date: 2010-04-07 13:43:36 -0400 (Wed, 07 Apr 2010)
New Revision: 32468

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/JPAKnowledgeFactoryService.java
   labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/
   labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/drools.email.conf
   labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/orm.xml
   labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/persistence.xml
   labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/jndi.properties
   labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/jpa/grid/
   labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/jpa/grid/JPAKnowledgeProviderLocalClient.java
Modified:
   labs/jbossrules/trunk/drools-grid/drools-grid-core/pom.xml
   labs/jbossrules/trunk/drools-grid/drools-grid-core/src/main/java/org/drools/grid/local/LocalConnection.java
   labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/LocalExecutionNodeTest.java
Log:
JBRULES-2446: Drools Services API
	- drools-grid-core adding JPAKnowledge Support for the local implementation (+ test), Remote and Grid support is still missing 

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/JPAKnowledgeFactoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/JPAKnowledgeFactoryService.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/JPAKnowledgeFactoryService.java	2010-04-07 17:43:36 UTC (rev 32468)
@@ -0,0 +1,38 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.builder;
+
+import org.drools.KnowledgeBase;
+import org.drools.runtime.Environment;
+import org.drools.runtime.KnowledgeSessionConfiguration;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface JPAKnowledgeFactoryService {
+     StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeBase kbase,
+                                                         KnowledgeSessionConfiguration configuration,
+                                                         Environment environment);
+
+    StatefulKnowledgeSession loadStatefulKnowledgeSession(int id,
+                                                          KnowledgeBase kbase,
+                                                          KnowledgeSessionConfiguration configuration,
+                                                          Environment environment);
+}

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-core/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/pom.xml	2010-04-07 16:03:18 UTC (rev 32467)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/pom.xml	2010-04-07 17:43:36 UTC (rev 32468)
@@ -60,6 +60,74 @@
             <version>1.5.10</version>
         </dependency>
 
+
+        <!-- Test deps -->
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-persistence-jpa</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.btm</groupId>
+            <artifactId>btm</artifactId>
+            <version>1.3.3</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.transaction</groupId>
+            <artifactId>jta</artifactId>
+            <version>1.0.1B</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.btm</groupId>
+            <artifactId>btm</artifactId>
+            <version>1.3.3</version>
+            <scope>test</scope>
+        </dependency>
+
+         <!-- Persistence Provider: Hibernate -->
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-entitymanager</artifactId>
+            <version>3.4.0.GA</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-annotations</artifactId>
+            <version>3.4.0.GA</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-commons-annotations</artifactId>
+            <version>3.1.0.GA</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-core</artifactId>
+            <version>3.3.0.SP1</version>
+            <scope>test</scope>
+        </dependency>
+
+         <!-- DB H2 -->
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <version>1.2.128</version>
+            <scope>test</scope>
+        </dependency>
+
+
     </dependencies>
     
 </project>

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-core/src/main/java/org/drools/grid/local/LocalConnection.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/src/main/java/org/drools/grid/local/LocalConnection.java	2010-04-07 16:03:18 UTC (rev 32467)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/src/main/java/org/drools/grid/local/LocalConnection.java	2010-04-07 17:43:36 UTC (rev 32468)
@@ -21,6 +21,7 @@
 import java.util.List;
 import org.drools.KnowledgeBaseFactoryService;
 import org.drools.builder.DirectoryLookupFactoryService;
+import org.drools.builder.JPAKnowledgeFactoryService;
 import org.drools.builder.KnowledgeBuilderFactoryService;
 import org.drools.grid.DirectoryNodeService;
 import org.drools.grid.ExecutionNode;
@@ -76,6 +77,7 @@
         node.set(KnowledgeBuilderFactoryService.class, new KnowledgeBuilderProviderLocalClient() );
         node.set(KnowledgeBaseFactoryService.class, new KnowledgeBaseProviderLocalClient() );
         node.set(DirectoryLookupFactoryService.class, new DirectoryLookupProviderLocalClient());
+        
         return node;
     }
 

Added: labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/drools.email.conf
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/drools.email.conf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/drools.email.conf	2010-04-07 17:43:36 UTC (rev 32468)
@@ -0,0 +1,5 @@
+from = from at domain.com
+replyTo = replyTo at domain.com
+mail.smtp.host = localhost
+mail.smtp.port = 25
+defaultLanguage = en-UK
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/orm.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/orm.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/orm.xml	2010-04-07 17:43:36 UTC (rev 32468)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+               version="1.0">
+         <named-query name="ProcessInstancesWaitingForEvent">
+          <query>
+select
+    processInstanceInfo.processInstanceId
+from
+    ProcessInstanceInfo processInstanceInfo
+where
+    :type in elements (processInstanceInfo.eventTypes)
+          </query>
+      </named-query>
+     </entity-mappings>

Added: labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/persistence.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/persistence.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/META-INF/persistence.xml	2010-04-07 17:43:36 UTC (rev 32468)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<persistence version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
+http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/persistence">
+    <persistence-unit name="org.drools.persistence.jpa" transaction-type="JTA">
+        <provider>org.hibernate.ejb.HibernatePersistence</provider>
+        <jta-data-source>jdbc/testDS1</jta-data-source>
+        <class>org.drools.persistence.session.SessionInfo</class>
+        <class>org.drools.persistence.processinstance.ProcessInstanceInfo</class>
+        <class>org.drools.persistence.processinstance.ProcessInstanceEventInfo</class>
+        <class>org.drools.persistence.processinstance.WorkItemInfo</class>
+        <class>org.drools.persistence.processinstance.variabletypes.VariableInstanceInfo</class>
+        <class>org.drools.persistence.processinstance.variabletypes.JPAPersistedVariable</class>
+        
+        <properties>
+            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
+           
+            <property name="hibernate.connection.autocommit" value="false" />
+            <property name="hibernate.max_fetch_depth" value="3"/>
+            <property name="hibernate.hbm2ddl.auto" value="create" />
+            <property name="hibernate.show_sql" value="true" />
+            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup"/>
+        </properties>
+    </persistence-unit>
+   
+</persistence>

Added: labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/jndi.properties
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/jndi.properties	                        (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/jndi.properties	2010-04-07 17:43:36 UTC (rev 32468)
@@ -0,0 +1 @@
+java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/LocalExecutionNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/LocalExecutionNodeTest.java	2010-04-07 16:03:18 UTC (rev 32467)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/LocalExecutionNodeTest.java	2010-04-07 17:43:36 UTC (rev 32468)
@@ -17,8 +17,29 @@
 
 package org.drools.grid;
 
+
+import bitronix.tm.TransactionManagerServices;
+import bitronix.tm.resource.jdbc.PoolingDataSource;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import junit.framework.Assert;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.base.MapGlobalResolver;
+import org.drools.builder.JPAKnowledgeFactoryService;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.builder.ResourceType;
 import org.drools.grid.local.LocalConnection;
+import org.drools.io.ResourceFactory;
+import org.drools.persistence.jpa.grid.JPAKnowledgeProviderLocalClient;
+import org.drools.runtime.Environment;
+import org.drools.runtime.EnvironmentName;
+import org.drools.runtime.StatefulKnowledgeSession;
 import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
 /**
  *
@@ -26,17 +47,94 @@
  */
 public class LocalExecutionNodeTest extends ExecutionNodeBaseTest{
 
+    private static EntityManagerFactory entityManagerFactory;
+    private static PoolingDataSource dataSource;
     public LocalExecutionNodeTest() {
     }
 
-   
+    @BeforeClass
+    public static void initializeEntityManager() {
+        System.out.println("Initializing Entity Manager");
+        entityManagerFactory = Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
+    }
 
+    @BeforeClass
+    public static void initializeDataSource() {
+        System.out.println("Initializing Datasource");
+        dataSource = new PoolingDataSource();
+        dataSource.setUniqueName( "jdbc/testDS1" );
+        dataSource.setClassName( "org.h2.jdbcx.JdbcDataSource" );
+        dataSource.setMaxPoolSize( 3 );
+        dataSource.setAllowLocalTransactions( true );
+        dataSource.getDriverProperties().put( "user",
+                                       "sa" );
+        dataSource.getDriverProperties().put( "password",
+                                       "sasa" );
+        dataSource.getDriverProperties().put( "URL",
+                                       "jdbc:h2:mem:mydb" );
+        dataSource.init();
+    }
+
     @Before
     public void configureNode() {
         connection = new LocalConnection();
+
         node = connection.getExecutionNode(null);
+        node.set(JPAKnowledgeFactoryService.class, new JPAKnowledgeProviderLocalClient());
     }
+    
+    private Environment newEnvironment() {
+        Environment environment = KnowledgeBaseFactory.newEnvironment();
+        environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, entityManagerFactory);
+        environment.set(EnvironmentName.GLOBALS, new MapGlobalResolver());
+        environment.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager());
 
+        return environment;
+    }
+
+    @Test
+    public void persistenceTest(){
+        Environment env = newEnvironment();
+         String str = "";
+        str += "package org.drools \n";
+        str += "global java.util.List list \n";
+        str += "rule rule1 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello1!!!\" ); \n";
+        str += "end \n";
+        str += "rule rule2 \n";
+        str += "    dialect \"java\" \n";
+        str += "when \n";
+        str += "then \n";
+        str += "    System.out.println( \"hello2!!!\" ); \n";
+        str += "end \n";
+
+
+        KnowledgeBuilder kbuilder =
+                node.get(KnowledgeBuilderFactoryService.class).newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ),
+                      ResourceType.DRL );
+
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( "Errors: " + kbuilder.getErrors() );
+        }
+
+        KnowledgeBase kbase =
+                node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
+        Assert.assertNotNull(kbase);
+
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+
+        StatefulKnowledgeSession ksession = node
+                                                .get(JPAKnowledgeFactoryService.class)
+                                                .newStatefulKnowledgeSession(kbase, null, env);
+
+        Assert.assertNotNull(ksession);
+
+    }
    
 
 

Added: labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/jpa/grid/JPAKnowledgeProviderLocalClient.java
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/jpa/grid/JPAKnowledgeProviderLocalClient.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/jpa/grid/JPAKnowledgeProviderLocalClient.java	2010-04-07 17:43:36 UTC (rev 32468)
@@ -0,0 +1,203 @@
+/*
+ *  Copyright 2010 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.persistence.jpa.grid;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Properties;
+import org.drools.KnowledgeBase;
+import org.drools.SessionConfiguration;
+import org.drools.builder.JPAKnowledgeFactoryService;
+import org.drools.command.CommandService;
+import org.drools.command.impl.CommandBasedStatefulKnowledgeSession;
+import org.drools.persistence.processinstance.JPAProcessInstanceManagerFactory;
+import org.drools.persistence.processinstance.JPASignalManagerFactory;
+import org.drools.persistence.processinstance.JPAWorkItemManagerFactory;
+import org.drools.persistence.session.SingleSessionCommandService;
+import org.drools.process.instance.ProcessInstanceManagerFactory;
+import org.drools.process.instance.WorkItemManagerFactory;
+import org.drools.process.instance.event.SignalManagerFactory;
+import org.drools.runtime.Environment;
+import org.drools.runtime.KnowledgeSessionConfiguration;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+/**
+ *
+ * @author salaboy
+ */
+public class JPAKnowledgeProviderLocalClient implements JPAKnowledgeFactoryService {
+    	private Class<? extends CommandService> commandServiceClass;
+	private Class<? extends ProcessInstanceManagerFactory> processInstanceManagerFactoryClass;
+	private Class<? extends WorkItemManagerFactory> workItemManagerFactoryClass;
+	private Class<? extends SignalManagerFactory> processSignalManagerFactoryClass;
+
+	private Properties configProps = new Properties();
+
+	public JPAKnowledgeProviderLocalClient() {
+		setDefaultImplementations();
+	}
+
+	protected void setDefaultImplementations() {
+		setCommandServiceClass(SingleSessionCommandService.class);
+		setProcessInstanceManagerFactoryClass(JPAProcessInstanceManagerFactory.class);
+		setWorkItemManagerFactoryClass(JPAWorkItemManagerFactory.class);
+		setProcessSignalManagerFactoryClass(JPASignalManagerFactory.class);
+	}
+
+	public StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeBase kbase,
+			KnowledgeSessionConfiguration configuration,
+			Environment environment) {
+		if (configuration == null) {
+			configuration = new SessionConfiguration();
+		}
+
+		if (environment == null) {
+			throw new IllegalArgumentException("Environment cannot be null");
+		}
+
+		return new CommandBasedStatefulKnowledgeSession(
+				buildCommanService(kbase, mergeConfig(configuration), environment));
+	}
+
+	public StatefulKnowledgeSession loadStatefulKnowledgeSession(int id,
+			KnowledgeBase kbase,
+			KnowledgeSessionConfiguration configuration,
+			Environment environment) {
+		if (configuration == null) {
+			configuration = new SessionConfiguration();
+		}
+
+		if (environment == null) {
+			throw new IllegalArgumentException("Environment cannot be null");
+		}
+
+		return new CommandBasedStatefulKnowledgeSession(
+				buildCommanService(id, kbase, mergeConfig(configuration), environment));
+	}
+
+	private CommandService buildCommanService(int sessionId,
+			KnowledgeBase kbase,
+			KnowledgeSessionConfiguration conf,
+			Environment env) {
+
+		try {
+			Class<? extends CommandService> serviceClass = getCommandServiceClass();
+			Constructor<? extends CommandService> constructor = serviceClass.getConstructor(int.class,
+					KnowledgeBase.class, KnowledgeSessionConfiguration.class, Environment.class);
+			return constructor.newInstance(sessionId, kbase, conf, env);
+		} catch (SecurityException e) {
+			throw new IllegalStateException(e);
+		} catch (NoSuchMethodException e) {
+			throw new IllegalStateException(e);
+		} catch (IllegalArgumentException e) {
+			throw new IllegalStateException(e);
+		} catch (InstantiationException e) {
+			throw new IllegalStateException(e);
+		} catch (IllegalAccessException e) {
+			throw new IllegalStateException(e);
+		} catch (InvocationTargetException e) {
+			throw new IllegalStateException(e);
+		}
+	}
+
+	private CommandService buildCommanService(KnowledgeBase kbase,
+			KnowledgeSessionConfiguration conf,
+			Environment env) {
+
+		Class<? extends CommandService> serviceClass = getCommandServiceClass();
+		try {
+			Constructor<? extends CommandService> constructor = serviceClass.getConstructor(KnowledgeBase.class,
+					KnowledgeSessionConfiguration.class, Environment.class);
+			return constructor.newInstance(kbase, conf, env);
+		} catch (SecurityException e) {
+			throw new IllegalStateException(e);
+		} catch (NoSuchMethodException e) {
+			throw new IllegalStateException(e);
+		} catch (IllegalArgumentException e) {
+			throw new IllegalStateException(e);
+		} catch (InstantiationException e) {
+			throw new IllegalStateException(e);
+		} catch (IllegalAccessException e) {
+			throw new IllegalStateException(e);
+		} catch (InvocationTargetException e) {
+			throw new IllegalStateException(e);
+		}
+	}
+
+	private KnowledgeSessionConfiguration mergeConfig(KnowledgeSessionConfiguration configuration) {
+		((SessionConfiguration) configuration).addProperties(configProps);
+		return configuration;
+	}
+
+	public int getStatefulKnowledgeSessionId(StatefulKnowledgeSession ksession) {
+		if (ksession instanceof CommandBasedStatefulKnowledgeSession) {
+			SingleSessionCommandService commandService = (SingleSessionCommandService) ((CommandBasedStatefulKnowledgeSession) ksession)
+					.getCommandService();
+			return commandService.getSessionId();
+		}
+		throw new IllegalArgumentException("StatefulKnowledgeSession must be an a CommandBasedStatefulKnowledgeSession");
+	}
+
+	public void setCommandServiceClass(Class<? extends CommandService> commandServiceClass) {
+		if (commandServiceClass != null) {
+			this.commandServiceClass = commandServiceClass;
+			configProps.put("drools.commandService", commandServiceClass.getName());
+		}
+	}
+
+	public Class<? extends CommandService> getCommandServiceClass() {
+		return commandServiceClass;
+	}
+
+	public void setProcessInstanceManagerFactoryClass(
+			Class<? extends ProcessInstanceManagerFactory> processInstanceManagerFactoryClass) {
+		if (processInstanceManagerFactoryClass != null) {
+			this.processInstanceManagerFactoryClass = processInstanceManagerFactoryClass;
+			configProps.put("drools.processInstanceManagerFactory", processInstanceManagerFactoryClass.getName());
+		}
+	}
+
+	public Class<? extends ProcessInstanceManagerFactory> getProcessInstanceManagerFactoryClass() {
+		return processInstanceManagerFactoryClass;
+	}
+
+	public void setWorkItemManagerFactoryClass(Class<? extends WorkItemManagerFactory> workItemManagerFactoryClass) {
+		if (workItemManagerFactoryClass != null) {
+			this.workItemManagerFactoryClass = workItemManagerFactoryClass;
+			configProps.put("drools.workItemManagerFactory", workItemManagerFactoryClass.getName());
+		}
+	}
+
+	public Class<? extends WorkItemManagerFactory> getWorkItemManagerFactoryClass() {
+		return workItemManagerFactoryClass;
+	}
+
+	public void setProcessSignalManagerFactoryClass(
+			Class<? extends SignalManagerFactory> processSignalManagerFactoryClass) {
+		if (processSignalManagerFactoryClass != null) {
+			this.processSignalManagerFactoryClass = processSignalManagerFactoryClass;
+			configProps.put("drools.processSignalManagerFactory", processSignalManagerFactoryClass.getName());
+		}
+	}
+
+	public Class<? extends SignalManagerFactory> getProcessSignalManagerFactoryClass() {
+		return processSignalManagerFactoryClass;
+	}
+
+
+}



More information about the jboss-svn-commits mailing list