[jboss-svn-commits] JBL Code SVN: r34605 - in labs/jbossrules/trunk/drools-grid: drools-grid-remote-api/src/main/java/org/drools/grid/remote and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Aug 9 08:12:28 EDT 2010
Author: salaboy21
Date: 2010-08-09 08:12:27 -0400 (Mon, 09 Aug 2010)
New Revision: 34605
Added:
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceRemoteClient.java
Removed:
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java
Modified:
labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaConnectionHumanTask.java
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
Log:
JBRULES-2618: Drools Grid Services - Improve and clean tests
- cleaning up the APIs and improving the tests
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -70,8 +70,7 @@
NodeConnectionType type;
try {
type = connector.getNodeConnectionType();
- connector.connect();
-
+
type.setConnector(connector);
type.setConnection(this);
@@ -101,8 +100,6 @@
try {
type = connector.getNodeConnectionType();
- connector.connect();
-
type.setConnector(connector);
type.setConnection(this);
@@ -129,9 +126,7 @@
HumanTaskNode humanTaskNode = null;
try {
type = connector.getNodeConnectionType();
-
connector.connect();
-
type.setConnector(connector);
type.setConnection(this);
@@ -156,8 +151,6 @@
try {
type = connector.getNodeConnectionType();
- connector.connect();
-
type.setConnector(connector);
type.setConnection(this);
executionNodes.add(NodeFactory.newExecutionNode(type));
@@ -175,7 +168,6 @@
try {
type = connector.getNodeConnectionType();
- connector.connect();
type.setConnector(connector);
type.setConnection(this);
directoryNodes.add(NodeFactory.newDirectoryNode(type));
@@ -187,14 +179,28 @@
}
- public List<HumanTaskNode> getHumanTaskNodes() {
- throw new UnsupportedOperationException("not Implemented yet!");
+ public List<HumanTaskNode> getHumanTaskNodes() throws ConnectorException {
+ List<HumanTaskNode> humanTaskNodes = new ArrayList<HumanTaskNode>();
+ for (GenericNodeConnector connector : humanTaskNodeConnectors) {
+ NodeConnectionType type;
+ try {
+ type = connector.getNodeConnectionType();
+
+ type.setConnector(connector);
+ type.setConnection(this);
+ humanTaskNodes.add(NodeFactory.newHumanTaskNode(type));
+ } catch (RemoteException ex) {
+ Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ return humanTaskNodes;
}
public void dispose() throws ConnectorException {
for (GenericNodeConnector connector : executionNodeConnectors) {
try {
connector.disconnect();
+
} catch (RemoteException ex) {
Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
}
@@ -202,6 +208,7 @@
for (GenericNodeConnector connector : directoryNodeConnectors) {
try {
connector.disconnect();
+
} catch (RemoteException ex) {
Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
}
@@ -209,6 +216,7 @@
for (GenericNodeConnector connector : humanTaskNodeConnectors) {
try {
connector.disconnect();
+
} catch (RemoteException ex) {
Logger.getLogger(GridConnection.class.getName()).log(Level.SEVERE, null, ex);
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/DirectoryLookupProviderRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -43,12 +43,12 @@
*/
public class DirectoryLookupProviderRemoteClient implements DirectoryLookupFactoryService {
- private GenericNodeConnector client;
+ private GenericNodeConnector connector;
private GenericConnection connection;
private MessageSession messageSession;
- public DirectoryLookupProviderRemoteClient(GenericNodeConnector client, GenericConnection connection) {
- this.client = client;
+ public DirectoryLookupProviderRemoteClient(GenericNodeConnector connector, GenericConnection connection) {
+ this.connector = connector;
this.messageSession = new MessageSession();
this.connection = connection;
}
@@ -68,7 +68,7 @@
DirectoryNodeService directoryNode = connection.getDirectoryNode().get(DirectoryNodeService.class);
try {
- directoryNode.register(identifier, client.getId());
+ directoryNode.register(identifier, connector.getId());
} catch (RemoteException ex) {
Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
}
@@ -84,10 +84,12 @@
try {
- Object object = client.write(msg).getPayload();
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
if (!(object instanceof FinishedCommand)) {
throw new RuntimeException("Response was not correctly ended");
}
+ connector.disconnect();
} catch (Exception e) {
throw new RuntimeException("Unable to execute message", e);
}
@@ -118,17 +120,14 @@
Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
}
- client = GenericConnectorFactory.newConnector(connectorString);
- try {
- client.connect();
- } catch (RemoteException ex) {
- Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
- }
+ connector = GenericConnectorFactory.newConnector(connectorString);
+
//I need to add the new Connector to the connection to be able to clean it up/disconect it!
- connection.addExecutionNode(client);
+ connection.addExecutionNode(connector);
try {
- Object object = client.write(msg).getPayload();
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
if (object == null) {
throw new RuntimeException("Response was not correctly received");
}
@@ -138,13 +137,13 @@
CommandExecutor executor = null;
switch (Integer.parseInt(type)) {
case 0: {
- executor = new StatefulKnowledgeSessionRemoteClient(instanceId, client, messageSession);
+ executor = new StatefulKnowledgeSessionRemoteClient(instanceId, connector, messageSession);
break;
}
default: {
}
}
-
+ connector.disconnect();
return executor;
} catch (Exception e) {
throw new RuntimeException("Unable to execute message", e);
@@ -201,18 +200,16 @@
try {
- Object object = client.write(msg).getPayload();
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
if (!(object instanceof FinishedCommand)) {
throw new RuntimeException("Response was not correctly ended");
}
+ connector.disconnect();
} catch (Exception e) {
throw new RuntimeException("Unable to execute message", e);
}
- try {
- directoryNode.dispose();
- } catch (RemoteException ex) {
- Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
- }
+
} catch (ConnectorException ex) {
Logger.getLogger(DirectoryLookupProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -25,10 +25,10 @@
implements
KnowledgeBaseFactoryService {
- private GenericNodeConnector client;
+ private GenericNodeConnector connector;
private MessageSession messageSession;
- public KnowledgeBaseProviderRemoteClient(GenericNodeConnector client) {
- this.client = client;
+ public KnowledgeBaseProviderRemoteClient(GenericNodeConnector connector) {
+ this.connector = connector;
this.messageSession = new MessageSession();
}
@@ -53,19 +53,20 @@
localId,
new NewKnowledgeBaseCommand( conf ) ) );
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
}
-
+ connector.disconnect();
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
e );
}
return new KnowledgeBaseRemoteClient( localId,
- client, messageSession );
+ connector, messageSession );
}
@@ -103,27 +104,28 @@
registerKBaseInDirectories(kbaseId);
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
}
-
+ connector.disconnect();
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
e );
}
return new KnowledgeBaseRemoteClient( localId,
- client, messageSession );
+ connector, messageSession );
}
private void registerKBaseInDirectories(String kbaseId) {
try {
- DirectoryNodeService directory = client.getConnection().getDirectoryNode().get(DirectoryNodeService.class);
- directory.registerKBase(kbaseId, client.getId());
- directory.dispose();
+ DirectoryNodeService directory = connector.getConnection().getDirectoryNode().get(DirectoryNodeService.class);
+ directory.registerKBase(kbaseId, connector.getId());
+
} catch (RemoteException ex) {
Logger.getLogger(KnowledgeBaseProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
} catch (ConnectorException ex) {
@@ -145,19 +147,20 @@
registerKBaseInDirectories(kbaseId);
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
}
-
+ connector.disconnect();
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
e );
}
return new KnowledgeBaseRemoteClient( localId,
- client, messageSession );
+ connector, messageSession );
}
public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration(Properties properties, ClassLoader... classLoader) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -25,18 +25,17 @@
import org.drools.grid.internal.MessageSession;
public class KnowledgeBaseRemoteClient
- implements
- KnowledgeBase {
+ implements
+ KnowledgeBase {
+ private GenericNodeConnector connector;
+ private MessageSession messageSession;
+ private String instanceId;
- private GenericNodeConnector client;
- private MessageSession messageSession;
- private String instanceId;
-
public KnowledgeBaseRemoteClient(String instanceId,
- GenericNodeConnector client, MessageSession messageSession) {
+ GenericNodeConnector connector, MessageSession messageSession) {
this.instanceId = instanceId;
- this.client = client;
+ this.connector = connector;
this.messageSession = messageSession;
}
@@ -44,30 +43,31 @@
String kresultsId = "kresults_" + messageSession.getSessionId();
String kuilderInstanceId = ((CollectionClient<KnowledgePackage>) kpackages).getParentInstanceId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
- kuilderInstanceId,
- instanceId,
- null,
- kresultsId ) );
-
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new KnowledgeBaseAddKnowledgePackagesCommand(),
+ kuilderInstanceId,
+ instanceId,
+ null,
+ kresultsId));
+
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
- if ( !(object instanceof FinishedCommand) ) {
- throw new RuntimeException( "Response was not correctly ended" );
+ if (!(object instanceof FinishedCommand)) {
+ throw new RuntimeException("Response was not correctly ended");
}
-
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ connector.disconnect();
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
public FactType getFactType(String packageName,
- String typeName) {
+ String typeName) {
// TODO Auto-generated method stub
return null;
}
@@ -88,47 +88,48 @@
}
public Rule getRule(String packageName,
- String ruleName) {
+ String ruleName) {
// TODO Auto-generated method stub
return null;
}
public StatefulKnowledgeSession newStatefulKnowledgeSession() {
- return newStatefulKnowledgeSession( null,
- null );
+ return newStatefulKnowledgeSession(null,
+ null);
}
public StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeSessionConfiguration conf,
- Environment environment) {
+ Environment environment) {
String kresultsId = "kresults_" + messageSession.getSessionId();
String localId = UUID.randomUUID().toString();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new SetVariableCommand( "__TEMP__",
- localId,
- new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( conf ),
- null,
- instanceId,
- null,
- kresultsId ) ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new SetVariableCommand("__TEMP__",
+ localId,
+ new KnowledgeContextResolveFromContextCommand(new NewStatefulKnowledgeSessionCommand(conf),
+ null,
+ instanceId,
+ null,
+ kresultsId)));
try {
- Object object = client.write( msg ).getPayload();
-
- if ( !(object instanceof FinishedCommand) ) {
- throw new RuntimeException( "Response was not correctly ended" );
- }
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ if (!(object instanceof FinishedCommand)) {
+ throw new RuntimeException("Response was not correctly ended");
+ }
+ connector.disconnect();
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
- return new StatefulKnowledgeSessionRemoteClient( localId,
- client, messageSession );
+ return new StatefulKnowledgeSessionRemoteClient(localId,
+ connector, messageSession);
}
public StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeSessionConfiguration conf) {
@@ -143,23 +144,19 @@
public void removeKnowledgePackage(String packageName) {
// TODO Auto-generated method stub
-
}
public void removeProcess(String processId) {
// TODO Auto-generated method stub
-
}
public void removeRule(String packageName,
- String ruleName) {
+ String ruleName) {
// TODO Auto-generated method stub
-
}
public void addEventListener(KnowledgeBaseEventListener listener) {
// TODO Auto-generated method stub
-
}
public Collection<KnowledgeBaseEventListener> getKnowledgeBaseEventListeners() {
@@ -169,13 +166,12 @@
public void removeEventListener(KnowledgeBaseEventListener listener) {
// TODO Auto-generated method stub
+ }
+ public void removeFunction(String packageName, String ruleName) {
+ // TODO Auto-generated method stub
}
- public void removeFunction(String packageName, String ruleName) {
- // TODO Auto-generated method stub
- }
-
public Query getQuery(String packageName, String queryName) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -187,5 +183,4 @@
public Collection<StatefulKnowledgeSession> getStatefulKnowledgeSessions() {
throw new UnsupportedOperationException("Not supported yet.");
}
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -24,12 +24,12 @@
implements
KnowledgeBuilderFactoryService {
- private GenericNodeConnector client;
+ private GenericNodeConnector connector;
private MessageSession messageSession;
- public KnowledgeBuilderProviderRemoteClient(GenericNodeConnector client) {
+ public KnowledgeBuilderProviderRemoteClient(GenericNodeConnector connector) {
this.messageSession = new MessageSession();
- this.client = client;
+ this.connector = connector;
}
@@ -48,19 +48,20 @@
new NewKnowledgeBuilderCommand( null ) ) );
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
}
-
+ connector.disconnect();
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
e );
}
return new KnowledgeBuilderRemoteClient( localId,
- client, messageSession );
+ connector, messageSession );
}
public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -25,13 +25,13 @@
KnowledgeBuilder {
private String instanceId;
- private final GenericNodeConnector client;
+ private final GenericNodeConnector connector;
private final MessageSession messageSession;
public KnowledgeBuilderRemoteClient(String instanceId,
- GenericNodeConnector client, MessageSession messageSession) {
+ GenericNodeConnector connector, MessageSession messageSession) {
this.instanceId = instanceId;
- this.client = client;
+ this.connector = connector;
this.messageSession = messageSession;
}
@@ -57,12 +57,13 @@
null ) );
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write( msg ).getPayload();
if ( !(object instanceof FinishedCommand) ) {
throw new RuntimeException( "Response was not correctly ended" );
}
-
+ connector.disconnect();
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
e );
@@ -84,12 +85,13 @@
kresultsId ) );
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write( msg ).getPayload();
if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
}
-
+ connector.disconnect();
return (KnowledgeBuilderErrors) ((ExecutionResults) object).getValue( commandId );
} catch ( Exception e ) {
@@ -117,12 +119,13 @@
kresultsId ) );
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write( msg ).getPayload();
if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
}
-
+ connector.disconnect();
return (Boolean) ((ExecutionResults) object).getValue( commandId );
} catch ( Exception e ) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -46,22 +46,20 @@
/*
* @author: salaboy
*/
-
public class StatefulKnowledgeSessionRemoteClient
- implements
- StatefulKnowledgeSession {
+ implements
+ StatefulKnowledgeSession {
+ private GenericNodeConnector connector;
+ private MessageSession messageSession;
+ private String instanceId;
- private GenericNodeConnector client;
- private MessageSession messageSession;
- private String instanceId;
-
public StatefulKnowledgeSessionRemoteClient(String instanceId,
- GenericNodeConnector client, MessageSession messageSession) {
+ GenericNodeConnector connector, MessageSession messageSession) {
this.instanceId = instanceId;
- this.client = client;
+ this.connector = connector;
this.messageSession = messageSession;
-
+
}
public String getInstanceId() {
@@ -70,7 +68,6 @@
public void dispose() {
// TODO Auto-generated method stub
-
}
public int getId() {
@@ -82,25 +79,26 @@
String commandId = "ksession.fireAllRules" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( CommandFactory.newFireAllRules( commandId ),
- null,
- null,
- instanceId,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(CommandFactory.newFireAllRules(commandId),
+ null,
+ null,
+ instanceId,
+ kresultsId));
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
- if ( object == null ) {
- throw new RuntimeException( "Response was not correctly received" );
+ if (object == null) {
+ throw new RuntimeException("Response was not correctly received");
}
-
- return (Integer) ((ExecutionResults) object).getValue( commandId );
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ connector.disconnect();
+ return (Integer) ((ExecutionResults) object).getValue(commandId);
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
@@ -116,38 +114,37 @@
public void fireUntilHalt() {
// TODO Auto-generated method stub
-
}
public void fireUntilHalt(AgendaFilter agendaFilter) {
// TODO Auto-generated method stub
-
}
public ExecutionResults execute(Command command) {
String commandId = "ksession.execute" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new ExecuteCommand( commandId,
- command ),
- null,
- null,
- instanceId,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new ExecuteCommand(commandId,
+ command),
+ null,
+ null,
+ instanceId,
+ kresultsId));
try {
- Object object = client.write( msg ).getPayload();
- if ( object == null ) {
- throw new RuntimeException( "Response was not correctly received" );
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
+ if (object == null) {
+ throw new RuntimeException("Response was not correctly received");
}
-
- return (ExecutionResults) ((ExecutionResults) object).getValue( commandId );
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ connector.disconnect();
+ return (ExecutionResults) ((ExecutionResults) object).getValue(commandId);
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
@@ -157,30 +154,31 @@
}
public Object getGlobal(String identifier) {
- String commandId = "ksession.execute" + messageSession.getNextId();
+ String commandId = "ksession.execute" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new GetGlobalCommand( identifier ),
- null,
- null,
- instanceId,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new GetGlobalCommand(identifier),
+ null,
+ null,
+ instanceId,
+ kresultsId));
try {
- Object result = client.write( msg ).getPayload();
- if ( result == null ) {
- throw new RuntimeException( "Response was not correctly received = null" );
+ connector.connect();
+ Object result = connector.write(msg).getPayload();
+ if (result == null) {
+ throw new RuntimeException("Response was not correctly received = null");
}
+ connector.disconnect();
+ return result;
- return result;
-
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
@@ -200,47 +198,46 @@
}
public void registerExitPoint(String name,
- ExitPoint exitPoint) {
+ ExitPoint exitPoint) {
// TODO Auto-generated method stub
-
}
public void setGlobal(String identifier,
- Object object) {
+ Object object) {
String commandId = "ksession.execute" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new SetGlobalCommand( identifier,
- object ),
- null,
- null,
- instanceId,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new SetGlobalCommand(identifier,
+ object),
+ null,
+ null,
+ instanceId,
+ kresultsId));
try {
- Object result = client.write( msg ).getPayload();
- if ( result == null ) {
- throw new RuntimeException( "Response was not correctly received = null" );
+ connector.connect();
+ Object result = connector.write(msg).getPayload();
+ if (result == null) {
+ throw new RuntimeException("Response was not correctly received = null");
}
- if ( !(result instanceof FinishedCommand)) {
- throw new RuntimeException( "Response was not correctly received" );
+ if (!(result instanceof FinishedCommand)) {
+ throw new RuntimeException("Response was not correctly received");
}
+ connector.disconnect();
-
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
public void unregisterExitPoint(String name) {
// TODO Auto-generated method stub
-
}
public Agenda getAgenda() {
@@ -254,47 +251,47 @@
}
public QueryResults getQueryResults(String query,
- Object[] arguments) {
+ Object[] arguments) {
// TODO Auto-generated method stub
return null;
}
public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
- String commandId = "ksession.getWorkingMemoryEntryPoint" + messageSession.getNextId();
+ String commandId = "ksession.getWorkingMemoryEntryPoint" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new GetWorkingMemoryEntryPointRemoteCommand( name ),
- null,
- null,
- instanceId,
- name,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new GetWorkingMemoryEntryPointRemoteCommand(name),
+ null,
+ null,
+ instanceId,
+ name,
+ kresultsId));
try {
- Object object = client.write( msg ).getPayload();
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
- if ( object == null ) {
- throw new RuntimeException( "Response was not correctly received" );
+ if (object == null) {
+ throw new RuntimeException("Response was not correctly received");
}
-
- return new WorkingMemoryEntryPointRemoteClient(name, client, messageSession);
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ connector.disconnect();
+ return new WorkingMemoryEntryPointRemoteClient(name, connector, messageSession);
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
- public Collection< ? extends WorkingMemoryEntryPoint> getWorkingMemoryEntryPoints() {
+ public Collection<? extends WorkingMemoryEntryPoint> getWorkingMemoryEntryPoints() {
// TODO Auto-generated method stub
return null;
}
public void halt() {
// TODO Auto-generated method stub
-
}
public FactHandle getFactHandle(Object object) {
@@ -328,47 +325,45 @@
}
public FactHandle insert(Object object) {
- String commandId = "ksession.insert" + messageSession.getNextId();
+ String commandId = "ksession.insert" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
-
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new InsertObjectCommand(object, String.valueOf(object.hashCode()) ),
- null,
- null,
- instanceId,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new InsertObjectCommand(object, String.valueOf(object.hashCode())),
+ null,
+ null,
+ instanceId,
+ kresultsId));
+
try {
- Object result = client.write( msg ).getPayload();
- if ( object == null ) {
- throw new RuntimeException( "Response was not correctly received" );
+ connector.connect();
+ Object result = connector.write(msg).getPayload();
+ if (object == null) {
+ throw new RuntimeException("Response was not correctly received");
}
- FactHandle handle = new DisconnectedFactHandle(((ExecutionResults) result).getFactHandle( String.valueOf(object.hashCode()) ).toString()) ;
-
- return handle;
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ FactHandle handle = new DisconnectedFactHandle(((ExecutionResults) result).getFactHandle(String.valueOf(object.hashCode())).toString());
+ connector.disconnect();
+ return handle;
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
public void retract(FactHandle handle) {
// TODO Auto-generated method stub
-
}
public void update(FactHandle handle,
- Object object) {
+ Object object) {
// TODO Auto-generated method stub
-
}
public void abortProcessInstance(long id) {
// TODO Auto-generated method stub
-
}
public ProcessInstance getProcessInstance(long id) {
@@ -382,98 +377,99 @@
}
public WorkItemManager getWorkItemManager() {
- String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- true,
- new KnowledgeContextResolveFromContextCommand( new GetWorkItemManagerCommand(),
- null,
- null,
- instanceId,
- kresultsId ) );
- try {
- Object payload = client.write( msg ).getPayload();
- WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue( "workItemManager" );
- ((WorkItemManagerRemoteClient)workItemManager).setClient(client);
- ((WorkItemManagerRemoteClient)workItemManager).setMessageSession(messageSession);
- ((WorkItemManagerRemoteClient)workItemManager).setInstanceId(instanceId);
- return workItemManager;
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message", e );
- }
+ String kresultsId = "kresults_" + messageSession.getSessionId();
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ true,
+ new KnowledgeContextResolveFromContextCommand(new GetWorkItemManagerCommand(),
+ null,
+ null,
+ instanceId,
+ kresultsId));
+ try {
+ connector.connect();
+ Object payload = connector.write(msg).getPayload();
+ WorkItemManager workItemManager = (WorkItemManager) ((ExecutionResults) payload).getValue("workItemManager");
+ ((WorkItemManagerRemoteClient) workItemManager).setConnector(connector);
+ ((WorkItemManagerRemoteClient) workItemManager).setMessageSession(messageSession);
+ ((WorkItemManagerRemoteClient) workItemManager).setInstanceId(instanceId);
+ connector.disconnect();
+ return workItemManager;
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message", e);
+ }
}
-
- public void registerWorkItemHandler(String name, String workItemHandler){
-
+
+ public void registerWorkItemHandler(String name, String workItemHandler) {
+
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new RegisterRemoteWorkItemHandlerCommand(name, workItemHandler ),
- null,
- null,
- instanceId,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new RegisterRemoteWorkItemHandlerCommand(name, workItemHandler),
+ null,
+ null,
+ instanceId,
+ kresultsId));
try {
- client.write( msg );
-
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ connector.connect();
+ connector.write(msg);
+ connector.disconnect();
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
}
public void signalEvent(String type,
- Object event) {
+ Object event) {
// TODO Auto-generated method stub
-
}
public ProcessInstance startProcess(String processId) {
String commandId = "ksession.execute" + messageSession.getNextId();
String kresultsId = "kresults_" + messageSession.getSessionId();
- Message msg = new Message( messageSession.getSessionId(),
- messageSession.counter.incrementAndGet(),
- false,
- new KnowledgeContextResolveFromContextCommand( new StartProcessRemoteCommand( processId ),
- null,
- null,
- instanceId,
- kresultsId ) );
+ Message msg = new Message(messageSession.getSessionId(),
+ messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand(new StartProcessRemoteCommand(processId),
+ null,
+ null,
+ instanceId,
+ kresultsId));
try {
- Object object = client.write( msg ).getPayload();
- if ( object == null ) {
- throw new RuntimeException( "Response was not correctly received" );
+ connector.connect();
+ Object object = connector.write(msg).getPayload();
+ if (object == null) {
+ throw new RuntimeException("Response was not correctly received");
}
-
- return (ProcessInstance) ((ExecutionResults) object).getValue( processId );
- } catch ( Exception e ) {
- throw new RuntimeException( "Unable to execute message",
- e );
+ connector.disconnect();
+ return (ProcessInstance) ((ExecutionResults) object).getValue(processId);
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to execute message",
+ e);
}
-
+
}
public ProcessInstance startProcess(String processId,
- Map<String, Object> parameters) {
+ Map<String, Object> parameters) {
// TODO Auto-generated method stub
return null;
}
public void addEventListener(WorkingMemoryEventListener listener) {
// TODO Auto-generated method stub
-
}
public void addEventListener(AgendaEventListener listener) {
// TODO Auto-generated method stub
-
}
public Collection<AgendaEventListener> getAgendaEventListeners() {
@@ -488,17 +484,14 @@
public void removeEventListener(WorkingMemoryEventListener listener) {
// TODO Auto-generated method stub
-
}
public void removeEventListener(AgendaEventListener listener) {
// TODO Auto-generated method stub
-
}
public void addEventListener(ProcessEventListener listener) {
// TODO Auto-generated method stub
-
}
public Collection<ProcessEventListener> getProcessEventListeners() {
@@ -508,7 +501,6 @@
public void removeEventListener(ProcessEventListener listener) {
// TODO Auto-generated method stub
-
}
public String getEntryPointId() {
@@ -522,10 +514,9 @@
}
public void signalEvent(String type,
- Object event,
- long processInstanceId) {
+ Object event,
+ long processInstanceId) {
// TODO Auto-generated method stub
-
}
public Calendars getCalendars() {
@@ -548,7 +539,4 @@
public LiveQuery openLiveQuery(String query, Object[] arguments, ViewChangedEventListener listener) {
throw new UnsupportedOperationException("Not supported yet.");
}
-
-
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkItemManagerRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -20,7 +20,7 @@
private static final long serialVersionUID = 1L;
- private GenericNodeConnector client;
+ private GenericNodeConnector connector;
private MessageSession messageSession;
private String instanceId;
@@ -39,7 +39,9 @@
instanceId,
kresultsId ) );
try {
- client.write( msg );
+ connector.connect();
+ connector.write( msg );
+ connector.disconnect();
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message", e );
}
@@ -49,8 +51,8 @@
throw new UnsupportedOperationException("Not supported yet.");
}
- public void setClient(GenericNodeConnector client) {
- this.client = client;
+ public void setConnector(GenericNodeConnector connector) {
+ this.connector = connector;
}
public void setMessageSession(MessageSession messageSession) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-api/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -36,12 +36,12 @@
*/
public class WorkingMemoryEntryPointRemoteClient implements WorkingMemoryEntryPoint{
- private GenericNodeConnector client;
+ private GenericNodeConnector connector;
private MessageSession messageSession;
private String instanceId;
- public WorkingMemoryEntryPointRemoteClient(String instanceId, GenericNodeConnector client, MessageSession messageSession) {
- this.client = client;
+ public WorkingMemoryEntryPointRemoteClient(String instanceId, GenericNodeConnector connector, MessageSession messageSession) {
+ this.connector = connector;
this.messageSession = messageSession;
this.instanceId = instanceId;
}
@@ -62,12 +62,13 @@
kresultsId ) );
try {
- Object result = client.write( msg ).getPayload();
+ connector.connect();
+ Object result = connector.write( msg ).getPayload();
if ( object == null ) {
throw new RuntimeException( "Response was not correctly received" );
}
FactHandle handle = new DisconnectedFactHandle(((ExecutionResults) result).getFactHandle( String.valueOf(object.hashCode()) ).toString()) ;
-
+ connector.disconnect();
return handle;
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-dir-mina/src/main/java/org/drools/grid/remote/directory/DirectoryNodeRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -14,7 +14,6 @@
* limitations under the License.
* under the License.
*/
-
package org.drools.grid.remote.directory;
import java.rmi.RemoteException;
@@ -43,107 +42,105 @@
*
* @author salaboy
*/
-public class DirectoryNodeRemoteClient implements DirectoryNodeService {
+public class DirectoryNodeRemoteClient implements DirectoryNodeService {
+
private GenericNodeConnector connector;
DirectoryNodeRemoteClient(GenericNodeConnector connector) {
this.connector = connector;
}
- public void register(String executorId, String resourceId) throws ConnectorException {
+ public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
+ connector.connect();
List<Object> args = new ArrayList<Object>(2);
args.add(executorId);
args.add(resourceId);
SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RegisterExecutor, args);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
- write(msg, handler);
-
+ write(msg, null);
+ connector.disconnect();
+
}
public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException {
throw new UnsupportedOperationException("Not supported yet.");
}
- public GenericNodeConnector lookup(String resourceId) throws ConnectorException {
-
+ public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
+ connector.connect();
List<Object> args = new ArrayList<Object>(1);
args.add(resourceId);
SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestLookupSessionId, args);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
- SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
- return GenericConnectorFactory.newConnector((String)resultcmd.getArguments().get(0));
+ SimpleCommand resultcmd = (SimpleCommand) handler.getMessage().getPayload();
+ connector.disconnect();
+ return GenericConnectorFactory.newConnector((String) resultcmd.getArguments().get(0));
}
- public void registerKBase(String kbaseId, String resourceId) throws ConnectorException {
+ public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
+ connector.connect();
List<Object> args = new ArrayList<Object>(2);
args.add(kbaseId);
args.add(resourceId);
SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RegisterKBase, args);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
- write(msg, handler);
+ write(msg, null);
+ connector.disconnect();
}
- public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException {
+ public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
+ connector.connect();
List<Object> args = new ArrayList<Object>(1);
args.add(kbaseId);
SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestKBaseId, args);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
- SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
- String connectorString = (String)resultcmd.getArguments().get(0);
+ SimpleCommand resultcmd = (SimpleCommand) handler.getMessage().getPayload();
+ String connectorString = (String) resultcmd.getArguments().get(0);
GenericNodeConnector currentConnector = GenericConnectorFactory.newConnector(connectorString);
- try {
- currentConnector.connect();
- } catch (RemoteException ex) {
- Logger.getLogger(DirectoryNodeRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
- }
-
- return new KnowledgeBaseRemoteClient(kbaseId, currentConnector, new MessageSession() );
+ connector.disconnect();
+ return new KnowledgeBaseRemoteClient(kbaseId, currentConnector, new MessageSession());
}
-
-
- public Map<String, String> getExecutorsMap() throws ConnectorException {
-
+ public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
+ connector.connect();
SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestExecutorsMap, null);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
- SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
- return (Map<String,String>)resultcmd.getArguments().get(0);
+ SimpleCommand resultcmd = (SimpleCommand) handler.getMessage().getPayload();
+ connector.disconnect();
+ return (Map<String, String>) resultcmd.getArguments().get(0);
}
-
-
-
public void dispose() throws ConnectorException, RemoteException {
this.connector.disconnect();
}
- public String lookupId(String resourceId) throws ConnectorException {
+ public String lookupId(String resourceId) throws ConnectorException, RemoteException {
+ connector.connect();
List<Object> args = new ArrayList<Object>(1);
args.add(resourceId);
SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestLookupSessionId, args);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
- SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
- return (String)resultcmd.getArguments().get(0);
+ SimpleCommand resultcmd = (SimpleCommand) handler.getMessage().getPayload();
+ connector.disconnect();
+ return (String) resultcmd.getArguments().get(0);
}
- private Message write(Message msg) throws ConnectorException, RemoteException{
+ private Message write(Message msg) throws ConnectorException, RemoteException {
BlockingMessageResponseHandler responseHandler = new BlockingMessageResponseHandler();
if (responseHandler != null) {
addResponseHandler(msg.getResponseId(),
responseHandler);
}
- ((RemoteMinaDirectoryConnector)this.connector).getSession().write(msg);
+ ((RemoteMinaDirectoryConnector) this.connector).getSession().write(msg);
Message returnMessage = responseHandler.getMessage();
if (responseHandler.getError() != null) {
@@ -153,20 +150,20 @@
return returnMessage;
}
- private void write(Message msg, MessageResponseHandler responseHandler) {
+ private void write(Message msg, MessageResponseHandler responseHandler) {
if (responseHandler != null) {
addResponseHandler(msg.getResponseId(),
responseHandler);
}
-
- ((RemoteMinaDirectoryConnector)this.connector).getSession().write(msg);
-
+ ((RemoteMinaDirectoryConnector) this.connector).getSession().write(msg);
+
+
}
private void addResponseHandler(int id,
MessageResponseHandler responseHandler) {
- ((MinaIoHandler) ((RemoteMinaDirectoryConnector)this.connector).getSession().getHandler()).addResponseHandler(id,
+ ((MinaIoHandler) ((RemoteMinaDirectoryConnector) this.connector).getSession().getHandler()).addResponseHandler(id,
responseHandler);
}
@@ -175,24 +172,25 @@
return "Remote:Directory";
}
-
-
public void unregister(String executorId) throws ConnectorException, RemoteException {
+ connector.connect();
List<Object> args = new ArrayList<Object>(2);
args.add(executorId);
SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.UnRegisterExecutor, args);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
- BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
- write(msg, handler);
+ write(msg, null);
+ connector.disconnect();
}
public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
- SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestKBasesMap, null);
+ connector.connect();
+ SimpleCommand cmd = new SimpleCommand(connector.getCounter().getAndIncrement(), SimpleCommandName.RequestKBasesMap, null);
Message msg = new Message(connector.getSessionId(), connector.getCounter().incrementAndGet(), false, cmd);
BlockingMessageDirectoryMapRequestResponseHandler handler = new BlockingMessageDirectoryMapRequestResponseHandler();
write(msg, handler);
- SimpleCommand resultcmd = (SimpleCommand)handler.getMessage().getPayload();
- return (Map<String,String>)resultcmd.getArguments().get(0);
+ SimpleCommand resultcmd = (SimpleCommand) handler.getMessage().getPayload();
+ connector.disconnect();
+ return (Map<String, String>) resultcmd.getArguments().get(0);
}
public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
@@ -207,10 +205,7 @@
throw new UnsupportedOperationException("Not supported yet.");
}
-
-
public ServiceType getServiceType() throws ConnectorException, RemoteException {
return ServiceType.REMOTE;
}
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-remote-mina/src/main/java/org/drools/grid/remote/mina/RemoteMinaNodeConnector.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -2,6 +2,7 @@
import java.net.InetSocketAddress;
import java.net.SocketAddress;
+import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -62,7 +63,7 @@
try {
this.connector = new NioSocketConnector();
this.connector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
- this.connector.getFilterChain().addLast(this.name + "codec",
+ this.connector.getFilterChain().addLast(this.name + "codec"+UUID.randomUUID().toString(),
new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
ConnectFuture future1 = this.connector.connect(this.address);
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericDirectoryProvider.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -1,31 +0,0 @@
-package org.drools.grid.services;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.drools.grid.GenericNodeConnector;
-
-/**
- * @author salaboy
- */
-public abstract class GenericDirectoryProvider {
- protected Map<String, Object> parameters = new HashMap<String, Object>();
-
-
- public abstract GenericNodeConnector getDirectoryConnector();
-
-
-
- public void setParameter(String name, Object value){
- this.parameters.put(name, value);
- }
- public Object getParameter(String name){
- return this.parameters.get(name);
- }
- public Map<String, Object> getParameters(){
- return this.parameters;
- }
-
- public abstract DirectoryInstance getDirectoryInstance(String name);
-
- public abstract String getId();
-}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GenericHumanTaskProvider.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -1,31 +0,0 @@
-package org.drools.grid.services;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.drools.grid.GenericHumanTaskConnector;
-
-/**
- * @author salaboy
- */
-public abstract class GenericHumanTaskProvider {
- protected Map<String, Object> parameters = new HashMap<String, Object>();
-
-
- public abstract GenericHumanTaskConnector getHumanTaskConnector();
-
-
-
- public void setParameter(String name, Object value){
- this.parameters.put(name, value);
- }
- public Object getParameter(String name){
- return this.parameters.get(name);
- }
- public Map<String, Object> getParameters(){
- return this.parameters;
- }
-
- public abstract TaskServerInstance getTaskServerInstance(String name);
-
- public abstract String getId();
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/TaskServerInstance.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -26,31 +26,49 @@
/*
* Creates a new TaskServer Instance that will be associated to a name using the
* GenericNodeConnector provided.
+ * @param name
+ * @param connector
*/
public TaskServerInstance(String name, GenericNodeConnector connector) {
this.name = name;
this.connector = connector;
}
+ /*
+ * Get a HumanTaskNode based on the default NodeSelectionStrategy
+ */
public HumanTaskNode getHumanTaskNode() throws ConnectorException {
return getHumanTaskNode(defaultStrategy);
}
+ /*
+ * Get a HumanTaskNode based on the provided NodeSelectionStrategy
+ * @param strategy
+ */
public HumanTaskNode getHumanTaskNode(NodeSelectionStrategy strategy) throws ConnectorException{
GenericConnection connection = getConnector().getConnection();
return connection.getHumanTaskNode(strategy);
}
+ /*
+ * Get all the HumanTaskNodes inside the TaskServerInstance.
+ * This can be expensive because it needs to get a connection to all the HumanTaskNodes.
+ */
public List<HumanTaskNode> getHumanTaskNodes() throws ConnectorException{
GenericConnection connection = getConnector().getConnection();
return connection.getHumanTaskNodes();
}
-
+ /*
+ * Get the GenericNodeConnector from this TaskServerInstance
+ */
public GenericNodeConnector getConnector(){
return this.connector;
}
+ /*
+ * Get the TaskServerInstance name
+ */
public String getName() {
return name;
}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -1,77 +0,0 @@
-/*
- * 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.ExecutionEnvironment;
-
-
-/**
- *
- * @author salaboy
- *
- * The Environment with lowest ping will be selected
- */
-public class LowPingFirstEnvironmentSelectionStrategy implements ExecutionEnvironmentSelectionStrategy {
-
- private Map<String, ExecutionEnvironment> environments;
-
- public LowPingFirstEnvironmentSelectionStrategy() {
- }
-
-
- public LowPingFirstEnvironmentSelectionStrategy(Map<String, ExecutionEnvironment> environments) {
- this.environments = environments;
- }
-
-
- public ExecutionEnvironment getBestGridResource() {
- ExecutionEnvironment selectedEnv = null;
- for(ExecutionEnvironment env : this.environments.values()){
- if(selectedEnv != null){
-// try {
-// int oldping = Integer.parseInt(selectedEnv.getInfo().get("ping").toString());
-// long ping = env.ping();
-// if (oldping > ping) {
-// selectedEnv = env;
-// }
-// } catch (IOException ex) {
-// Logger.getLogger(LowPingFirstEnvironmentSelectionStrategy.class.getName()).log(Level.SEVERE, null, ex);
-// }
-
- }
-
- }
-
- return selectedEnv;
- }
-
- public void setExecutionEnvironments(Map<String, ExecutionEnvironment> environments) {
- this.environments = environments;
- }
-
- public ExecutionEnvironment getBestExecutionEnvironment(Map<String, ExecutionEnvironment> executionEnvironments) {
- setExecutionEnvironments(environments);
- return getBestGridResource();
- }
-
-
-
-
-
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TaskServerInstanceByPrioritySelectionStrategy.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -50,7 +50,7 @@
private Map<ConnectorType , Integer> priorities
= new HashMap<ConnectorType, Integer>() {
{
- put(ConnectorType.LOCAL, 1);
+ // put(ConnectorType.LOCAL, 1);
// put("RioEnvironmentProvider", 2);
// put("HornetQEnvironmentProvider", 3);
put(ConnectorType.REMOTE, 4);
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -75,21 +75,21 @@
public void directoryLocalTest() throws ConnectorException, RemoteException {
GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
- gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyLocalDir", new LocalProvider()));
- gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
+ gridTopologyConfiguration
+ .addDirectoryInstance(new DirectoryInstanceConfiguration("MyLocalDir", new LocalProvider()));
+ gridTopologyConfiguration
+ .addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
Assert.assertNotNull(grid);
DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull("Directory Instance null", directory);
DirectoryNodeService dir = directory.getDirectoryNode().get(DirectoryNodeService.class);
- directory.getConnector().disconnect();
+ //directory.getConnector().disconnect();
Assert.assertNotNull("Dir Null", dir);
- System.out.println("Dir = " + dir.getExecutorsMap());
Assert.assertEquals(2, dir.getExecutorsMap().size());
grid.dispose();
@@ -106,21 +106,15 @@
gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv2", new LocalProvider()));
-
grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
Assert.assertNotNull(grid);
-
-
-
- //DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
DirectoryInstance directory = grid.getDirectoryInstance("MyLocalDir");
Assert.assertNotNull("DirInstance is null!", directory);
DirectoryNodeService dir = directory.getDirectoryNode().get(DirectoryNodeService.class);
- ;
+
Assert.assertNotNull("Dir is null!", dir);
//This assertion is not deterministic
//Assert.assertEquals(4, dir.getExecutorsMap().size());
@@ -129,14 +123,12 @@
Assert.assertNotNull("DirInstance 2 is null!", directory2);
DirectoryNodeService dir2 = directory2.getDirectoryNode().get(DirectoryNodeService.class);
- ;
+
Assert.assertNotNull("Dir 2 is null!", dir2);
//This assertion is not deterministic
//Assert.assertEquals(3, dir2.getExecutorsMap().size());
// the only thing that is for sure is
- System.out.println("dir1 exec map" + dir.getExecutorsMap());
- System.out.println("dir2 exec map" + dir2.getExecutorsMap());
Assert.assertTrue((dir2.getExecutorsMap().size() + dir.getExecutorsMap().size()) > 4);
grid.dispose();
@@ -149,26 +141,14 @@
GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyLocalDir", new LocalProvider()));
-
-
gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
-
-
grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
-
Assert.assertNotNull(grid);
-
-
-
-
-
ExecutionEnvironment ee = grid.getBestExecutionEnvironment(new ExecutionEnvByPrioritySelectionStrategy());
Assert.assertNotNull(ee);
- System.out.println("EE Name = " + ee.getName());
-
+
ExecutionNode node = ee.getExecutionNode();
Assert.assertNotNull(node);
@@ -212,7 +192,8 @@
kbase = dirService.lookupKBase("DoctorsKBase");
Assert.assertNotNull(kbase);
- directory.getConnector().disconnect();
+ //directory.getConnector().disconnect();
+
grid.dispose();
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterMinaDirectoryTest.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -65,10 +65,11 @@
* @author salaboy
*/
public class RegisterMinaDirectoryTest {
+
private GridTopology grid;
private MinaAcceptor serverDir;
private MinaAcceptor serverNode;
-
+
public RegisterMinaDirectoryTest() {
}
@@ -83,8 +84,8 @@
@Before
public void setUp() throws InterruptedException, IOException {
- System.out.println("Dir Server 1 Starting!");
- // Directory Server configuration
+ System.out.println("Dir Server 1 Starting!");
+ // Directory Server configuration
SocketAddress dirAddress = new InetSocketAddress("127.0.0.1", 9123);
SocketAcceptor dirAcceptor = new NioSocketAcceptor();
@@ -99,7 +100,7 @@
//Execution Node related stuff
- System.out.println("Exec Server 1 Starting!");
+ System.out.println("Exec Server 1 Starting!");
// the servers should be started in a different machine (jvm or physical) or in another thread
SocketAddress address = new InetSocketAddress("127.0.0.1", 9124);
NodeData nodeData = new NodeData();
@@ -112,15 +113,15 @@
serverNode.start();
System.out.println("Exec Server 1 Started! at = " + address.toString());
-
+
}
@After
public void tearDown() throws InterruptedException, ConnectorException, RemoteException {
Thread.sleep(3000);
-
+
Assert.assertEquals(0, serverNode.getCurrentSessions());
serverNode.stop();
System.out.println("Execution Server Stopped!");
@@ -133,19 +134,15 @@
}
@Test
- public void directoryRemoteTest() throws ConnectorException, RemoteException {
+ public void directoryRemoteTest() throws ConnectorException, RemoteException {
GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
gridTopologyConfiguration.addDirectoryInstance(new DirectoryInstanceConfiguration("MyMinaDir", new MinaProvider("127.0.0.1", 9123)));
gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyRemoteEnv", new MinaProvider("127.0.0.1", 9124)));
-
grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
Assert.assertNotNull(grid);
-
-
DirectoryInstance directory = grid.getBestDirectoryInstance(new DirectoryInstanceByPrioritySelectionStrategy());
Assert.assertNotNull(directory);
@@ -153,14 +150,11 @@
Assert.assertNotNull(dir);
Map<String, String> dirMap = dir.getExecutorsMap();
- directory.getConnector().disconnect();
-
-
Assert.assertNotNull("Dir Null", dirMap);
Assert.assertEquals(3, dirMap.size());
- System.out.println("dir.getDirectoryMap() = "+dirMap);
+ System.out.println("dir.getDirectoryMap() = " + dirMap);
Assert.assertEquals(3, dirMap.size());
Assert.assertEquals(0, serverNode.getCurrentSessions());
@@ -168,7 +162,7 @@
ExecutionEnvironment ee = grid.getExecutionEnvironment("MyRemoteEnv");
Assert.assertNotNull(ee);
-
+
// Give me an ExecutionNode in the selected environment
// For the Mina we have just one Execution Node per server instance
ExecutionNode node = ee.getExecutionNode();
@@ -219,16 +213,13 @@
int fired = ksession.fireAllRules();
Assert.assertEquals(2, fired);
-
-
-
grid.dispose();
-
- }
- @Test
+ }
+
+ @Test
public void directoryInstanceRetriveKSessionFromEE() throws ConnectorException, RemoteException {
GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
@@ -237,13 +228,7 @@
grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
-
Assert.assertNotNull(grid);
-
-
-
-
//Then we can get the registered Execution Environments by Name
ExecutionEnvironment ee = grid.getExecutionEnvironment("MyMinaExecutionEnv1");
@@ -293,27 +278,18 @@
Assert.assertNotNull(ksession);
node.get(DirectoryLookupFactoryService.class).register("sessionName", ksession);
-
+
grid.disconnect();
DirectoryInstance directoryInstance = grid.getDirectoryInstance();
DirectoryNodeService directory = directoryInstance.getDirectoryNode().get(DirectoryNodeService.class);
GenericNodeConnector connector = directory.lookup("sessionName");
-
- directoryInstance.getConnector().disconnect();
-
- //System.out.println("Connector -->"+connector.getId());
+ node = grid.getExecutionEnvironment(connector).getExecutionNode();
+ ksession = (StatefulKnowledgeSession) node.get(DirectoryLookupFactoryService.class).lookup("sessionName");
+ Assert.assertNotNull(ksession);
- node = grid.getExecutionEnvironment(connector).getExecutionNode();
-//
- ksession = (StatefulKnowledgeSession) node.get(DirectoryLookupFactoryService.class).lookup("sessionName");
- Assert.assertNotNull(ksession);
+ grid.dispose();
- grid.dispose();
-
}
-
-
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -21,10 +21,8 @@
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import org.junit.Assert;
-import org.drools.grid.services.configuration.GenericProvider;
import org.drools.grid.services.configuration.LocalProvider;
import org.drools.grid.services.configuration.MinaProvider;
-
import java.rmi.RemoteException;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
@@ -42,7 +40,6 @@
import org.drools.grid.remote.mina.MinaIoHandler;
import org.drools.grid.services.ExecutionEnvironment;
import org.drools.grid.services.GridTopology;
-import org.drools.grid.services.configuration.DirectoryInstanceConfiguration;
import org.drools.grid.services.configuration.ExecutionEnvironmentConfiguration;
import org.drools.grid.services.configuration.GridTopologyConfiguration;
import org.drools.grid.services.factory.GridTopologyFactory;
@@ -61,7 +58,7 @@
*/
public class ServiceAPITest {
- private MinaAcceptor server1;
+ private MinaAcceptor server;
private GridTopology grid;
public ServiceAPITest() {
@@ -86,19 +83,19 @@
acceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(),
new GenericMessageHandlerImpl(nodeData,
SystemEventListenerFactory.getSystemEventListener())));
- server1 = new MinaAcceptor(acceptor, address);
- server1.start();
+ server = new MinaAcceptor(acceptor, address);
+ server.start();
System.out.println("Server 1 Started! at = " + address.toString());
}
@After
public void tearDown() throws ConnectorException, RemoteException {
- System.out.println("Disconecting all clients");
+
grid.dispose();
System.out.println("Stoping Server 1!");
- Assert.assertEquals(0, server1.getCurrentSessions());
- server1.stop();
+ Assert.assertEquals(0, server.getCurrentSessions());
+ server.stop();
}
@@ -106,20 +103,16 @@
public void mixedTopologyMinaAndLocal() throws ConnectorException, RemoteException {
GridTopologyConfiguration gridTopologyConfiguration = new GridTopologyConfiguration("MyTopology");
- gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyMinaEnv", new MinaProvider("127.0.0.1", 9123)));
- gridTopologyConfiguration.addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
+ gridTopologyConfiguration
+ .addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyMinaEnv", new MinaProvider("127.0.0.1", 9123)));
+ gridTopologyConfiguration
+ .addExecutionEnvironment(new ExecutionEnvironmentConfiguration("MyLocalEnv", new LocalProvider()));
-
grid = GridTopologyFactory.build(gridTopologyConfiguration);
-
-
Assert.assertNotNull(grid);
-
-
ExecutionEnvironment ee = grid.getBestExecutionEnvironment(new ExecutionEnvByPrioritySelectionStrategy());
Assert.assertNotNull(ee);
- System.out.println("EE Name = "+ee.getName());
ExecutionNode node = ee.getExecutionNode();
Assert.assertNotNull(node);
@@ -163,10 +156,6 @@
int fired = ksession.fireAllRules();
Assert.assertEquals(2, fired);
-
- grid.dispose();
-
-
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandler.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -73,7 +73,7 @@
private String ipAddress = "127.0.0.1";
private int port = 9124;
private GenericNodeConnector connector;
- private HumanTaskServiceImpl client;
+ private HumanTaskServiceRemoteClient client;
private KnowledgeRuntime session;
private Map<Long, Long> idMapping = new HashMap<Long, Long>();
private Map<Long, WorkItemManager> managers = new HashMap<Long, WorkItemManager>();
@@ -93,9 +93,9 @@
connector = new RemoteMinaHumanTaskConnector("client ht",
ipAddress, port,
SystemEventListenerFactory.getSystemEventListener());
+ int id = ((StatefulKnowledgeSession) session).getId();
connector.connect();
- int id = ((StatefulKnowledgeSession) session).getId();
- client = new HumanTaskServiceImpl(connector, id);
+ client = new HumanTaskServiceRemoteClient(connector, id);
}
}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -1,440 +0,0 @@
-/**
- * Copyright 2010 JBoss Inc
- *
- * 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.
- */
-
-package org.drools.grid.task;
-
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.drools.eventmessaging.EventKey;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.internal.Message;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.AddAttachmentMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.AddCommentMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.DeleteAttachmentMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.DeleteCommentMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.GetContentMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.GetTaskMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.SetDocumentMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.TaskOperationMessageResponseHandler;
-import org.drools.grid.task.TaskClientMessageHandlerImpl.TaskSummaryMessageResponseHandler;
-import org.drools.grid.task.eventmessaging.EventMessageResponseHandler;
-import org.drools.task.Attachment;
-import org.drools.task.Comment;
-import org.drools.task.Content;
-import org.drools.task.Task;
-import org.drools.task.service.Command;
-import org.drools.task.service.CommandName;
-import org.drools.task.service.ContentData;
-import org.drools.task.service.FaultData;
-import org.drools.task.service.Operation;
-
-/**
- * @author salaboy
- * @author Lucas Amador
- *
- */
-public class HumanTaskServiceImpl implements HumanTaskService {
-
- private final GenericNodeConnector client;
- private final AtomicInteger counter;
- private int sessionId;
- private String clientName;
-
- public HumanTaskServiceImpl(GenericNodeConnector client, int sessionId) {
- this.client = client;
- this.counter = new AtomicInteger();
- this.clientName = String.valueOf(sessionId);
- this.sessionId = sessionId;
-
- }
-
-
-
- public void disconnect() throws ConnectorException {
- try {
- this.client.disconnect();
- } catch (RemoteException ex) {
- Logger.getLogger(HumanTaskServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
-
- public void addTask(Task task, ContentData content, AddTaskMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(task);
- args.add(content);
- Command cmd = new Command(counter.getAndIncrement(), CommandName.AddTaskRequest, args);
-
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public Task getTask(long taskId, GetTaskMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(1);
- args.add(taskId);
- Command cmd = new Command(counter.getAndIncrement(), CommandName.GetTaskRequest, args);
-
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
- client.write(msg, responseHandler);
- return null;
- }
-
- public void addComment(long taskId, Comment comment, AddCommentMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(taskId);
- args.add(comment);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.AddCommentRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void deleteComment(long taskId, long commentId, DeleteCommentMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(taskId);
- args.add(commentId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.DeleteCommentRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void addAttachment(long taskId, Attachment attachment, Content content, AddAttachmentMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(taskId);
- args.add(attachment);
- args.add(content);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.AddAttachmentRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void deleteAttachment(long taskId, long attachmentId, long contentId, DeleteAttachmentMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(taskId);
- args.add(attachmentId);
- args.add(contentId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.DeleteAttachmentRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void setDocumentContent(long taskId, Content content, SetDocumentMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(taskId);
- args.add(content);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.SetDocumentContentRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getContent(long contentId, GetContentMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(1);
- args.add(contentId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.GetContentRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void claim(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(Operation.Claim);
- args.add(taskId);
- args.add(userId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void start(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(Operation.Start);
- args.add(taskId);
- args.add(userId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void stop(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(Operation.Stop);
- args.add(taskId);
- args.add(userId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void release(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(Operation.Release);
- args.add(taskId);
- args.add(userId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void suspend(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(Operation.Suspend);
- args.add(taskId);
- args.add(userId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void resume(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(Operation.Resume);
- args.add(taskId);
- args.add(userId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void skip(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(3);
- args.add(Operation.Skip);
- args.add(taskId);
- args.add(userId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void delegate(long taskId, String userId, String targetUserId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(4);
- args.add(Operation.Delegate);
- args.add(taskId);
- args.add(userId);
- args.add(targetUserId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void forward(long taskId, String userId, String targetEntityId, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(4);
- args.add(Operation.Forward);
- args.add(taskId);
- args.add(userId);
- args.add(targetEntityId);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void complete(long taskId, String userId, ContentData outputData, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(5);
- args.add(Operation.Complete);
- args.add(taskId);
- args.add(userId);
- args.add(null);
- args.add(outputData);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void fail(long taskId, String userId, FaultData faultData, TaskOperationMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(5);
- args.add(Operation.Fail);
- args.add(taskId);
- args.add(userId);
- args.add(null);
- args.add(faultData);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksOwned(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksOwned, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksAssignedAsBusinessAdministrator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsBusinessAdministrator, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksAssignedAsExcludedOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsExcludedOwner, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksAssignedAsPotentialOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwner, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksAssignedAsPotentialOwner(String userId, List<String> groupIds, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(groupIds);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwnerWithGroup, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getSubTasksAssignedAsPotentialOwner(long parentId, String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(parentId);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QuerySubTasksAssignedAsPotentialOwner, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getSubTasksByParent(long parentId, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(parentId);
- //@TODO: un hard code this
- args.add("en-UK");
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryGetSubTasksByParentTaskId, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksAssignedAsRecipient(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsRecipient, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksAssignedAsTaskInitiator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskInitiator, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void getTasksAssignedAsTaskStakeholder(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>(2);
- args.add(userId);
- args.add(language);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskStakeholder, args);
- Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public void registerForEvent(EventKey key, boolean remove, EventMessageResponseHandler responseHandler) { //@TODO: look for the event stuff
- List<Object> args = new ArrayList<Object>(3);
- args.add(key);
- args.add(remove);
- args.add(clientName);
-
- Command cmd = new Command(counter.getAndIncrement(), CommandName.RegisterForEventRequest, args);
- int responseId = counter.incrementAndGet();
- Message msg = new Message(sessionId, responseId, false, cmd);
-
- client.write(msg, responseHandler);
- }
-
- public String getId() throws ConnectorException, RemoteException {
- return "Remote:Task:";
- }
-
- public ServiceType getServiceType() throws ConnectorException, RemoteException {
- return ServiceType.REMOTE;
- }
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceProviderRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -15,11 +15,6 @@
*/
package org.drools.grid.task;
-import java.rmi.RemoteException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.GenericHumanTaskConnector;
import org.drools.grid.GenericNodeConnector;
import org.drools.grid.HumanTaskNodeService;
@@ -57,17 +52,7 @@
}
public HumanTaskNodeService newHumanTaskService() {
- HumanTaskServiceImpl humanTaskServiceImpl = null;
- try {
-
- this.connector.connect();
- } catch (RemoteException ex) {
- Logger.getLogger(HumanTaskServiceProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
-
- } catch (ConnectorException ex) {
- Logger.getLogger(HumanTaskServiceProviderRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
- }
- humanTaskServiceImpl = new HumanTaskServiceImpl(this.connector, this.id);
+ HumanTaskServiceRemoteClient humanTaskServiceImpl = new HumanTaskServiceRemoteClient(this.connector, this.id);
return humanTaskServiceImpl;
}
}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceRemoteClient.java (from rev 34592, labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceRemoteClient.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/HumanTaskServiceRemoteClient.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -0,0 +1,464 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * 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.
+ */
+
+package org.drools.grid.task;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.drools.eventmessaging.EventKey;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.internal.Message;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.AddAttachmentMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.AddCommentMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.DeleteAttachmentMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.DeleteCommentMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.GetContentMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.GetTaskMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.SetDocumentMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.TaskOperationMessageResponseHandler;
+import org.drools.grid.task.TaskClientMessageHandlerImpl.TaskSummaryMessageResponseHandler;
+import org.drools.grid.task.eventmessaging.EventMessageResponseHandler;
+import org.drools.task.Attachment;
+import org.drools.task.Comment;
+import org.drools.task.Content;
+import org.drools.task.Task;
+import org.drools.task.service.Command;
+import org.drools.task.service.CommandName;
+import org.drools.task.service.ContentData;
+import org.drools.task.service.FaultData;
+import org.drools.task.service.Operation;
+
+
+/**
+ * @author salaboy
+ * @author Lucas Amador
+ *
+ */
+public class HumanTaskServiceRemoteClient implements HumanTaskService {
+
+ private final GenericNodeConnector connector;
+ private final AtomicInteger counter;
+ private int sessionId;
+ private String clientName;
+ private int DEFAULT_WAIT_TIME = 3000;
+
+ public HumanTaskServiceRemoteClient(GenericNodeConnector connector, int sessionId) {
+ this.connector = connector;
+ this.counter = new AtomicInteger();
+ this.clientName = String.valueOf(sessionId);
+ this.sessionId = sessionId;
+
+ }
+
+
+
+ public void disconnect() throws ConnectorException {
+ try {
+ this.connector.disconnect();
+ } catch (RemoteException ex) {
+ Logger.getLogger(HumanTaskServiceRemoteClient.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ public void addTask(Task task, ContentData content, AddTaskMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(task);
+ args.add(content);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.AddTaskRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public Task getTask(long taskId, GetTaskMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(1);
+ args.add(taskId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.GetTaskRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ return null;
+ }
+
+ public void addComment(long taskId, Comment comment, AddCommentMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(taskId);
+ args.add(comment);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.AddCommentRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void deleteComment(long taskId, long commentId, DeleteCommentMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(taskId);
+ args.add(commentId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.DeleteCommentRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void addAttachment(long taskId, Attachment attachment, Content content, AddAttachmentMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(taskId);
+ args.add(attachment);
+ args.add(content);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.AddAttachmentRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void deleteAttachment(long taskId, long attachmentId, long contentId, DeleteAttachmentMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(taskId);
+ args.add(attachmentId);
+ args.add(contentId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.DeleteAttachmentRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void setDocumentContent(long taskId, Content content, SetDocumentMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(taskId);
+ args.add(content);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.SetDocumentContentRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void getContent(long contentId, GetContentMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(1);
+ args.add(contentId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.GetContentRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void claim(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(Operation.Claim);
+ args.add(taskId);
+ args.add(userId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void start(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(Operation.Start);
+ args.add(taskId);
+ args.add(userId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void stop(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(Operation.Stop);
+ args.add(taskId);
+ args.add(userId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void release(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(Operation.Release);
+ args.add(taskId);
+ args.add(userId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void suspend(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(Operation.Suspend);
+ args.add(taskId);
+ args.add(userId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void resume(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(Operation.Resume);
+ args.add(taskId);
+ args.add(userId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void skip(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(Operation.Skip);
+ args.add(taskId);
+ args.add(userId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void delegate(long taskId, String userId, String targetUserId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(4);
+ args.add(Operation.Delegate);
+ args.add(taskId);
+ args.add(userId);
+ args.add(targetUserId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void forward(long taskId, String userId, String targetEntityId, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(4);
+ args.add(Operation.Forward);
+ args.add(taskId);
+ args.add(userId);
+ args.add(targetEntityId);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void complete(long taskId, String userId, ContentData outputData, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(5);
+ args.add(Operation.Complete);
+ args.add(taskId);
+ args.add(userId);
+ args.add(null);
+ args.add(outputData);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void fail(long taskId, String userId, FaultData faultData, TaskOperationMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(5);
+ args.add(Operation.Fail);
+ args.add(taskId);
+ args.add(userId);
+ args.add(null);
+ args.add(faultData);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.OperationRequest, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+ }
+
+ public void getTasksOwned(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksOwned, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getTasksAssignedAsBusinessAdministrator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsBusinessAdministrator, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getTasksAssignedAsExcludedOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsExcludedOwner, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getTasksAssignedAsPotentialOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwner, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getTasksAssignedAsPotentialOwner(String userId, List<String> groupIds, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(groupIds);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwnerWithGroup, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getSubTasksAssignedAsPotentialOwner(long parentId, String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(parentId);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QuerySubTasksAssignedAsPotentialOwner, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getSubTasksByParent(long parentId, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(parentId);
+ //@TODO: un hard code this
+ args.add("en-UK");
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryGetSubTasksByParentTaskId, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getTasksAssignedAsRecipient(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsRecipient, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getTasksAssignedAsTaskInitiator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskInitiator, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void getTasksAssignedAsTaskStakeholder(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
+
+ List<Object> args = new ArrayList<Object>(2);
+ args.add(userId);
+ args.add(language);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskStakeholder, args);
+ Message msg = new Message(sessionId, counter.incrementAndGet(), false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public void registerForEvent(EventKey key, boolean remove, EventMessageResponseHandler responseHandler) { //@TODO: look for the event stuff
+
+ List<Object> args = new ArrayList<Object>(3);
+ args.add(key);
+ args.add(remove);
+ args.add(clientName);
+ Command cmd = new Command(counter.getAndIncrement(), CommandName.RegisterForEventRequest, args);
+ int responseId = counter.incrementAndGet();
+ Message msg = new Message(sessionId, responseId, false, cmd);
+ connector.write(msg, responseHandler);
+
+
+ }
+
+ public String getId() throws ConnectorException, RemoteException {
+ return "Remote:Task:";
+ }
+
+ public ServiceType getServiceType() throws ConnectorException, RemoteException {
+ return ServiceType.REMOTE;
+ }
+
+
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaConnectionHumanTask.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaConnectionHumanTask.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaConnectionHumanTask.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -47,7 +47,7 @@
}
public void init(){
- services.put(HumanTaskService.class, new HumanTaskServiceImpl(connector, connector.getSessionId()));
+ services.put(HumanTaskService.class, new HumanTaskServiceRemoteClient(connector, connector.getSessionId()));
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/RemoteMinaHumanTaskConnector.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -3,6 +3,8 @@
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.rmi.RemoteException;
+import java.util.Random;
+import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -10,7 +12,6 @@
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.future.IoFuture;
import org.apache.mina.core.future.IoFutureListener;
-import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
@@ -22,7 +23,6 @@
import org.drools.grid.ConnectorType;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.HumanTaskNodeService;
import org.drools.grid.NodeConnectionType;
import org.drools.grid.internal.Message;
@@ -36,6 +36,7 @@
GenericNodeConnector {
protected IoSession session;
+ protected int sessionId;
protected final String name;
protected AtomicInteger counter;
protected SocketConnector connector;
@@ -47,17 +48,16 @@
String providerAddress, Integer providerPort,
SystemEventListener eventListener) {
- SocketConnector minaconnector = new NioSocketConnector();
- minaconnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
+
if (name == null) {
throw new IllegalArgumentException("Name can not be null");
}
this.name = name;
this.counter = new AtomicInteger();
this.address = new InetSocketAddress(providerAddress, providerPort);
- this.connector = minaconnector;
this.eventListener = eventListener;
this.connection = new GridConnection();
+ this.sessionId = new Random().nextInt();
}
public void connect() throws ConnectorException {
@@ -67,7 +67,9 @@
}
try {
- this.connector.getFilterChain().addLast("codec",
+ this.connector = new NioSocketConnector();
+ this.connector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
+ this.connector.getFilterChain().addLast(this.name+"codec"+UUID.randomUUID().toString(),
new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
ConnectFuture future1 = this.connector.connect(this.address);
@@ -160,7 +162,7 @@
}
public int getSessionId() {
- return (int) session.getId();
+ return this.sessionId;
}
public AtomicInteger getCounter() {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/BaseTaskServiceTest.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -96,7 +96,7 @@
System.out.println("Completing task " + task.getId());
operationResponseHandler = new BlockingTaskOperationMessageResponseHandler();
humanTaskClient.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(15000);
+
System.out.println("Completed task " + task.getId());
Assert.assertTrue(manager.waitTillCompleted(DEFAULT_WAIT_TIME));
Thread.sleep(500);
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java 2010-08-09 11:53:43 UTC (rev 34604)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-task/src/test/java/org/drools/grid/task/CommandBasedServicesWSHumanTaskHandlerTest.java 2010-08-09 12:12:27 UTC (rev 34605)
@@ -26,6 +26,7 @@
import java.util.Properties;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
+import junit.framework.Assert;
import org.apache.commons.collections.map.HashedMap;
import org.apache.mina.transport.socket.SocketAcceptor;
@@ -34,8 +35,6 @@
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactoryService;
import org.drools.SystemEventListenerFactory;
-import org.drools.grid.ExecutionNode;
-import org.drools.grid.GenericHumanTaskConnector;
import org.drools.grid.GenericNodeConnector;
import org.drools.io.impl.ClassPathResource;
import org.drools.runtime.StatefulKnowledgeSession;
@@ -164,35 +163,34 @@
connection.addExecutionNode(minaClient);
-
+ connection.addHumanTaskNode(htMinaClient);
node = connection.getExecutionNode(new ReturnAlwaysTheFirstSelectionStrategy());
- //nodeConnection.connect();
+
KnowledgeBase kbase = this.node.get(KnowledgeBaseFactoryService.class).newKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
- int sessionId = ksession.getId();
+
+ this.humanTaskClient = connection.getHumanTaskNode().get(HumanTaskService.class);
- node.set(HumanTaskFactoryService.class, new HumanTaskServiceProviderRemoteClient(htMinaClient, sessionId));
-
- this.humanTaskClient = (HumanTaskService) this.node.get(HumanTaskFactoryService.class).newHumanTaskService();
-
-
this.handler = new CommandBasedServicesWSHumanTaskHandler(ksession);
}
@After
public void tearDown() throws Exception {
- this.humanTaskClient.disconnect();
+
+ Thread.sleep(3000);
connection.dispose();
-
+ this.humanTaskClient.disconnect();
+ Assert.assertEquals(0, server.getCurrentSessions());
this.handler.dispose();
this.server.stop();
+ Assert.assertEquals(0, humanTaskServer.getCurrentSessions());
this.humanTaskServer.stop();
taskSession.dispose();
More information about the jboss-svn-commits
mailing list