[jboss-svn-commits] JBL Code SVN: r5110 - in labs/jbossrules/trunk: . drools-server drools-server/.settings drools-server/src drools-server/src/main drools-server/src/main/java drools-server/src/main/java/org drools-server/src/main/java/org/drools drools-server/src/test drools-server/src/test/java drools-server/src/test/java/org drools-server/src/test/java/org/drools
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jul 15 08:46:30 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-07-15 08:46:22 -0400 (Sat, 15 Jul 2006)
New Revision: 5110
Added:
labs/jbossrules/trunk/drools-server/
labs/jbossrules/trunk/drools-server/.classpath
labs/jbossrules/trunk/drools-server/.project
labs/jbossrules/trunk/drools-server/.settings/
labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.core.prefs
labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.ui.prefs
labs/jbossrules/trunk/drools-server/.settings/org.eclipse.ltk.core.refactoring.prefs
labs/jbossrules/trunk/drools-server/pom.xml
labs/jbossrules/trunk/drools-server/src/
labs/jbossrules/trunk/drools-server/src/main/
labs/jbossrules/trunk/drools-server/src/main/java/
labs/jbossrules/trunk/drools-server/src/main/java/org/
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsClient.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServer.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServerImpl.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsService.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/HelloWorld.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/Message.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseInfo.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseManager.java
labs/jbossrules/trunk/drools-server/src/main/java/org/drools/WorkingMemoryManager.java
labs/jbossrules/trunk/drools-server/src/main/resources/
labs/jbossrules/trunk/drools-server/src/test/
labs/jbossrules/trunk/drools-server/src/test/java/
labs/jbossrules/trunk/drools-server/src/test/java/org/
labs/jbossrules/trunk/drools-server/src/test/java/org/drools/
labs/jbossrules/trunk/drools-server/src/test/java/org/drools/DroolsClientServerTest.java
labs/jbossrules/trunk/drools-server/src/test/resources/
Modified:
labs/jbossrules/trunk/build.xml
labs/jbossrules/trunk/pom.xml
Log:
JBRULES-374 Initial import of drools-server
Modified: labs/jbossrules/trunk/build.xml
===================================================================
--- labs/jbossrules/trunk/build.xml 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/build.xml 2006-07-15 12:46:22 UTC (rev 5110)
@@ -8,6 +8,7 @@
<echo level="info" message="The build process is for the following four modules:" />
<echo level="info" message="drools-core" />
<echo level="info" message="drools-compiler" />
+ <echo level="info" message="drools-server" />
<echo level="info" message="drools-decisiontables" />
<echo level="info" message="drools-jsr94" />
<echo level="info" message=" " />
@@ -114,6 +115,10 @@
<artifact:dependencies filesetId="drools-compiler.dependency.fileset" verbose="false">
<pom file="drools-compiler/pom.xml"/>
</artifact:dependencies>
+
+ <artifact:dependencies filesetId="drools-server.dependency.fileset" verbose="false">
+ <pom file="drools-server/pom.xml"/>
+ </artifact:dependencies>
<artifact:dependencies filesetId="drools-decisiontables.dependency.fileset" verbose="false">
<pom file="drools-decisiontables/pom.xml"/>
@@ -126,6 +131,7 @@
<copy todir="repository">
<fileset refid="drools-core.dependency.fileset"/>
<fileset refid="drools-compiler.dependency.fileset"/>
+ <fileset refid="drools-server.dependency.fileset"/>
<fileset refid="drools-decisiontables.dependency.fileset"/>
<fileset refid="drools-jsr94.dependency.fileset"/>
</copy>
@@ -142,6 +148,7 @@
<!-- copy the drools module jars for the plug in. We will remove the version number from them -->
<copy tofile="drools-ide/lib/drools-core.jar" flatten="true" file="target/drools-core-${version}.jar" />
<copy tofile="drools-ide/lib/drools-compiler.jar" flatten="true" file="target/drools-compiler-${version}.jar" />
+ <copy tofile="drools-ide/lib/drools-server.jar" flatten="true" file="target/drools-server-${version}.jar" />
<copy tofile="drools-ide/lib/drools-decisiontables.jar" flatten="true" file="target/drools-decisiontables-${version}.jar" />
<copy tofile="drools-ide/lib/drools-jsr94.jar" flatten="true" file="target/drools-jsr94-${version}.jar" />
@@ -351,7 +358,34 @@
<target name="clean-compiler">
<delete dir="drools-compiler/target"/>
</target>
+
+ <!--
+ **************************************************
+ * drools-compiler
+ **************************************************
+ -->
+ <target name="compile-server" depends="build-core">
+ <antcall target="compile-module">
+ <param name="module" value="drools-server"/>
+ </antcall>
+ </target>
+ <target name="test-server" depends="compile-server">
+ <antcall target="test-module">
+ <param name="module" value="drools-server"/>
+ </antcall>
+ </target>
+
+ <target name="build-server" depends="test-server">
+ <antcall target="build-module">
+ <param name="module" value="drools-server"/>
+ </antcall>
+ </target>
+
+ <target name="clean-server">
+ <delete dir="drools-server/target"/>
+ </target>
+
<!--
**************************************************
* drools-decisiontables
@@ -414,16 +448,16 @@
**************************************************
-->
- <target name="compile-all" depends="compile-core, compile-compiler, compile-decisiontables, compile-jsr94">
+ <target name="compile-all" depends="compile-core, compile-compiler, compile-server, compile-decisiontables, compile-jsr94">
</target>
- <target name="test-all" depends="test-core, test-compiler, test-decisiontables, test-jsr94">
+ <target name="test-all" depends="test-core, test-compiler, test-server, test-decisiontables, test-jsr94">
</target>
- <target name="build-all" depends="build-core, build-compiler, build-decisiontables, build-jsr94, copy-deps">
+ <target name="build-all" depends="build-core, build-compiler, build-server, build-decisiontables, build-jsr94, copy-deps">
</target>
- <target name="clean-all" depends="clean-core, clean-compiler, clean-decisiontables, clean-jsr94">
+ <target name="clean-all" depends="clean-core, clean-compiler, clean-server, clean-decisiontables, clean-jsr94">
<delete dir="target" />
<delete>
Added: labs/jbossrules/trunk/drools-server/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-server/.classpath 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/.classpath 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,23 @@
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="src" path="src/test/resources" output="target/test-classes"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/jung/jung/1.7.2/jung-1.7.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-common/4.0.4/jboss-common-4.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6/dom4j-1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-remoting/1.4.1/jboss-remoting-1.4.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/colt/colt/1.2.0/colt-1.2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-serialization/1.0.0.RC2/jboss-serialization-1.0.0.RC2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/3.0.2/drools-core-3.0.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-jmx/4.0.4/jboss-jmx-4.0.4.jar"/>
+</classpath>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-server/.project
===================================================================
--- labs/jbossrules/trunk/drools-server/.project 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/.project 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,28 @@
+<projectDescription>
+ <name>drools-server</name>
+ <comment/>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</name>
+ <arguments/>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments/>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments/>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</name>
+ <arguments/>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.core.prefs 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.core.prefs 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,12 @@
+#Thu Jul 13 02:32:39 BST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
Added: labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.ui.prefs
===================================================================
--- labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.ui.prefs 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/.settings/org.eclipse.jdt.ui.prefs 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,3 @@
+#Sun Jul 02 16:26:07 BST 2006
+eclipse.preferences.version=1
+internal.default.compliance=default
Added: labs/jbossrules/trunk/drools-server/.settings/org.eclipse.ltk.core.refactoring.prefs
===================================================================
--- labs/jbossrules/trunk/drools-server/.settings/org.eclipse.ltk.core.refactoring.prefs 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/.settings/org.eclipse.ltk.core.refactoring.prefs 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,3 @@
+#Sun Jul 02 16:27:26 BST 2006
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
Added: labs/jbossrules/trunk/drools-server/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-server/pom.xml 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/pom.xml 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,43 @@
+<project>
+ <parent>
+ <artifactId>drools</artifactId>
+ <groupId>org.drools</groupId>
+ <version>3.0.2</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>drools-server</artifactId>
+
+ <name>Drools :: Server</name>
+ <version>3.0.2</version>
+
+ <repositories>
+ <repository>
+ <id>basedir</id>
+ <url>file://${basedir}/../repository</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-remoting</artifactId>
+ <version>1.4.1</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- This is needed to copy the generated jars into the IDE/Plugs lib directory -->
+ <build>
+ <plugins>
+ </plugins>
+ </build>
+
+</project>
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsClient.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsClient.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsClient.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,132 @@
+package org.drools;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.Notification;
+import javax.management.NotificationListener;
+import javax.management.ObjectName;
+
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.detection.multicast.MulticastDetector;
+import org.jboss.remoting.network.NetworkNotification;
+import org.jboss.remoting.network.NetworkRegistry;
+import org.jboss.remoting.transporter.TransporterClient;
+
+public class DroolsClient
+ implements
+ NotificationListener {
+
+ private String locatorURI = "rmi://localhost:5400/?" + InvokerLocator.BYVALUE + "=" + Boolean.TRUE.toString();
+
+ private Set servers = new HashSet();
+ MBeanServer server;
+ MulticastDetector detector;
+
+ /**
+ * Sets up NetworkRegistry and MulticastDetector so we can listen for any additions or removals of remoting
+ * servers on the network.
+ *
+ * @throws Exception
+ */
+ public void start() throws Exception {
+ if ( this.detector != null ) {
+ return;
+ }
+
+ // we need an MBeanServer to store our network registry and multicast detector services
+ server = MBeanServerFactory.createMBeanServer();
+
+ // the registry will house all remoting servers discovered
+ NetworkRegistry registry = NetworkRegistry.getInstance();
+ server.registerMBean( registry,
+ new ObjectName( "remoting:type=NetworkRegistry" ) );
+ System.out.println( "NetworkRegistry has been created" );
+
+ // register class as listener, so know when new server found
+ registry.addNotificationListener( this,
+ null,
+ null );
+ System.out.println( "NetworkRegistry has added the client as a listener" );
+
+ // multicast detector will detect new network registries that come online
+ detector = new MulticastDetector();
+ server.registerMBean( detector,
+ new ObjectName( "remoting:type=MulticastDetector" ) );
+ detector.start();
+ System.out.println( "MulticastDetector has been created and is listening for new NetworkRegistries to come online" );
+ }
+
+ public void stop() throws Exception {
+ this.detector.stop();
+ }
+
+ public void reset() throws Exception {
+ this.detector.stop();
+ this.servers.clear();
+ this.detector.start();
+ }
+
+ // public static void main(String[] args) {
+ // DroolsClient client = new DroolsClient();
+ // try {
+ // client.start();
+ // Thread.sleep( 1000 );
+ //
+ // client.connect();
+ //
+ // client.stop();
+ //
+ // } catch ( Exception e ) {
+ // e.printStackTrace();
+ // }
+ // }
+
+ public DroolsServer connect() throws Exception {
+// InvokerLocator locator = (InvokerLocator) this.servers.toArray()[0];
+// DroolsServer server = (DroolsServer) TransporterClient.createTransporterClient( locator.getLocatorURI(),
+// DroolsServer.class );
+
+ DroolsServer server = (DroolsServer) TransporterClient.createTransporterClient( this.locatorURI,
+ DroolsServer.class );
+ return server;
+ }
+
+ public void disconnect(DroolsServer server) {
+ TransporterClient.destroyTransporterClient( server );
+ }
+
+ /**
+ * Callback method from the broadcaster MBean this listener implementation is registered to. When a new server
+ * is detected, a welcome message will immediately be sent to the newly discovered server.
+ *
+ * @param notification the notification object
+ * @param handback the handback object given to the broadcaster upon listener registration
+ */
+ public void handleNotification(Notification notification,
+ Object handback) {
+ if ( notification instanceof NetworkNotification ) {
+ System.out.println( "GOT A NETWORK-REGISTRY NOTIFICATION: " + notification.getType() );
+
+ NetworkNotification networkNotification = (NetworkNotification) notification;
+
+ if ( NetworkNotification.SERVER_ADDED.equals( networkNotification.getType() ) ) { // notification is for new servers being added
+ System.out.println( "New server(s) have been detected - getting locators and sending welcome messages" );
+ InvokerLocator[] locators = networkNotification.getLocator();
+ for ( int i = 0; i < locators.length; i++ ) {
+ this.servers.add( locators[i] );
+ }
+ } else if ( NetworkNotification.SERVER_REMOVED.equals( networkNotification.getType() ) ) {
+ System.out.println( "Server(s) have gone offline - getting locators and sending welcome messages" );
+ InvokerLocator[] locators = networkNotification.getLocator();
+ for ( int i = 0; i < locators.length; i++ ) {
+ this.servers.remove( locators[i] );
+ }
+ }
+ }
+
+ return;
+ }
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServer.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServer.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServer.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,12 @@
+package org.drools;
+
+public interface DroolsServer {
+ public boolean registerRuleBase(RuleBase ruleBase,
+ RuleBaseInfo info);
+
+ public boolean deregisterRuleBase(String id);
+
+ public boolean isRegistered(String id);
+
+ public RuleBaseInfo[] listRuleBases();
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServerImpl.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsServerImpl.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,22 @@
+package org.drools;
+
+public class DroolsServerImpl implements DroolsServer {
+ private RuleBaseManager ruleBaseManager = new RuleBaseManager();
+
+ public boolean registerRuleBase(RuleBase ruleBase,
+ RuleBaseInfo info) {
+ return this.ruleBaseManager.registerRuleBase( ruleBase, info );
+ }
+
+ public boolean deregisterRuleBase(String id) {
+ return this.ruleBaseManager.deregisterRuleBase( id );
+ }
+
+ public boolean isRegistered(String id) {
+ return this.ruleBaseManager.isRegistered( id );
+ }
+
+ public RuleBaseInfo[] listRuleBases() {
+ return this.ruleBaseManager.listRuleBases();
+ }
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsService.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsService.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/DroolsService.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,72 @@
+package org.drools;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.detection.multicast.MulticastDetector;
+import org.jboss.remoting.transporter.TransporterServer;
+import org.jboss.util.id.UID;
+
+import sun.security.x509.UniqueIdentity;
+
+public class DroolsService implements Runnable
+{
+ // Default locator values
+ private String locatorURI = "rmi://localhost:5400/?" + InvokerLocator.BYVALUE + "=" + Boolean.TRUE.toString();
+ private TransporterServer server = null;
+ private MulticastDetector detector;
+
+ public void start() throws Exception
+ {
+ Thread thread = new Thread( this );
+ thread.run();
+ server = TransporterServer.createTransporterServer(locatorURI, new DroolsServerImpl() );
+
+ // we need an MBeanServer to store our network registry and multicast detector services
+ MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
+
+ // multicast detector will detect new network registries that come online
+ detector = new MulticastDetector();
+ mbeanServer.registerMBean(detector, new ObjectName("remoting:type=MulticastDetector"));
+ detector.start();
+ System.out.println("MulticastDetector has been created and is listening for new NetworkRegistries to come online");
+ }
+
+ public void stop() throws Exception
+ {
+ if(server != null)
+ {
+ detector.stop();
+ server.stop();
+ }
+ }
+
+ public void exit() throws Exception {
+ stop();
+ this.server = null;
+ this.detector = null;
+ }
+
+ public void run() {
+ try
+ {
+ while ( this.server != null ) {
+ Thread.sleep( 200 );
+ }
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ finally
+ {
+ try {
+ stop();
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/HelloWorld.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/HelloWorld.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/HelloWorld.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,14 @@
+package org.drools;
+
+import java.io.Serializable;
+
+public class HelloWorld implements Message, Serializable {
+
+ public HelloWorld() {
+
+ }
+
+ public String getMessage() {
+ return "Hello World";
+ }
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/Message.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/Message.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/Message.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,5 @@
+package org.drools;
+
+public interface Message {
+ public String getMessage();
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseInfo.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseInfo.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,55 @@
+package org.drools;
+
+import java.io.Serializable;
+
+import org.drools.rule.LiteralConstraint;
+
+public class RuleBaseInfo
+ implements
+ Serializable {
+ private String id;
+ private String name;
+
+ public RuleBaseInfo() {
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return the uuid
+ */
+ public String getId() {
+ return this.id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public int hashCode() {
+ return this.id.hashCode();
+ }
+
+ public boolean equals(final Object object) {
+ if ( this == object ) {
+ return true;
+ }
+
+ if ( object == null || object.getClass() != RuleBaseInfo.class ) {
+ return false;
+ }
+
+ final RuleBaseInfo other = (RuleBaseInfo) object;
+
+ return this.id.equals( other.id ) && this.name.equals( other.name );
+ }
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseManager.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseManager.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/RuleBaseManager.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,49 @@
+package org.drools;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.drools.common.InternalRuleBase;
+
+public class RuleBaseManager {
+ private Map ruleBases = new LinkedHashMap();
+ private Map info = new LinkedHashMap();
+
+ public RuleBaseManager() {
+
+ }
+
+ public boolean registerRuleBase(RuleBase ruleBase,
+ RuleBaseInfo info) {
+
+ InternalRuleBase internalRuleBase = ( InternalRuleBase ) ruleBase;
+ if ( internalRuleBase.getId().equals( "default" ) ) {
+ // We cannot register a RuleBase that has been created without a UUID
+ return false;
+ }
+ info.setId( internalRuleBase.getId() );
+ this.ruleBases.put( internalRuleBase.getId(), ruleBase );
+ this.info.put( internalRuleBase.getId(), info );
+ return true;
+ }
+
+ public boolean deregisterRuleBase(String id) {
+ InternalRuleBase ruleBase = ( InternalRuleBase ) this.ruleBases.remove( id );
+ if ( ruleBase != null ) {
+ this.info.remove( id );
+ }
+
+ return ( ruleBase != null );
+ }
+
+ public boolean isRegistered(String id) {
+ InternalRuleBase ruleBase = ( InternalRuleBase ) this.ruleBases.get( id );
+ return this.ruleBases.containsKey( ruleBase.getId() );
+ }
+
+ public RuleBaseInfo[] listRuleBases() {
+ return ( RuleBaseInfo[] ) info.values().toArray( new RuleBaseInfo[ info.size() ] );
+ }
+
+}
Added: labs/jbossrules/trunk/drools-server/src/main/java/org/drools/WorkingMemoryManager.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/main/java/org/drools/WorkingMemoryManager.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/main/java/org/drools/WorkingMemoryManager.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,5 @@
+package org.drools;
+
+public class WorkingMemoryManager {
+
+}
Added: labs/jbossrules/trunk/drools-server/src/test/java/org/drools/DroolsClientServerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-server/src/test/java/org/drools/DroolsClientServerTest.java 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/drools-server/src/test/java/org/drools/DroolsClientServerTest.java 2006-07-15 12:46:22 UTC (rev 5110)
@@ -0,0 +1,56 @@
+package org.drools;
+
+import org.drools.common.InternalRuleBase;
+
+import junit.framework.TestCase;
+
+public class DroolsClientServerTest extends TestCase {
+ private DroolsClient client;
+ private DroolsService service;
+
+ protected void setUp() throws Exception {
+ this.service = new DroolsService();
+ this.service.start();
+
+ client = new DroolsClient();
+ this.client.start();
+ Thread.sleep( 1000 );
+ }
+
+ public void test1() throws Exception {
+ DroolsServer server = client.connect();
+
+ InternalRuleBase ruleBase1 = ( InternalRuleBase ) RuleBaseFactory.newRuleBase();
+ RuleBaseInfo info1 = new RuleBaseInfo();
+ info1.setName( "test 1" );
+ server.registerRuleBase( ruleBase1, info1 );
+
+ InternalRuleBase ruleBase2 = ( InternalRuleBase ) RuleBaseFactory.newRuleBase();
+ RuleBaseInfo info2 = new RuleBaseInfo();
+ info2.setName( "test 2" );
+ server.registerRuleBase( ruleBase2, info2 );
+
+ RuleBaseInfo[] infos = server.listRuleBases();
+
+ assertEquals( 2, infos.length );
+
+ assertNotSame( info1, infos[0] );
+ assertNotSame( info2, infos[1] );
+ assertNotSame( infos[1], infos[0] );
+
+ info1 = infos[0];
+ assertEquals(info1.getId(), ruleBase1.getId());
+ assertEquals(info1.getName(), "test 1");
+
+ info2 = infos[1];
+ assertEquals(info2.getId(), ruleBase2.getId());
+ assertEquals(info2.getName(), "test 2");
+
+ client.disconnect( server );
+ }
+
+ protected void tearDown() throws Exception {
+ this.client.stop();
+ this.service.exit();
+ }
+}
Modified: labs/jbossrules/trunk/pom.xml
===================================================================
--- labs/jbossrules/trunk/pom.xml 2006-07-15 10:27:37 UTC (rev 5109)
+++ labs/jbossrules/trunk/pom.xml 2006-07-15 12:46:22 UTC (rev 5110)
@@ -190,35 +190,7 @@
</reporting>
<build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.0-beta-1</version>
- <configuration>
- <descriptor>bin.xml</descriptor>
- <finalName>final_name</finalName>
- <outputDirectory>output/directory</outputDirectory>
- <workDirectory>target/assembly/work</workDirectory>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>dependency-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>../drools-ide/lib</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
+ <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
@@ -249,6 +221,7 @@
<modules>
<module>drools-core</module>
<module>drools-compiler</module>
+ <module>drools-server</module>
<module>drools-jsr94</module>
<module>drools-decisiontables</module>
</modules>
More information about the jboss-svn-commits
mailing list