[jboss-svn-commits] JBL Code SVN: r33420 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid-api/src/main/java/org/drools/grid and 10 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 9 13:27:38 EDT 2010


Author: salaboy21
Date: 2010-06-09 13:27:37 -0400 (Wed, 09 Jun 2010)
New Revision: 33420

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/task/
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/task/MinaTaskEnvironmentProvider.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/pom.xml
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml
Log:
Adding support for grid task inside the APIs and Grid Services

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/pom.xml	2010-06-09 16:59:37 UTC (rev 33419)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/pom.xml	2010-06-09 17:27:37 UTC (rev 33420)
@@ -46,6 +46,12 @@
             <artifactId>drools-compiler</artifactId>
             <type>jar</type>
         </dependency>
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-grid-task</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+            <type>jar</type>
+        </dependency>
     </dependencies>
       
 

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java	2010-06-09 16:59:37 UTC (rev 33419)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnection.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -19,7 +19,10 @@
 import java.util.List;
 import org.drools.grid.strategies.NodeSelectionStrategy;
 import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
+import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
+import org.drools.grid.task.HumanTaskService;
 
+
 /**
  *
  * @author salaboy
@@ -39,4 +42,10 @@
     public ExecutionNode getExecutionNode();
 
     public DirectoryNodeService getDirectoryNode(DirectoryServiceSelectionStrategy directorySelectionStrategy);
+
+    public HumanTaskService getTaskService(HumanTaskServiceSelectionStrategy humanTaskSelectionStrategy);
+
+    public HumanTaskService getTaskService();
+
+
 }

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/strategies/HumanTaskServiceSelectionStrategy.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -0,0 +1,29 @@
+/*
+ *  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.grid.strategies;
+
+import org.drools.grid.task.HumanTaskService;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface HumanTaskServiceSelectionStrategy {
+    public HumanTaskService getbestHumanTaskService();
+   
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java	2010-06-09 16:59:37 UTC (rev 33419)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-local/src/main/java/org/drools/grid/local/LocalConnection.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -27,7 +27,9 @@
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
+import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
 import org.drools.grid.strategies.NodeSelectionStrategy;
+import org.drools.grid.task.HumanTaskService;
 
 /**
  *
@@ -82,4 +84,12 @@
     public ExecutionNode getExecutionNode() {
         return getExecutionNode(null);
     }
+
+    public HumanTaskService getTaskService(HumanTaskServiceSelectionStrategy humanTaskSelectionStrategy) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public HumanTaskService getTaskService() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java	2010-06-09 16:59:37 UTC (rev 33419)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/RemoteConnection.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -29,10 +29,13 @@
 import org.drools.grid.GenericConnection;
 import org.drools.grid.GenericNodeConnector;
 import org.drools.grid.strategies.DirectoryServiceSelectionStrategy;
+import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
 import org.drools.grid.strategies.NodeSelectionStrategy;
 
 import org.drools.grid.strategies.StaticIncrementalSelectionStrategy;
+import org.drools.grid.task.HumanTaskService;
 
+
 /**
  *
  * @author salaboy
@@ -44,9 +47,12 @@
     //Cached Directories
     private List<DirectoryNodeService> directories;
 
+    private List<HumanTaskService> taskServices;
+
     public RemoteConnection() {
         this.nodeConnectors = new ArrayList<GenericNodeConnector>();
         this.directories = new ArrayList<DirectoryNodeService>();
+        this.taskServices = new ArrayList<HumanTaskService>();
     }
 
     public void addNodeConnector(GenericNodeConnector service) {
@@ -127,4 +133,12 @@
     public ExecutionNode getExecutionNode() {
         return getExecutionNode(null);
     }
+
+    public HumanTaskService getTaskService(HumanTaskServiceSelectionStrategy humanTaskSelectionStrategy) {
+        return humanTaskSelectionStrategy.getbestHumanTaskService();
+    }
+
+    public HumanTaskService getTaskService() {
+       return getTaskService(null);
+    }
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java	2010-06-09 16:59:37 UTC (rev 33419)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-mina/src/test/java/org/drools/grid/RemoteExecutionNodeTest.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -52,12 +52,12 @@
 
     @Before
     public void configureNode() throws IOException {
-        System.out.println("Starting the Configuration!");
-        connection = new RemoteConnection();
 
+        //Starting the server
+        
+
         StaticIncrementalSelectionStrategy.counter = 0;
-        SocketAddress address = new InetSocketAddress( "127.0.0.1",
-                                                       9123 );
+        SocketAddress address = new InetSocketAddress( "127.0.0.1", 9123 );
 
         NodeData nodeData = new NodeData();
         // setup Server
@@ -69,6 +69,10 @@
                                         address );
         this.server.start();
         System.out.println("Server Started!");
+
+
+        //Client configuration
+        connection = new RemoteConnection();
         connection.addDirectoryNode(new DirectoryNodeLocalImpl());
 
         // setup Client

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml	2010-06-09 16:59:37 UTC (rev 33419)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/pom.xml	2010-06-09 17:27:37 UTC (rev 33420)
@@ -22,28 +22,39 @@
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-grid-api</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
             <type>jar</type>
         </dependency>
 
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-grid-local</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
             <type>jar</type>
         </dependency>
 
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-grid-remote-api</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
             <type>jar</type>
         </dependency>
 
         <dependency>
             <groupId>org.drools</groupId>
             <artifactId>drools-grid-remote-mina</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
             <type>jar</type>
         </dependency>
 
         <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-grid-task</artifactId>
+            <version>5.1.0.SNAPSHOT</version>
+            <type>jar</type>
+        </dependency>
+
+        <dependency>
             <groupId>org.apache.mina</groupId>
             <artifactId>mina-core</artifactId>
             <version>2.0.0-M6</version>

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -0,0 +1,25 @@
+package org.drools.grid.services;
+
+import org.drools.grid.services.strategies.ReturnFirstHumanTaskServiceSelectionStrategy;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.task.HumanTaskService;
+
+/**
+ * @author salaboy
+ */
+public class TaskServerInstance extends GridResource{
+
+    public TaskServerInstance(String name, GenericProvider provider) {
+        super(name, provider);
+    }
+
+    public HumanTaskService getTaskClient() {
+        GenericConnection connection = getConnector().getConnection();
+        return connection.getTaskService(new ReturnFirstHumanTaskServiceSelectionStrategy(1, getConnector()));
+    }
+
+    
+
+
+
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/task/MinaTaskEnvironmentProvider.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/task/MinaTaskEnvironmentProvider.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/remote/task/MinaTaskEnvironmentProvider.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -0,0 +1,68 @@
+package org.drools.grid.services.remote.task;
+
+
+
+import org.drools.grid.services.remote.*;
+import org.drools.SystemEventListenerFactory;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.remote.mina.MinaNodeConnector;
+import org.drools.grid.services.ExecutionEnvironment;
+import org.drools.grid.services.GenericProvider;
+import org.drools.grid.services.GridResource;
+import org.drools.grid.services.TaskServerInstance;
+
+/**
+ * @author salaboy
+ */
+public class MinaTaskEnvironmentProvider extends GenericProvider {
+
+    private transient GenericNodeConnector connector;
+    private String providerName;
+    private String providerAddress;
+    private int providerPort;
+
+    public MinaTaskEnvironmentProvider(String providerName, String providerAddress, int providerPort) {
+        this.providerName = providerName;
+        this.providerAddress = providerAddress;
+        this.providerPort = providerPort;
+        initializeConnector();
+    }
+
+    
+
+   
+    private void initializeConnector(){
+
+        connector = new MinaNodeConnector(providerName,providerAddress, providerPort,
+                                    SystemEventListenerFactory.getSystemEventListener());
+    }
+
+    
+    @Override
+    public GridResource getGridResource(String name) {
+        return new TaskServerInstance(name, this);
+    }
+
+    @Override
+    public GenericNodeConnector getNodeConnector() {
+        return this.connector;
+    }
+
+    public String getProviderAddress() {
+        return providerAddress;
+    }
+
+    public String getProviderName() {
+        return providerName;
+    }
+
+    public int getProviderPort() {
+        return providerPort;
+    }
+
+    @Override
+    public String getId() {
+        return "MinaTaskProvider:"+providerName+":"+providerAddress+":"+providerPort;
+    }
+
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -0,0 +1,44 @@
+/*
+ *  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.grid.services.strategies;
+
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.strategies.HumanTaskServiceSelectionStrategy;
+import org.drools.grid.task.HumanTaskService;
+import org.drools.grid.task.HumanTaskServiceImpl;
+
+/**
+ *
+ * @author salaboy
+ */
+public class ReturnFirstHumanTaskServiceSelectionStrategy implements HumanTaskServiceSelectionStrategy{
+    private final int sessionId;
+    private final GenericNodeConnector connector;
+
+
+    public ReturnFirstHumanTaskServiceSelectionStrategy(int sessionId, GenericNodeConnector connector) {
+        this.sessionId = sessionId;
+        this.connector = connector;
+
+    }
+
+    public HumanTaskService getbestHumanTaskService(){
+        return new HumanTaskServiceImpl(connector, 1);
+    }
+
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterTaskTest.java	2010-06-09 17:27:37 UTC (rev 33420)
@@ -0,0 +1,121 @@
+/*
+ *  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.services;
+
+import java.rmi.RemoteException;
+import org.drools.grid.services.local.LocalDirectoryProvider;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.services.DirectoryInstance;
+import org.drools.grid.services.GenericProvider;
+import org.drools.grid.services.GridTopology;
+import org.drools.grid.services.TaskServerInstance;
+import org.drools.grid.services.local.LocalEnvironmentProvider;
+import org.drools.grid.services.remote.task.MinaTaskEnvironmentProvider;
+import org.drools.grid.services.strategies.DirectoryInstanceByPrioritySelectionStrategy;
+import org.drools.grid.task.HumanTaskService;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ *
+ * @author salaboy
+ */
+public class RegisterTaskTest {
+
+    public RegisterTaskTest() {
+    }
+
+    @BeforeClass
+    public static void setUpClass() throws Exception {
+    }
+
+    @AfterClass
+    public static void tearDownClass() throws Exception {
+    }
+
+    @Before
+    public void setUp() {
+    }
+
+    @After
+    public void tearDown() {
+    }
+
+    
+     @Test
+     public void MinaTaskTest() throws RemoteException {
+        GridTopology grid = new GridTopology("MyBusinessUnit");
+        
+        GenericProvider remoteTaskProvider = new MinaTaskEnvironmentProvider("MyMinaTask","127.0.0.1", 9213 );
+
+        grid.registerGridResource("MyMinaTask", remoteTaskProvider);
+        
+        TaskServerInstance taskServer = grid.getGridResource("MyMinaTask", TaskServerInstance.class);
+        
+        Assert.assertNotNull(taskServer);
+
+        HumanTaskService client = taskServer.getTaskClient();
+        Assert.assertNotNull(client);
+        
+        
+        
+
+     }
+
+     @Test
+     public void multiDirectoryLocalTest() throws RemoteException {
+        GridTopology grid = new GridTopology("MyBusinessUnit");
+        GenericProvider localDirProvider = new LocalDirectoryProvider();
+        GenericProvider localDirProvider2 = new LocalDirectoryProvider();
+        GenericProvider localEnvProvider = new LocalEnvironmentProvider();
+        GenericProvider localEnvProvider2 = new LocalEnvironmentProvider();
+
+        grid.registerGridResource("MyLocalDir", localDirProvider);
+        grid.registerGridResource("MyLocalDir2", localDirProvider2);
+        grid.registerGridResource("MyLocalEnv", localEnvProvider);
+        grid.registerGridResource("MyLocalEnv2", localEnvProvider2);
+
+
+
+        //DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
+        DirectoryInstance directory = grid.getGridResource("MyLocalDir", DirectoryInstance.class);
+        Assert.assertNotNull(directory);
+
+        DirectoryNodeService dir = directory.getDirectoryService();
+        Assert.assertNotNull(dir);
+        
+        Assert.assertEquals(3, dir.getDirectoryMap().size());
+
+        DirectoryInstance directory2 = grid.getGridResource("MyLocalDir2", DirectoryInstance.class);
+        Assert.assertNotNull(directory2);
+
+        DirectoryNodeService dir2 = directory2.getDirectoryService();
+        Assert.assertNotNull(dir2);
+
+        Assert.assertEquals(2, dir2.getDirectoryMap().size());
+
+
+
+     }
+     
+
+}
\ No newline at end of file



More information about the jboss-svn-commits mailing list