[jboss-svn-commits] JBL Code SVN: r33739 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid: drools-grid-api/src/main/java/org/drools/grid/internal/commands and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jul 4 20:32:26 EDT 2010
Author: salaboy21
Date: 2010-07-04 20:32:25 -0400 (Sun, 04 Jul 2010)
New Revision: 33739
Added:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceSelectionStrategy.java
Modified:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.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-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java
Log:
adding unregister methods to Grid Topology and Directory Service
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeLocalImpl.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -117,6 +117,10 @@
return ConnectorType.LOCAL;
}
+ public void unregister(String executorId) throws ConnectorException, RemoteException {
+ directoryMap.remove(executorId);
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/DirectoryNodeService.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -19,6 +19,7 @@
public interface DirectoryNodeService extends GenericDirectoryConnector {
public void register(String executorId, String resourceId) throws ConnectorException, RemoteException;
+ public void unregister(String executorId) throws ConnectorException, RemoteException;
public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException;
public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException;
public String lookupId(String resourceId) throws ConnectorException, RemoteException;
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericHumanTaskConnector.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -16,7 +16,6 @@
*/
package org.drools.grid;
-import java.rmi.RemoteException;
import org.drools.grid.internal.GenericIoWriter;
import org.drools.grid.internal.Message;
@@ -38,6 +37,6 @@
Message write(Message msg) throws ConnectorException;
- public ConnectorType getConnectorType() throws ConnectorException, RemoteException ;
+ public ConnectorType getConnectorType();
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-api/src/main/java/org/drools/grid/internal/commands/SimpleCommandName.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -78,6 +78,7 @@
RegisterClient,
RegisterExecutor,
+ UnRegisterExecutor,
RequestDirectoryMap,
ResponseDirectoryMap,
RequestLookupSessionId,
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -164,5 +164,10 @@
return ConnectorType.DISTRIBUTED;
}
+ @Override
+ public void unregister(String executorId) throws ConnectorException, RemoteException {
+ directoryMap.remove(executorId);
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -161,4 +161,13 @@
return ConnectorType.REMOTE;
}
+ public void unregister(String executorId) throws ConnectorException, RemoteException {
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(executorId);
+ SimpleCommand cmd = new SimpleCommand(connector.counter.getAndIncrement(), SimpleCommandName.UnRegisterExecutor, args);
+ Message msg = new Message(connector.getSessionId(), connector.counter.incrementAndGet(), false, cmd);
+ BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
+ write(msg, handler);
+ }
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryServerMessageHandlerImpl.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -56,6 +56,22 @@
break;
}
+
+ case UnRegisterExecutor: {
+ systemEventListener.debug("Command receieved on server was operation of type: UnRegisterExecutor");
+ String executorId = (String) cmd.getArguments().get(0);
+
+ directory.unregister(executorId);
+ System.out.println("UnRegistered in Remote Directory => ExecutorId "+executorId);
+
+ SimpleCommand resultsCmnd = new SimpleCommand(cmd.getId(), SimpleCommandName.OperationResponse, null);
+ session.write(new Message( msg.getSessionId(),
+ msg.getResponseId(),
+ msg.isAsync(),
+ resultsCmnd ), null);
+
+ break;
+ }
case RequestDirectoryMap: {
Map<String, String> directoryMap = directory.getDirectoryMap();
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -20,6 +20,8 @@
import org.drools.grid.services.strategies.DirectoryInstanceSelectionStrategy;
import org.drools.grid.services.strategies.ExecutionEnvByPrioritySelectionStrategy;
import org.drools.grid.services.strategies.ExecutionEnvironmentSelectionStrategy;
+import org.drools.grid.services.strategies.TaskServerInstanceByPrioritySelectionStrategy;
+import org.drools.grid.services.strategies.TaskServerInstanceSelectionStrategy;
/**
* @author salaboy
@@ -32,18 +34,22 @@
private Map<String, TaskServerInstance> taskServerInstance = new HashMap<String, TaskServerInstance>();
private final ExecutionEnvironmentSelectionStrategy DEFAULT_EXECTUTION_STRATEGY = new ExecutionEnvByPrioritySelectionStrategy();
private final DirectoryInstanceSelectionStrategy DEFAULT_DIRECTORY_STRATEGY = new DirectoryInstanceByPrioritySelectionStrategy();
+ private final TaskServerInstanceSelectionStrategy DEFAULT_TASK_STRATEGY = new TaskServerInstanceByPrioritySelectionStrategy();
+
-
- private Map<String, GenericConnection> connections = new HashMap<String, GenericConnection>();
-
public GridTopology(String topologyName) {
this.topologyName = topologyName;
}
+ public String getTopologyName() {
+ return topologyName;
+ }
+
+ //Execution Environments Methods
public void registerExecutionEnvironment(String name, GenericProvider provider) {
//Create the executionEnvironment using the provider
-
+
ExecutionEnvironment environment = ExecutionEnvironmentFactory.newExecutionEnvironment(name, provider);
//Get the connector
GenericNodeConnector connector = environment.getConnector();
@@ -59,18 +65,38 @@
for (DirectoryInstance d : directories.values()) {
connection.addDirectoryNode(d.getConnector());
}
-
- //Adding the connection to the Topology's list of connections
- connections.put(name, connection);
//Adding the env to the local cache
executionEnvironments.put(name, environment);
//Register all the Execution Environments into the current directories
- registerGridResourceInCurrentDirectories(name, provider.getId());
+ registerResourceInCurrentDirectories(name, provider.getId());
}
+ public void unregisterExecutionEnvironment(String name) {
+ //Remove Execution Environment
+ executionEnvironments.remove(name);
+ //UnRegister EE from current Directories
+ unregisterResourceInCurrentDirectories(name);
+
+
+ }
+
+ public ExecutionEnvironment getExecutionEnvironment(String name) {
+ return executionEnvironments.get(name);
+ }
+
+ public ExecutionEnvironment getBestExecutionEnvironment(ExecutionEnvironmentSelectionStrategy strategy) {
+ System.out.println("Current Exec used in the strategy = " + executionEnvironments);
+ return strategy.getBestExecutionEnvironment(executionEnvironments);
+ }
+
+ public ExecutionEnvironment getExecutionEnvironment() {
+ return DEFAULT_EXECTUTION_STRATEGY.getBestExecutionEnvironment(executionEnvironments);
+ }
+
+ // DirectoryInstances Methods
public void registerDirectoryInstance(String name, GenericProvider provider) {
-
+
DirectoryInstance directory = DirectoryInstanceFactory.newDirectoryInstance(name, provider);
GenericDirectoryConnector connector = directory.getConnector();
@@ -86,68 +112,74 @@
connection.addDirectoryNode(d.getConnector());
}
- connections.put(name, connection);
+
directories.put(name, directory);
- registerGridResourceInCurrentDirectories(name, provider.getId());
+ registerResourceInCurrentDirectories(name, provider.getId());
}
+ public DirectoryInstance getBestDirectoryInstance(DirectoryInstanceSelectionStrategy strategy) {
+ return (DirectoryInstance) strategy.getBestDirectoryInstance(directories);
+ }
+
+ public DirectoryInstance getBestDirectoryInstance() {
+ return DEFAULT_DIRECTORY_STRATEGY.getBestDirectoryInstance(directories);
+ }
+
+ public DirectoryInstance getDirectoryInstance(String name) {
+ return directories.get(name);
+ }
+
+ public void unregisterDirectoryInstance(String name) {
+ //Remove Directory Instance
+ directories.remove(name);
+ //UnRegister Directory from current Directories
+ unregisterResourceInCurrentDirectories(name);
+
+
+ }
+
+
+ // Task Server Instance Methods
+
public void registerTaskServerInstance(String name, GenericProvider provider) {
-
+
TaskServerInstance taskServer = TaskServerInstanceFactory.newTaskServerInstance(name, provider);
GenericHumanTaskConnector connector = taskServer.getConnector();
GenericConnection connection = connector.getConnection();
connection.addHumanTaskNode(connector);
- connections.put(name, connection);
+
taskServerInstance.put(name, taskServer);
- registerGridResourceInCurrentDirectories(name, provider.getId());
+ registerResourceInCurrentDirectories(name, provider.getId());
}
- private void registerGridResourceInCurrentDirectories(String name, String resourceId) {
- for (DirectoryInstance directory : directories.values()) {
+
+
- try {
- DirectoryNodeService directoryNode = directory.getDirectoryService();
- if (directoryNode != null) {
- try {
- directoryNode.register(name, resourceId);
- } catch (RemoteException ex) {
- Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- directory.getConnector().disconnect();
- } catch (ConnectorException e) {
- Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, e);
- }
- }
+ public TaskServerInstance getTaskServerInstance(String name) {
+ return taskServerInstance.get(name);
}
- public ExecutionEnvironment getBestExecutionEnvironment(ExecutionEnvironmentSelectionStrategy strategy) {
- System.out.println("Current Exec used in the strategy = " + executionEnvironments);
- return strategy.getBestExecutionEnvironment(executionEnvironments);
+ public TaskServerInstance getBestTaskServerInstance(TaskServerInstanceSelectionStrategy strategy) {
+ return (TaskServerInstance) strategy.getBestTaskServerInstance(taskServerInstance);
}
- public ExecutionEnvironment getExecutionEnvironment(){
- return DEFAULT_EXECTUTION_STRATEGY.getBestExecutionEnvironment(executionEnvironments);
+ public TaskServerInstance getBestTaskServerInstance() {
+ return DEFAULT_TASK_STRATEGY.getBestTaskServerInstance(taskServerInstance);
}
-
+ public void unregisterTaskServerInstance(String name) {
+ //Remove Task Server Instance
+ taskServerInstance.remove(name);
+ //UnRegister task Server instance from current Directories
+ unregisterResourceInCurrentDirectories(name);
- public String getTopologyName() {
- return topologyName;
- }
- public DirectoryInstance getBestDirectoryInstance(DirectoryInstanceSelectionStrategy strategy) {
- return (DirectoryInstance) strategy.getBestDirectoryInstance(directories);
}
- public DirectoryInstance getBestDirectoryInstance() {
- return DEFAULT_DIRECTORY_STRATEGY.getBestDirectoryInstance(directories);
- }
+
-
-
public void disconectAllClients() throws ConnectorException, RemoteException {
for (String key : executionEnvironments.keySet()) {
executionEnvironments.get(key).getConnector().disconnect();
@@ -163,15 +195,41 @@
}
}
- public ExecutionEnvironment getExecutionEnvironment(String name) {
- return executionEnvironments.get(name);
- }
+ private void registerResourceInCurrentDirectories(String name, String resourceId) {
+ for (DirectoryInstance directory : directories.values()) {
- public DirectoryInstance getDirectoryInstance(String name) {
- return directories.get(name);
+ try {
+ DirectoryNodeService directoryNode = directory.getDirectoryService();
+ if (directoryNode != null) {
+ try {
+ directoryNode.register(name, resourceId);
+ } catch (RemoteException ex) {
+ Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ directory.getConnector().disconnect();
+ } catch (ConnectorException e) {
+ Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, e);
+ }
+ }
}
- public TaskServerInstance getTaskServerInstance(String name) {
- return taskServerInstance.get(name);
+ private void unregisterResourceInCurrentDirectories(String name) {
+ for (DirectoryInstance directory : directories.values()) {
+
+ try {
+ DirectoryNodeService directoryNode = directory.getDirectoryService();
+ if (directoryNode != null) {
+ try {
+ directoryNode.unregister(name);
+ } catch (RemoteException ex) {
+ Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ directory.getConnector().disconnect();
+ } catch (ConnectorException e) {
+ Logger.getLogger(GridTopology.class.getName()).log(Level.SEVERE, null, e);
+ }
+ }
}
}
Modified: 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 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ReturnFirstHumanTaskServiceSelectionStrategy.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -19,9 +19,7 @@
import java.util.List;
import org.drools.grid.GenericHumanTaskConnector;
-import org.drools.grid.GenericNodeConnector;
import org.drools.grid.HumanTaskNodeService;
-
import org.drools.grid.strategies.HumanTaskSelectionStrategy;
import org.drools.grid.task.HumanTaskServiceImpl;
@@ -30,7 +28,7 @@
* @author salaboy
*/
public class ReturnFirstHumanTaskServiceSelectionStrategy implements HumanTaskSelectionStrategy{
- private final int sessionId;
+ private final int sessionId;
private final GenericHumanTaskConnector connector;
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -0,0 +1,89 @@
+/*
+ * 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 java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.grid.ConnectorException;
+
+import org.drools.grid.ConnectorType;
+import org.drools.grid.services.DirectoryInstance;
+import org.drools.grid.services.TaskServerInstance;
+
+
+/**
+ *
+ * @author salaboy
+ */
+public class TaskServerInstanceByPrioritySelectionStrategy implements TaskServerInstanceSelectionStrategy{
+
+ private List<TaskServerInstance> taskServers;
+
+ public TaskServerInstance getBestTaskServerInstance() {
+
+
+
+ Collections.sort(taskServers, new Comparator<TaskServerInstance>() {
+
+ private Map<ConnectorType , Integer> priorities
+ = new HashMap<ConnectorType, Integer>() {
+ {
+ put(ConnectorType.LOCAL, 1);
+ // put("RioEnvironmentProvider", 2);
+ // put("HornetQEnvironmentProvider", 3);
+ put(ConnectorType.REMOTE, 4);
+ }
+ };
+
+ public int compare(TaskServerInstance o1, TaskServerInstance o2) {
+ return priorities.get(o1.getConnector().getConnectorType()).compareTo(
+ priorities.get(o2.getConnector().getConnectorType()));
+
+ }
+ });
+
+
+
+ return taskServers.get(0);
+ }
+
+ public void setTaskServerInstances(Map<String, TaskServerInstance> taskServerInstances) {
+ List<TaskServerInstance> serverList = new ArrayList<TaskServerInstance>();
+ for(TaskServerInstance taskServer : taskServerInstances.values()){
+
+ serverList.add(taskServer);
+
+ }
+ this.taskServers = serverList;
+ }
+
+ public TaskServerInstance getBestTaskServerInstance(Map<String, TaskServerInstance> taskServerInstances) {
+ setTaskServerInstances(taskServerInstances);
+ return getBestTaskServerInstance();
+ }
+
+
+
+}
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceSelectionStrategy.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceSelectionStrategy.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -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.services.strategies;
+
+import java.util.Map;
+import org.drools.grid.services.TaskServerInstance;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface TaskServerInstanceSelectionStrategy {
+ public TaskServerInstance getBestTaskServerInstance(Map<String, TaskServerInstance> taskServerInstances);
+}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java 2010-07-04 22:01:34 UTC (rev 33738)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java 2010-07-05 00:32:25 UTC (rev 33739)
@@ -136,7 +136,7 @@
return new HumanTaskServiceImpl(this, (int) this.session.getId());
}
- public ConnectorType getConnectorType() throws ConnectorException, RemoteException {
+ public ConnectorType getConnectorType() {
return ConnectorType.REMOTE;
}
}
More information about the jboss-svn-commits
mailing list