[jboss-svn-commits] JBL Code SVN: r35250 - in labs/jbossrules/trunk/drools-grid: drools-grid-distributed-api/src/main/java/org/drools/grid/distributed and 15 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Sep 23 11:22:06 EDT 2010
Author: salaboy21
Date: 2010-09-23 11:22:05 -0400 (Thu, 23 Sep 2010)
New Revision: 35250
Added:
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/commands/
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java
Removed:
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java
Modified:
labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java
labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy
labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
Log:
JBRULES-2618: Drools Grid Services - Improve and clean tests
- drools grid rio modifications to better use of the services, clean ups needed
- move dependencies and little PoC working
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GenericConnectorFactory.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -39,8 +39,8 @@
private static final String REMOTE_HORNETQ_NODE_CONNECTOR_CLASS = "";
private static final String REMOTE_HORNETQ_DIRECTORY_CONNECTOR_CLASS = "";
private static final String REMOTE_HORNETQ_TASK_CONNECTOR_CLASS = "";
- private static final String DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS = "org.drools.grid.distributed.impl.DistributedRioNodeConnector";
- private static final String DISTRIBUTED_RIO_DIRECTORY_CONNECTOR_CLASS = "org.drools.distributed.directory.impl.DistributedRioDirectoryConnector";
+ private static final String DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS = "org.drools.grid.distributed.connectors.DistributedRioNodeConnector";
+ private static final String DISTRIBUTED_RIO_DIRECTORY_CONNECTOR_CLASS = "org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector";
private static final String DISTRIBUTED_RIO_TASK_CONNECTOR_CLASS = "";
/* connectorString format:
@@ -336,7 +336,7 @@
String[] connectorDetails = getConnectorDetails( connectorString );
Class clazz = Class.forName( DISTRIBUTED_RIO_NODE_CONNECTOR_CLASS );
- if ( !"".equals( connectorDetails[3] ) ) {
+ if ( connectorDetails.length < 4 || !"".equals( connectorDetails[3] ) ) {
Constructor constructor = clazz.getConstructor( String.class,
SystemEventListener.class,
String.class );
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-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-api/src/main/java/org/drools/grid/GridConnection.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -126,7 +126,7 @@
HumanTaskNode humanTaskNode = null;
try {
type = connector.getNodeConnectionType();
- connector.connect();
+
type.setConnector( connector );
type.setConnection( this );
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/DistributedConnectionNode.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -47,7 +47,6 @@
public DistributedConnectionNode(GenericNodeConnector connector,
GenericConnection connection) {
-
this.connector = connector;
this.connection = connection;
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/KnowledgeBaseProviderGridClient.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -96,8 +96,33 @@
}
public KnowledgeBase newKnowledgeBase(String kbaseId) {
- // TODO Auto-generated method stub
- return null;
+
+ this.localId = kbaseId;
+
+
+ Message msg = new Message( this.messageSession.getSessionId(),
+ this.messageSession.counter.incrementAndGet(),
+ false,
+ new SetVariableCommand( "__TEMP__",
+ this.localId,
+ new NewKnowledgeBaseCommand( null ) ) );
+ try {
+ Object object = this.connector.write( msg ).getPayload();
+
+ // if ( !(object instanceof FinishedCommand) ) {
+ // throw new RuntimeException( "Response was not correctly ended" );
+ // }
+
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
+
+ return new KnowledgeBaseGridClient( this.localId,
+ this.connector,
+ this.messageSession,
+ this.connection );
+
}
public KnowledgeBase newKnowledgeBase(String kbaseId,
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-api/src/main/java/org/drools/grid/distributed/StatefulKnowledgeSessionGridClient.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -10,6 +10,8 @@
import org.drools.command.runtime.GetGlobalCommand;
import org.drools.command.runtime.SetGlobalCommand;
import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.command.runtime.rule.InsertObjectCommand;
+import org.drools.common.DefaultFactHandle;
import org.drools.event.process.ProcessEventListener;
import org.drools.event.rule.AgendaEventListener;
import org.drools.event.rule.WorkingMemoryEventListener;
@@ -89,7 +91,7 @@
throw new RuntimeException( "Response was not correctly received" );
}
- return (Integer) ((ExecutionResults) object).getValue( commandId );
+ return (Integer) object;
} catch ( Exception e ) {
throw new RuntimeException( "Unable to execute message",
e );
@@ -321,8 +323,33 @@
}
public FactHandle insert(Object object) {
- // TODO Auto-generated method stub
- return null;
+ String commandId = "ksession.insert" + this.messageSession.getNextId();
+ String kresultsId = "kresults_" + this.messageSession.getSessionId();
+
+ Message msg = new Message( this.messageSession.getSessionId(),
+ this.messageSession.counter.incrementAndGet(),
+ false,
+ new KnowledgeContextResolveFromContextCommand( new InsertObjectCommand( object,
+ true ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId ) );
+
+ try {
+
+ Object result = this.connector.write( msg ).getPayload();
+ if ( object == null ) {
+ throw new RuntimeException( "Response was not correctly received" );
+ }
+ DefaultFactHandle handle = (DefaultFactHandle) result;
+
+
+ return handle;
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Unable to execute message",
+ e );
+ }
}
public void retract(FactHandle handle) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/pom.xml 2010-09-23 15:22:05 UTC (rev 35250)
@@ -36,13 +36,11 @@
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-grid-api</artifactId>
- <version>5.2.0.SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-grid-distributed-api</artifactId>
- <version>5.2.0.SNAPSHOT</version>
</dependency>
<!-- RIO Runtime -->
@@ -72,7 +70,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.8.1</version>
+ <version>4.6</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -99,8 +97,10 @@
<topclasses>
<topclass>org.drools.grid.ExecutionNodeService</topclass>
<topclass>org.drools.grid.DirectoryNodeService</topclass>
- <topclass>org.drools.grid.distributed.RioNodeConnector</topclass>
+ <topclass>org.drools.grid.distributed.connectors.DistributedRioNodeConnector</topclass>
+ <topclass>org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector</topclass>
<topclass>org.drools.grid.distributed.util.IDEntry</topclass>
+ <topclass>org.drools.grid.distributed.directory.commands.GetKnowledgeBaseGridCommand</topclass>
<topclass>org.drools.grid.distributed.util.RioResourceLocator</topclass>
<topclass>org.drools.grid.distributed.command.NewStatefulKnowledgeSessionGridCommand</topclass>
<topclass>org.drools.impl.SystemEventListenerServiceImpl</topclass>
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceGridClient.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -17,12 +17,14 @@
package org.drools.distributed.directory.impl;
+import org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector;
import java.rmi.RemoteException;
import java.util.Map;
import org.drools.KnowledgeBase;
import org.drools.grid.ConnectorException;
import org.drools.grid.DirectoryNodeService;
import org.drools.grid.GenericConnection;
+import org.drools.grid.GenericConnectorFactory;
import org.drools.grid.GenericNodeConnector;
/**
@@ -30,41 +32,60 @@
* @author salaboy
*/
public class DirectoryNodeServiceGridClient implements DirectoryNodeService {
- private DirectoryNodeService client;
+ private GenericNodeConnector connector;
+
public DirectoryNodeServiceGridClient(GenericNodeConnector connector, GenericConnection connection) {
-
- this.client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+ this.connector = connector;
+
}
public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
-
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
client.register(executorId, resourceId);
+ connector.disconnect();
}
public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
-
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
client.register(executorId, resourceConnector);
+ connector.disconnect();
}
public void unregister(String executorId) throws ConnectorException, RemoteException {
- throw new UnsupportedOperationException("Not supported yet.");
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+ client.unregister(executorId);
+ connector.disconnect();
}
public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
- return client.lookup(resourceId);
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+ GenericNodeConnector result = GenericConnectorFactory.newConnector(client.lookupId(resourceId));
+ connector.disconnect();
+ return result;
}
public String lookupId(String resourceId) throws ConnectorException, RemoteException {
- return client.lookupId(resourceId);
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+ String result = client.lookupId(resourceId);
+ connector.disconnect();
+ return result;
}
public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
client.registerKBase(kbaseId, resourceId);
+ connector.disconnect();
}
public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
@@ -76,15 +97,27 @@
}
public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
- return client.lookupKBase(kbaseId);
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+ KnowledgeBase result = client.lookupKBase(kbaseId);
+ connector.disconnect();
+ return result;
}
public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
- return client.getExecutorsMap();
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+ Map<String, String> result = client.getExecutorsMap();
+ connector.disconnect();
+ return result;
}
public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
- return client.getKBasesMap();
+ connector.connect();
+ DirectoryNodeService client = ((DistributedRioDirectoryConnector) connector).getDirectoryNodeService();
+ Map<String, String> result = client.getKBasesMap();
+ connector.disconnect();
+ return result;
}
public void dispose() throws ConnectorException, RemoteException {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DirectoryNodeServiceImpl.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -11,7 +11,7 @@
import java.util.UUID;
import org.drools.KnowledgeBase;
import org.drools.command.KnowledgeContextResolveFromContextCommand;
-import org.drools.command.runtime.GetKnowledgeBaseCommand;
+import org.drools.grid.distributed.directory.commands.GetKnowledgeBaseGridCommand;
import org.drools.grid.ConnectorException;
import org.drools.grid.internal.Message;
import org.drools.grid.ExecutionNodeService;
@@ -57,10 +57,11 @@
@Override
public GenericNodeConnector lookup(String sessionId) throws ConnectorException, RemoteException {
ExecutionNodeService nodeService = null;
+ System.out.println("SessionID inside Lookup = "+sessionId);
String sessionServiceId = (String) directoryMap.get(sessionId);
-
+ System.out.println("SessionID from directoryMap = "+sessionServiceId);
for (ExecutionNodeService ss : executionNodes) {
-
+ System.out.println("NodeService = "+ss.getId() +" must match with = "+sessionServiceId);
if (ss.getId().equals(sessionServiceId)) {
nodeService = ss;
}
@@ -94,7 +95,7 @@
try {
//@TODO: This is a bad hack.. I need to improve this a lot
- Message msg = executionNode.write(new Message(999, 1000, false, new KnowledgeContextResolveFromContextCommand(new GetKnowledgeBaseCommand(), null, kbaseId, null, null)));
+ Message msg = executionNode.write(new Message(999, 1000, false, new KnowledgeContextResolveFromContextCommand(new GetKnowledgeBaseGridCommand(), null, kbaseId, null, null)));
if (msg.getPayload() instanceof KnowledgeBase) {
return (KnowledgeBase) msg.getPayload();
@@ -135,7 +136,7 @@
@Override
public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
- throw new UnsupportedOperationException("Not supported yet.");
+ return kbaseDirectoryMap;
}
@Override
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -1,208 +0,0 @@
-package org.drools.distributed.directory.impl;
-
-import java.io.IOException;
-import java.net.SocketAddress;
-import java.rmi.RemoteException;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.drools.KnowledgeBase;
-
-import org.drools.SystemEventListener;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.ConnectorType;
-import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.GenericConnection;
-import org.drools.grid.NodeConnectionType;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.GridConnection;
-import org.drools.grid.distributed.util.RioResourceLocator;
-
-public class DistributedRioDirectoryConnector
- implements GenericNodeConnector, DirectoryNodeService {
-
- protected final String name;
- protected AtomicInteger counter;
- protected DirectoryNodeService directoryNodeService;
- protected SocketAddress address;
- protected SystemEventListener eventListener;
- protected GenericConnection connection;
- private String directoryNodeServiceId;
-
- public DistributedRioDirectoryConnector(String name,
- SystemEventListener eventListener) {
- if (name == null) {
- throw new IllegalArgumentException("Name can not be null");
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.eventListener = eventListener;
- this.connection = new GridConnection();
-
- }
-
- public DistributedRioDirectoryConnector(String name,
- SystemEventListener eventListener,
- DirectoryNodeService directoryNode) {
- if (name == null) {
- throw new IllegalArgumentException("Name can not be null");
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.eventListener = eventListener;
- this.directoryNodeService = directoryNode;
- this.connection = new GridConnection();
-
- }
-
- public DistributedRioDirectoryConnector(String name,
- SystemEventListener eventListener, String directoryNodeServiceId) {
- if (name == null) {
- throw new IllegalArgumentException("Name can not be null");
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.eventListener = eventListener;
- this.directoryNodeServiceId = directoryNodeServiceId;
- this.connection = new GridConnection();
-
- }
-
- @Override
- public Message write(Message msg) throws ConnectorException, RemoteException {
-// if (directoryNodeService != null) {
-//
-//
-// Message returnMessage = this.directoryNodeService.write(msg);
-// return returnMessage;
-//
-//
-// }
-// throw new IllegalStateException("directoryService should not be null");
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public void write(Message msg,
- MessageResponseHandler responseHandler) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getId() throws ConnectorException, RemoteException {
-
- return directoryNodeService.getId();
-
-
- }
-
- public void setDirectoryNodeService(DirectoryNodeService directoryNodeService) {
- this.directoryNodeService = directoryNodeService;
-
-
- }
-
- public DirectoryNodeService getDirectoryNodeService() {
- return directoryNodeService;
- }
-
- public void connect() throws ConnectorException {
- if(this.directoryNodeService == null && !"".equals(this.directoryNodeServiceId)){
- try {
- this.directoryNodeService = RioResourceLocator.locateDirectoryNodeById(this.directoryNodeServiceId);
- } catch (IOException ex) {
- Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
- }
- }else{
- try {
- this.directoryNodeService = RioResourceLocator.locateDirectoryNodes().get(0);
- } catch (IOException ex) {
- Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
-
- public void disconnect() throws ConnectorException {
- //I don't need to be disconected
- }
-
- public GenericConnection getConnection() {
- return this.connection;
- }
-
- public NodeConnectionType getNodeConnectionType() throws ConnectorException {
- return new DistributedConnectionDirectory();
- }
-
- public ConnectorType getConnectorType() {
- return ConnectorType.DISTRIBUTED;
- }
-
- public int getSessionId() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public AtomicInteger getCounter() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
- this.directoryNodeService.register(executorId, resourceId);
- }
-
- public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
- this.directoryNodeService.register(executorId, resourceConnector);
- }
-
- public void unregister(String executorId) throws ConnectorException, RemoteException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
- return this.directoryNodeService.lookup(resourceId);
- }
-
- public String lookupId(String resourceId) throws ConnectorException, RemoteException {
- return this.directoryNodeService.lookupId(resourceId);
- }
-
- public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
- this.directoryNodeService.registerKBase(kbaseId, resourceId);
- }
-
- public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
- this.directoryNodeService.registerKBase(kbaseId, kbase);
- }
-
- public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
- return this.directoryNodeService.lookupKBase(kbaseId);
- }
-
- public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
- return this.directoryNodeService.getExecutorsMap();
- }
-
- public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
- return this.directoryNodeService.getKBasesMap();
- }
-
- public void dispose() throws ConnectorException, RemoteException {
- this.directoryNodeService.dispose();
- }
-
- @Override
- public ServiceType getServiceType() throws ConnectorException, RemoteException {
- return ServiceType.DISTRIBUTED;
- }
-}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java (from rev 35190, labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/distributed/directory/impl/DistributedRioDirectoryConnector.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioDirectoryConnector.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -0,0 +1,209 @@
+package org.drools.grid.distributed.connectors;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+import java.rmi.RemoteException;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.drools.KnowledgeBase;
+
+import org.drools.SystemEventListener;
+import org.drools.distributed.directory.impl.DistributedConnectionDirectory;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.DirectoryNodeService;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.NodeConnectionType;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+import org.drools.grid.distributed.util.RioResourceLocator;
+
+public class DistributedRioDirectoryConnector
+ implements GenericNodeConnector, DirectoryNodeService {
+
+ protected final String name;
+ protected AtomicInteger counter;
+ protected DirectoryNodeService directoryNodeService;
+ protected SocketAddress address;
+ protected SystemEventListener eventListener;
+ protected GenericConnection connection;
+ private String directoryNodeServiceId;
+
+ public DistributedRioDirectoryConnector(String name,
+ SystemEventListener eventListener) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.connection = new GridConnection();
+
+ }
+
+ public DistributedRioDirectoryConnector(String name,
+ SystemEventListener eventListener,
+ DirectoryNodeService directoryNode) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.directoryNodeService = directoryNode;
+ this.connection = new GridConnection();
+
+ }
+
+ public DistributedRioDirectoryConnector(String name,
+ SystemEventListener eventListener, String directoryNodeServiceId) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.directoryNodeServiceId = directoryNodeServiceId;
+ this.connection = new GridConnection();
+
+ }
+
+ @Override
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+// if (directoryNodeService != null) {
+//
+//
+// Message returnMessage = this.directoryNodeService.write(msg);
+// return returnMessage;
+//
+//
+// }
+// throw new IllegalStateException("directoryService should not be null");
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void write(Message msg,
+ MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getId() throws ConnectorException, RemoteException {
+
+ return directoryNodeService.getId();
+
+
+ }
+
+ public void setDirectoryNodeService(DirectoryNodeService directoryNodeService) {
+ this.directoryNodeService = directoryNodeService;
+
+
+ }
+
+ public DirectoryNodeService getDirectoryNodeService() {
+ return directoryNodeService;
+ }
+
+ public void connect() throws ConnectorException {
+ if(this.directoryNodeService == null && this.directoryNodeServiceId != null && !"".equals(this.directoryNodeServiceId)){
+ try {
+ this.directoryNodeService = RioResourceLocator.locateDirectoryNodeById(this.directoryNodeServiceId);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }else{
+ try {
+ this.directoryNodeService = RioResourceLocator.locateDirectoryNodes().get(0);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioDirectoryConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ }
+
+ public void disconnect() throws ConnectorException {
+ //I don't need to be disconected
+ }
+
+ public GenericConnection getConnection() {
+ return this.connection;
+ }
+
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException {
+ return new DistributedConnectionDirectory();
+ }
+
+ public ConnectorType getConnectorType() {
+ return ConnectorType.DISTRIBUTED;
+ }
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void register(String executorId, String resourceId) throws ConnectorException, RemoteException {
+ this.directoryNodeService.register(executorId, resourceId);
+ }
+
+ public void register(String executorId, GenericNodeConnector resourceConnector) throws ConnectorException, RemoteException {
+ this.directoryNodeService.register(executorId, resourceConnector);
+ }
+
+ public void unregister(String executorId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public GenericNodeConnector lookup(String resourceId) throws ConnectorException, RemoteException {
+ return this.directoryNodeService.lookup(resourceId);
+ }
+
+ public String lookupId(String resourceId) throws ConnectorException, RemoteException {
+ return this.directoryNodeService.lookupId(resourceId);
+ }
+
+ public void registerKBase(String kbaseId, String resourceId) throws ConnectorException, RemoteException {
+ this.directoryNodeService.registerKBase(kbaseId, resourceId);
+ }
+
+ public void registerKBase(String kbaseId, KnowledgeBase kbase) throws ConnectorException, RemoteException {
+ this.directoryNodeService.registerKBase(kbaseId, kbase);
+ }
+
+ public void unregisterKBase(String kbaseId) throws ConnectorException, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public KnowledgeBase lookupKBase(String kbaseId) throws ConnectorException, RemoteException {
+ return this.directoryNodeService.lookupKBase(kbaseId);
+ }
+
+ public Map<String, String> getExecutorsMap() throws ConnectorException, RemoteException {
+ return this.directoryNodeService.getExecutorsMap();
+ }
+
+ public Map<String, String> getKBasesMap() throws ConnectorException, RemoteException {
+ return this.directoryNodeService.getKBasesMap();
+ }
+
+ public void dispose() throws ConnectorException, RemoteException {
+ this.directoryNodeService.dispose();
+ }
+
+ @Override
+ public ServiceType getServiceType() throws ConnectorException, RemoteException {
+ return ServiceType.DISTRIBUTED;
+ }
+}
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java (from rev 35190, labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/connectors/DistributedRioNodeConnector.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -0,0 +1,166 @@
+package org.drools.grid.distributed.connectors;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+import java.rmi.RemoteException;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.drools.SystemEventListener;
+import org.drools.grid.ConnectorException;
+import org.drools.grid.ConnectorType;
+import org.drools.grid.GenericConnection;
+import org.drools.grid.NodeConnectionType;
+import org.drools.grid.internal.Message;
+import org.drools.grid.internal.MessageResponseHandler;
+import org.drools.grid.ExecutionNodeService;
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.GridConnection;
+import org.drools.grid.distributed.DistributedConnectionNode;
+import org.drools.grid.distributed.util.RioResourceLocator;
+
+public class DistributedRioNodeConnector
+ implements GenericNodeConnector {
+
+ protected final String name;
+ protected AtomicInteger counter;
+ protected ExecutionNodeService executionNodeService;
+ protected SocketAddress address;
+ protected SystemEventListener eventListener;
+ protected GenericConnection connection;
+ protected String executionNodeId;
+
+ public DistributedRioNodeConnector(String name,
+ SystemEventListener eventListener) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.connection = new GridConnection();
+
+ }
+
+
+
+ public DistributedRioNodeConnector(String name,
+ SystemEventListener eventListener,
+ ExecutionNodeService executionNodeService) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.executionNodeService = executionNodeService;
+ this.connection = new GridConnection();
+
+ }
+
+ public DistributedRioNodeConnector(String name,
+ SystemEventListener eventListener,
+ String executionNodeId) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.counter = new AtomicInteger();
+ this.eventListener = eventListener;
+ this.connection = new GridConnection();
+ this.executionNodeId = executionNodeId;
+
+ }
+
+
+ public Message write(Message msg) throws ConnectorException, RemoteException {
+ if (executionNodeService == null) {
+ connect();
+ }
+
+
+ Message returnMessage = this.executionNodeService.write(msg);
+ return returnMessage;
+
+
+
+
+ }
+
+ public void write(Message msg,
+ MessageResponseHandler responseHandler) {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getId() throws ConnectorException, RemoteException {
+ if(executionNodeService == null){
+ connect();
+ }
+ return executionNodeService.getId();
+
+
+ }
+
+ public void setExecutionNodeService(ExecutionNodeService executionNode) {
+ this.executionNodeService = executionNode;
+
+
+ }
+
+ public ExecutionNodeService getExecutionNodeService() {
+ return executionNodeService;
+ }
+
+
+
+ public void connect() throws ConnectorException {
+ if(this.executionNodeService != null){
+ return;
+ }
+ if( !this.executionNodeId.equals("") && !this.executionNodeId.equals("Distributed:Rio:Node")){
+ try {
+ this.executionNodeService = RioResourceLocator.locateExecutionNodeById(this.executionNodeId);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }else{
+ try {
+ this.executionNodeService = RioResourceLocator.locateExecutionNodes().get(0);
+ } catch (IOException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InterruptedException ex) {
+ Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ }
+
+ public void disconnect() throws ConnectorException {
+ //I don't need to be disconected
+ }
+
+ public GenericConnection getConnection() {
+ return this.connection;
+ }
+
+ public NodeConnectionType getNodeConnectionType() throws ConnectorException {
+ return new DistributedConnectionNode();
+ }
+
+ public ConnectorType getConnectorType() {
+ return ConnectorType.DISTRIBUTED;
+ }
+
+ public int getSessionId() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public AtomicInteger getCounter() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+
+}
Added: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/java/org/drools/grid/distributed/directory/commands/GetKnowledgeBaseGridCommand.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -0,0 +1,40 @@
+/**
+ * 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.distributed.directory.commands;
+
+import org.drools.KnowledgeBase;
+import org.drools.command.Context;
+import org.drools.command.impl.GenericCommand;
+import org.drools.command.impl.KnowledgeCommandContext;
+
+public class GetKnowledgeBaseGridCommand
+ implements
+ GenericCommand<KnowledgeBase> {
+
+ public GetKnowledgeBaseGridCommand() {
+ }
+
+ public KnowledgeBase execute(Context context) {
+
+ return ((KnowledgeCommandContext) context).getKnowledgeBase();
+ }
+
+ public String toString() {
+ return "context.getRuleBase();";
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/main/resources/org/drools/directoryNodeService.groovy 2010-09-23 15:22:05 UTC (rev 35250)
@@ -5,10 +5,10 @@
deployment(name:'directoryNodeService', debug: 'true') {
- logging {
- logger 'org.rioproject.resolver', Level.ALL
- logger 'org.rioproject.associsations' , Level.ALL
- }
+ // logging {
+ // logger 'org.rioproject.resolver', Level.ALL
+ // logger 'org.rioproject.associsations' , Level.ALL
+ //}
/* Configuration for the discovery group that the service should join.
* This first checks if the org.rioproject.groups property is set, if not
* the user name is used */
@@ -17,16 +17,17 @@
/* Declares the artifacts required for deployment. Note the 'dl'
* classifier used for the 'download' jar */
+ artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
artifact id:'service-dir', 'org.drools:drools-grid-distributed-dir-rio:5.2.0.SNAPSHOT'
artifact id:'service-dir-dl', 'org.drools:drools-grid-distributed-dir-rio:dl:5.2.0.SNAPSHOT'
- // artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
- // artifact id:'service-dl', 'org.drools:drools-grid-distributed-rio:dl:5.2.0.SNAPSHOT'
+ artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
+ artifact id:'service-dl', 'org.drools:drools-grid-distributed-rio:dl:5.2.0.SNAPSHOT'
/*
* Declare the service to be deployed. The number of instances deployed
* defaults to 1. If you require > 1 instances change as needed
*/
- service(name: 'DirectoryNodeService') {
+ service(name: 'DirectoryNodeService', fork: 'no') {
interfaces {
classes 'org.drools.grid.DirectoryNodeService'
artifact ref:'service-dir-dl'
@@ -35,10 +36,10 @@
artifact ref:'service-dir'
}
- association (name:'ExecutionNodeService', type:'uses', property:'executionNodes')
+ association(name:'ExecutionNodeService', type:'requires', property:'executionNodes', serviceType: 'org.drools.grid.ExecutionNodeService')
maintain 1
}
-
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-dir-rio/src/test/resources/org/drools/directoryNodeServiceTest.groovy 2010-09-23 15:22:05 UTC (rev 35250)
@@ -17,6 +17,7 @@
/* Declares the artifacts required for deployment. Note the 'dl'
* classifier used for the 'download' jar */
+ artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
artifact id:'service-dir', 'org.drools:drools-grid-distributed-dir-rio:5.2.0.SNAPSHOT'
artifact id:'service-dir-dl', 'org.drools:drools-grid-distributed-dir-rio:dl:5.2.0.SNAPSHOT'
artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
@@ -53,5 +54,6 @@
maintain 1
}
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/pom.xml 2010-09-23 15:22:05 UTC (rev 35250)
@@ -47,7 +47,6 @@
<groupId>org.drools</groupId>
<artifactId>drools-grid-distributed-dir-rio</artifactId>
<version>5.2.0.SNAPSHOT</version>
- <scope>test</scope>
</dependency>
<!-- RIO Runtime -->
@@ -104,7 +103,8 @@
<topclasses>
<topclass>org.drools.grid.ExecutionNodeService</topclass>
<topclass>org.drools.grid.DirectoryNodeService</topclass>
- <topclass>org.drools.grid.distributed.RioNodeConnector</topclass>
+ <topclass>org.drools.grid.distributed.connectors.DistributedRioNodeConnector</topclass>
+ <topclass>org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector</topclass>
<topclass>org.drools.grid.distributed.util.IDEntry</topclass>
<topclass>org.drools.grid.distributed.util.RioResourceLocator</topclass>
<topclass>org.drools.grid.distributed.command.NewStatefulKnowledgeSessionGridCommand</topclass>
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/java/org/drools/grid/distributed/impl/DistributedRioNodeConnector.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -1,163 +0,0 @@
-package org.drools.grid.distributed.impl;
-
-import java.io.IOException;
-import java.net.SocketAddress;
-import java.rmi.RemoteException;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.drools.SystemEventListener;
-import org.drools.grid.ConnectorException;
-import org.drools.grid.ConnectorType;
-import org.drools.grid.GenericConnection;
-import org.drools.grid.NodeConnectionType;
-import org.drools.grid.internal.Message;
-import org.drools.grid.internal.MessageResponseHandler;
-import org.drools.grid.ExecutionNodeService;
-import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.GridConnection;
-import org.drools.grid.distributed.DistributedConnectionNode;
-import org.drools.grid.distributed.util.RioResourceLocator;
-
-public class DistributedRioNodeConnector
- implements GenericNodeConnector {
-
- protected final String name;
- protected AtomicInteger counter;
- protected ExecutionNodeService executionNodeService;
- protected SocketAddress address;
- protected SystemEventListener eventListener;
- protected GenericConnection connection;
- protected String executionNodeId;
-
- public DistributedRioNodeConnector(String name,
- SystemEventListener eventListener) {
- if (name == null) {
- throw new IllegalArgumentException("Name can not be null");
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.eventListener = eventListener;
- this.connection = new GridConnection();
-
- }
-
-
-
- public DistributedRioNodeConnector(String name,
- SystemEventListener eventListener,
- ExecutionNodeService executionNodeService) {
- if (name == null) {
- throw new IllegalArgumentException("Name can not be null");
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.eventListener = eventListener;
- this.executionNodeService = executionNodeService;
- this.connection = new GridConnection();
-
- }
-
- public DistributedRioNodeConnector(String name,
- SystemEventListener eventListener,
- String executionNodeId) {
- if (name == null) {
- throw new IllegalArgumentException("Name can not be null");
- }
- this.name = name;
- this.counter = new AtomicInteger();
- this.eventListener = eventListener;
- this.connection = new GridConnection();
- this.executionNodeId = executionNodeId;
-
- }
-
-
- public Message write(Message msg) throws ConnectorException, RemoteException {
- connect();
- if (executionNodeService != null) {
-
-
- Message returnMessage = this.executionNodeService.write(msg);
- return returnMessage;
-
-
- }
- throw new IllegalStateException("executionNode should not be null");
- }
-
- public void write(Message msg,
- MessageResponseHandler responseHandler) {
- throw new UnsupportedOperationException();
- }
-
- public String getId() throws ConnectorException, RemoteException {
-
- return executionNodeService.getId();
-
-
- }
-
- public void setExecutionNodeService(ExecutionNodeService executionNode) {
- this.executionNodeService = executionNode;
-
-
- }
-
- public ExecutionNodeService getExecutionNodeService() {
- return executionNodeService;
- }
-
-
-
- public void connect() throws ConnectorException {
- if(this.executionNodeService != null){
- return;
- }
- if( !this.executionNodeId.equals("")){
- try {
- this.executionNodeService = RioResourceLocator.locateExecutionNodeById(this.executionNodeId);
- } catch (IOException ex) {
- Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
- }
- }else{
- try {
- this.executionNodeService = RioResourceLocator.locateExecutionNodes().get(0);
- } catch (IOException ex) {
- Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(DistributedRioNodeConnector.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
-
- }
-
- public void disconnect() throws ConnectorException {
- //I don't need to be disconected
- }
-
- public GenericConnection getConnection() {
- return this.connection;
- }
-
- public NodeConnectionType getNodeConnectionType() throws ConnectorException {
- return new DistributedConnectionNode();
- }
-
- public ConnectorType getConnectorType() {
- return ConnectorType.DISTRIBUTED;
- }
-
- public int getSessionId() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public AtomicInteger getCounter() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
-
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/main/resources/org/drools/executionNodeService.groovy 2010-09-23 15:22:05 UTC (rev 35250)
@@ -20,6 +20,7 @@
/* Declares the artifacts required for deployment. Note the 'dl'
* classifier used for the 'download' jar */
+ artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
artifact id:'service-dl', 'org.drools:drools-grid-distributed-rio:dl:5.2.0.SNAPSHOT'
@@ -27,7 +28,7 @@
* Declare the service to be deployed. The number of instances deployed
* defaults to 1. If you require > 1 instances change as needed
*/
- service(name: 'ExecutionNodeService', fork: 'yes') { //fork yes, works only in unix machines
+ service(name: 'ExecutionNodeService', fork: 'no') { //fork yes, works only in unix machines
interfaces {
classes 'org.drools.grid.ExecutionNodeService'
artifact ref:'service-dl'
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/java/org/drools/grid/distributed/ITGridExecutionTest.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -9,9 +9,9 @@
import net.jini.core.lookup.ServiceItem;
import org.drools.SystemEventListenerFactory;
-import org.drools.distributed.directory.impl.DistributedRioDirectoryConnector;
+import org.drools.grid.distributed.connectors.DistributedRioDirectoryConnector;
import org.drools.grid.DirectoryNodeService;
-import org.drools.grid.distributed.impl.DistributedRioNodeConnector;
+import org.drools.grid.distributed.connectors.DistributedRioNodeConnector;
import org.junit.After;
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-distributed-rio/src/test/resources/org/drools/executionNodeServiceTest.groovy 2010-09-23 15:22:05 UTC (rev 35250)
@@ -19,6 +19,7 @@
/* Declares the artifacts required for deployment. Note the 'dl'
* classifier used for the 'download' jar */
+ artifact id:'api', 'org.drools:drools-grid-distributed-api:5.2.0.SNAPSHOT'
artifact id:'service-dir', 'org.drools:drools-grid-distributed-dir-rio:5.2.0.SNAPSHOT'
artifact id:'service-dir-dl', 'org.drools:drools-grid-distributed-dir-rio:dl:5.2.0.SNAPSHOT'
artifact id:'service', 'org.drools:drools-grid-distributed-rio:5.2.0.SNAPSHOT'
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-09-23 15:21:02 UTC (rev 35249)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-09-23 15:22:05 UTC (rev 35250)
@@ -110,8 +110,10 @@
environment );
try {
+ connector.connect();
this.executionEnvironmentsByConnectorId.put( connector.getId(),
environment.getName() );
+ connector.disconnect();
} catch ( ConnectorException ex ) {
Logger.getLogger( GridTopology.class.getName() ).log( Level.SEVERE,
null,
More information about the jboss-svn-commits
mailing list