[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