[jboss-svn-commits] JBL Code SVN: r35981 - in labs/jbossrules/trunk: drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace and 14 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Nov 15 15:27:58 EST 2010
Author: mark.proctor at jboss.com
Date: 2010-11-15 15:27:56 -0500 (Mon, 15 Nov 2010)
New Revision: 35981
Added:
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsGridTest.java
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/grid.xml
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConnectorFactoryService.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnectorFactoryService.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupImpl.java
Removed:
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesWhitePagesImpl.java
Modified:
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridBeanFactory.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridNodeBeanFactory.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridDefinitionParser.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridNodeDefinitionParser.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/KnowledgeSessionDefinitionParser.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.2.0.xsd
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/conf/impl/GridNodeSocketConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/ConnectionFactoryServiceImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/GridImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/internal/responsehandlers/BlockingMessageResponseHandler.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/Conversation.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConversationManager.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/CommandImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationManagerImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/MessageImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/ConversationUtil.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/GridNodeRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/RemoteGridNodeConnection.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnector.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesRemoteConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesServer.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesSocketConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/RegisterSchedulerConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerImpl.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/grid/NodeTests.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/MinaTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/RemoteWhitePagesTest.java
labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/WhitePagesTest.java
Log:
JBRULES-2746 Drools Grid Impl2
-Spring XML now supports Grid configuration
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridBeanFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridBeanFactory.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridBeanFactory.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -16,16 +16,31 @@
package org.drools.container.spring.beans;
-
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.drools.SystemEventListenerFactory;
+import org.drools.container.spring.beans.StatefulKnowledgeSessionBeanFactory.JpaConfiguration;
import org.drools.grid.Grid;
import org.drools.grid.GridConnection;
+import org.drools.grid.SocketService;
+import org.drools.grid.conf.GridPeerServiceConfiguration;
+import org.drools.grid.conf.impl.GridPeerConfiguration;
import org.drools.grid.impl.GridImpl;
+import org.drools.grid.impl.MultiplexSocketServerImpl;
+import org.drools.grid.io.AcceptorFactoryService;
+import org.drools.grid.io.impl.MultiplexSocketServiceCongifuration;
+import org.drools.grid.remote.mina.MinaAcceptorFactoryService;
import org.drools.grid.service.directory.WhitePages;
+import org.drools.grid.service.directory.impl.CoreServicesLookupConfiguration;
import org.drools.grid.service.directory.impl.WhitePagesImpl;
+import org.drools.grid.service.directory.impl.WhitePagesLocalConfiguration;
+import org.mvel2.optimizers.impl.refl.nodes.ArrayLength;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
+import org.springframework.util.StringUtils;
/**
*
@@ -37,15 +52,25 @@
FactoryBean,
InitializingBean {
- private String id;
- private GridImpl grid;
-// private String type;
-// private GenericConnection connection;
-//
+ private String id;
+ private GridImpl grid;
+
+ private Map coreServices;
+
+ private WhitePages whitePages;
+
+ private JpaConfiguration jpaConfiguration;
+
+ private SocketServiceConfiguration socketServiceConfiguration ;
+
+ // private String type;
+ // private GenericConnection connection;
+ //
public Object getObject() throws Exception {
return this.grid;
}
-//
+
+ //
public Class<Grid> getObjectType() {
return Grid.class;
}
@@ -55,12 +80,57 @@
}
public void afterPropertiesSet() throws Exception {
- this.grid = new GridImpl( new HashMap<String, Object>() );
- ((GridImpl)this.grid).addService( WhitePages.class, new WhitePagesImpl() );
+ this.grid = new GridImpl( new HashMap() );
+ MultiplexSocketServiceCongifuration socketConf = null;
-// connection = new GridConnection();
-// connection.addExecutionNode(new LocalNodeConnector());
-// connection.addDirectoryNode(new LocalDirectoryConnector());
+ if ( this.coreServices == null ) {
+ this.coreServices = new HashMap();
+ }
+
+ GridPeerConfiguration conf = new GridPeerConfiguration();
+ GridPeerServiceConfiguration coreSeviceLookupConf = new CoreServicesLookupConfiguration( this.coreServices );
+ conf.addConfiguration( coreSeviceLookupConf );
+
+ //Configuring the WhitePages
+ if ( this.whitePages != null ) {
+ WhitePagesLocalConfiguration wplConf = new WhitePagesLocalConfiguration();
+ wplConf.setWhitePages( this.whitePages );
+ conf.addConfiguration( wplConf );
+ }
+
+ conf.configure( this.grid );
+
+ // We do this after the main grid configuration, to make sure all services are instantiated
+ if ( this.socketServiceConfiguration != null ) {
+ AcceptorFactoryService acc = null;
+ if ( "mina".equals( this.socketServiceConfiguration.getAcceptor() ) ) {
+ acc = new MinaAcceptorFactoryService();
+ }
+
+ if ( acc == null ) {
+ // Mina is the default for the moment
+ acc = new MinaAcceptorFactoryService();
+ }
+
+ socketConf = new MultiplexSocketServiceCongifuration( new MultiplexSocketServerImpl( this.socketServiceConfiguration.getIp(),
+ acc,
+ SystemEventListenerFactory.getSystemEventListener(),
+ this.grid) );
+
+ for (String[] services : this.socketServiceConfiguration.getServices() ) {
+ Object service = ((GridImpl)this.grid).get( services[0].trim() );
+ if ( service == null ) {
+ throw new RuntimeException( "Unable to configure socket. Service '" + services[0] + "' could not be found" );
+ }
+ if ( "auto".equals( services[1].trim() ) ) {
+
+ } else {
+ socketConf.addService( services[0].trim(), service, Integer.parseInt( services[1].trim() ) );
+ }
+ }
+
+ socketConf.configureService( this.grid );
+ }
}
public void setId(String id) {
@@ -71,12 +141,70 @@
return id;
}
-// public void setType(String type) {
-// this.type = type;
-// }
-//
-// public String getType() {
-// return type;
-// }
+ public WhitePages getWhitePages() {
+ return whitePages;
+ }
+ public void setWhitePages(WhitePages whitePages) {
+ this.whitePages = whitePages;
+ }
+
+ public Map getCoreServices() {
+ return coreServices;
+ }
+
+ public void setCoreServices(Map coreServices) {
+ this.coreServices = coreServices;
+ }
+
+ public JpaConfiguration getJpaConfiguration() {
+ return jpaConfiguration;
+ }
+
+ public void setJpaConfiguration(JpaConfiguration jpaConfiguration) {
+ this.jpaConfiguration = jpaConfiguration;
+ }
+
+
+ public SocketServiceConfiguration getSocketServiceConfiguration() {
+ return socketServiceConfiguration;
+ }
+
+ public void setSocketServiceConfiguration(SocketServiceConfiguration socketServiceConfiguration) {
+ this.socketServiceConfiguration = socketServiceConfiguration;
+ }
+
+ public static class SocketServiceConfiguration {
+ private String ip;
+ private String acceptor;
+ private List<String[]> services;
+
+ public String getIp() {
+ return ip;
+ }
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+ public String getAcceptor() {
+ return acceptor;
+ }
+ public void setAcceptor(String acceptor) {
+ this.acceptor = acceptor;
+ }
+
+ public List<String[]> getServices() {
+ if ( this.services == null ) {
+ this.services = new ArrayList<String[]>();
+ }
+ return services;
+ }
+
+ public void setServices(List<String[]> services) {
+ this.services = services;
+ }
+
+
+
+ }
+
}
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridNodeBeanFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridNodeBeanFactory.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/GridNodeBeanFactory.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -21,11 +21,13 @@
import org.drools.grid.Grid;
import org.drools.grid.GridConnection;
import org.drools.grid.GridNode;
+import org.drools.grid.SocketService;
import org.drools.grid.impl.GridImpl;
import org.drools.grid.service.directory.WhitePages;
import org.drools.grid.service.directory.impl.WhitePagesImpl;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
+import org.springframework.util.StringUtils;
/**
*
@@ -40,6 +42,8 @@
private String id;
private Grid grid;
private GridNode node;
+
+ private String port;
//
public Object getObject() throws Exception {
@@ -63,6 +67,10 @@
new WhitePagesImpl() );
}
this.node = this.grid.createGridNode( id );
+
+ if ( StringUtils.hasText( this.port ) ) {
+ this.grid.get( SocketService.class ).addService( id, Integer.parseInt( port ), this.node );
+ }
// connection.addExecutionNode(new LocalNodeConnector());
// connection.addDirectoryNode(new LocalDirectoryConnector());
// node = connection.getExecutionNode();
@@ -86,4 +94,14 @@
this.grid = grid;
}
+ public String getPort() {
+ return port;
+ }
+
+ public void setPort(String port) {
+ this.port = port;
+ }
+
+
+
}
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridDefinitionParser.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridDefinitionParser.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridDefinitionParser.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -16,12 +16,32 @@
package org.drools.container.spring.namespace;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.command.runtime.SetGlobalCommand;
+import org.drools.command.runtime.rule.InsertObjectCommand;
import org.drools.container.spring.beans.GridBeanFactory;
+import org.drools.container.spring.beans.GridBeanFactory.SocketServiceConfiguration;
+import org.drools.container.spring.beans.StatefulKnowledgeSessionBeanFactory.JpaConfiguration;
+import org.drools.grid.impl.MultiplexSocketServerImpl;
+import org.drools.grid.io.AcceptorFactoryService;
+import org.drools.grid.io.impl.MultiplexSocketServiceCongifuration;
+import org.drools.grid.remote.mina.MinaAcceptorFactoryService;
+import org.drools.grid.service.directory.impl.JpaWhitePages;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.util.StringUtils;
+import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
/**
*
@@ -29,6 +49,8 @@
*
*/
public class GridDefinitionParser extends AbstractBeanDefinitionParser {
+
+ private static final String EMF_ATTRIBUTE = "entity-manager-factory";
protected AbstractBeanDefinition parseInternal(Element element,
ParserContext parserContext) {
@@ -39,6 +61,91 @@
factory.addPropertyValue( "id",
id );
+ for (int i = 0, length = element.getChildNodes().getLength(); i < length; i++) {
+ Node n = element.getChildNodes().item( i );
+ if ( n instanceof Element ) {
+ Element e = ( Element ) n;
+
+ if ( "core-services".equals( e.getLocalName() ) ) {
+ String ref = e.getAttribute( "ref" );
+ Element nestedElm = getFirstElement( e.getChildNodes() );
+
+ if ( StringUtils.hasText( ref ) ) {
+ factory.addPropertyReference( "coreServices", ref );
+ } else if ( nestedElm != null ) {
+ factory.addPropertyValue( "coreServices", parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null) );
+ } else {
+ throw new IllegalArgumentException( "set-global must either specify a 'ref' attribute or have a nested bean" );
+ }
+ } else if ( "whitepages".equals( e.getLocalName() ) ) {
+ Element persistenceElm = DomUtils.getChildElementByTagName(e, "jpa-persistence");
+ if ( persistenceElm != null) {
+ BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder.genericBeanDefinition( JpaWhitePages.class );
+
+ Element emf = DomUtils.getChildElementByTagName(persistenceElm, EMF_ATTRIBUTE);
+ String ref = emf.getAttribute( "ref" );
+
+ beanBuilder.addConstructorArgReference( ref );
+ factory.addPropertyValue( "whitePages", beanBuilder.getBeanDefinition() );
+ } else {
+ String ref = e.getAttribute( "ref" );
+ Element nestedElm = getFirstElement( e.getChildNodes() );
+
+ if ( StringUtils.hasText( ref ) ) {
+ factory.addPropertyReference( "whitePages", ref );
+ } else if ( nestedElm != null ) {
+ factory.addPropertyValue( "whitePages", parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null) );
+ }
+ }
+ } else if ( "socket-service".equals( e.getLocalName() ) ) {
+ String acceptor = e.getAttribute( "acceptor" );
+ String ip = e.getAttribute( "ip" );
+
+ AcceptorFactoryService acc = null;
+ if ( StringUtils.hasText( acceptor ) ) {
+ if ( "mina".equals( acceptor )) {
+ acc = new MinaAcceptorFactoryService();
+ }
+ }
+
+ if ( acc == null ) {
+ acc = new MinaAcceptorFactoryService();
+ }
+
+ if ( !StringUtils.hasText( ip ) ) {
+ try {
+ ip = InetAddress.getLocalHost().getHostAddress();
+ } catch ( UnknownHostException e1 ) {
+ throw new RuntimeException( "socket-service did not specify an ip address and one could not be determined", e1 );
+ }
+ }
+
+ if ( !StringUtils.hasText( ip ) ) {
+ throw new RuntimeException( "socket-service did not specify an ip address and one could not be determined" );
+ }
+
+ BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder.genericBeanDefinition( SocketServiceConfiguration.class );
+ beanBuilder.addPropertyValue( "ip", ip );
+ beanBuilder.addPropertyValue( "acceptor", acceptor );
+
+ //e.getChildNodes()
+ List<String[]> services = new ArrayList<String[]>();
+ for (int j = 0, serviceLength = e.getChildNodes().getLength(); j < serviceLength; j++) {
+ Node e2 = e.getChildNodes().item( j );
+ if ( e2 instanceof Element && "service".equals(((Element)e2).getLocalName())) {
+ Element se = ( Element ) e2;
+ String name = se.getAttribute( "name" );
+ String port = se.getAttribute( "port" );
+ services.add( new String[] { name, port } );
+ }
+ }
+ beanBuilder.addPropertyValue( "services", services );
+ factory.addPropertyValue( "socketServiceConfiguration", beanBuilder.getBeanDefinition() );
+ }
+
+ }
+ }
+
return factory.getBeanDefinition();
}
@@ -49,5 +156,14 @@
throw new IllegalArgumentException( "<" + element + "> requires a '" + attributeName + "' attribute" );
}
}
+
+ private Element getFirstElement(NodeList list) {
+ for (int j = 0, lengthj = list.getLength(); j < lengthj; j++) {
+ if ( list.item( j ) instanceof Element ) {
+ return ( Element ) list.item( j );
+ }
+ }
+ return null;
+ }
}
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridNodeDefinitionParser.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridNodeDefinitionParser.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/GridNodeDefinitionParser.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -23,6 +23,7 @@
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.util.StringUtils;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
/**
*
@@ -32,6 +33,7 @@
public class GridNodeDefinitionParser extends AbstractBeanDefinitionParser {
private static final String GRID_ATTRIBUTE = "grid";
+ private static final String PORT_ATTRIBUTE = "port";
@Override
protected AbstractBeanDefinition parseInternal(Element element,
@@ -48,7 +50,20 @@
factory.addPropertyReference( GRID_ATTRIBUTE,
connectionRef );
}
-
+
+ for (int i = 0, length = element.getChildNodes().getLength(); i < length; i++) {
+ Node n = element.getChildNodes().item( i );
+ if ( n instanceof Element ) {
+ Element e = ( Element ) n;
+
+ if ( "socket-service".equals( e.getLocalName() ) ) {
+ String port = e.getAttribute( PORT_ATTRIBUTE );
+ if ( StringUtils.hasText( port ) ) {
+ factory.addPropertyValue( "port", port );
+ }
+ }
+ }
+ }
return factory.getBeanDefinition();
}
}
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/KnowledgeSessionDefinitionParser.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/KnowledgeSessionDefinitionParser.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/KnowledgeSessionDefinitionParser.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -199,7 +199,7 @@
if ( StringUtils.hasText( ref ) ) {
beanBuilder.addConstructorArgReference( ref );
} else if ( nestedElm != null ) {
- beanBuilder.addConstructorArgValue( parserContext.getDelegate().parseBeanDefinitionElement( nestedElm ) );
+ beanBuilder.addConstructorArgValue( parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null) );
} else {
throw new IllegalArgumentException( "insert-object must either specify a 'ref' attribute or have a nested bean" );
}
@@ -211,7 +211,7 @@
if ( StringUtils.hasText( ref ) ) {
beanBuilder.addConstructorArgReference( ref );
} else if ( nestedElm != null ) {
- beanBuilder.addConstructorArgValue( parserContext.getDelegate().parseBeanDefinitionElement( nestedElm ) );
+ beanBuilder.addConstructorArgValue( parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null) );
} else {
throw new IllegalArgumentException( "set-global must either specify a 'ref' attribute or have a nested bean" );
}
@@ -246,7 +246,7 @@
if ( StringUtils.hasText( ref ) ) {
map.put( identifier, new RuntimeBeanReference( ref) );
} else if ( nestedElm != null ) {
- map.put( identifier, parserContext.getDelegate().parseBeanDefinitionElement( nestedElm ) );
+ map.put( identifier, parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null) );
} else {
throw new IllegalArgumentException( "start-process paramaters must either specify a 'ref' attribute or have a nested bean" );
}
@@ -267,7 +267,7 @@
if ( StringUtils.hasText( ref ) ) {
beanBuilder.addConstructorArgReference( ref );
} else if ( nestedElm != null ) {
- beanBuilder.addConstructorArgValue( parserContext.getDelegate().parseBeanDefinitionElement( nestedElm ) );
+ beanBuilder.addConstructorArgValue( parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null) );
} else {
throw new IllegalArgumentException( "signal-event must either specify a 'ref' attribute or have a nested bean" );
}
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.2.0.xsd
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.2.0.xsd 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.2.0.xsd 2010-11-15 20:27:56 UTC (rev 35981)
@@ -6,13 +6,57 @@
attributeFormDefault="unqualified">
<xsd:element name="grid">
- <xsd:complexType>
- <xsd:attribute name="id" use="required" type="xsd:ID"/>
- </xsd:complexType>
+ <xsd:complexType>
+ <xsd:all minOccurs="0">
+ <xsd:element name="core-services" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="whitepages" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element ref="persistence" minOccurs="0" maxOccurs="1"/>
+ <xsd:any minOccurs="0" maxOccurs="1" />
+ </xsd:choice>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="socket-service" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="service" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:attribute name="name" use="required" type="xsd:string"/>
+ <xsd:attribute name="port" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="acceptor" use="optional" type="xsd:string"/>
+ <xsd:attribute name="ip" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ </xsd:all>
+ <xsd:attribute name="id" use="required" type="xsd:ID"/>
+ </xsd:complexType>
</xsd:element>
<xsd:element name="grid-node">
<xsd:complexType>
+ <xsd:all>
+ <xsd:element name="socket-service" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:attribute name="port" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ </xsd:all>
<xsd:attribute name="id" use="required" type="xsd:ID"/>
<xsd:attribute name="grid" use="optional" type="xsd:string"/>
</xsd:complexType>
@@ -337,9 +381,9 @@
<xsd:extension base="persistenceType">
<xsd:all>
<xsd:element name="variable-persisters" type="variablePersistersType" minOccurs="0" maxOccurs="1"/>
- <xsd:element name="transaction-manager" minOccurs="1" maxOccurs="1">
+ <xsd:element name="transaction-manager" minOccurs="0" maxOccurs="1">
<xsd:complexType>
- <xsd:attribute name="ref" use="required" type="xsd:string"/>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="entity-manager-factory" minOccurs="1" maxOccurs="1">
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsGridTest.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsGridTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsGridTest.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -0,0 +1,167 @@
+/**
+ * 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.container.spring;
+
+import static org.junit.Assert.fail;
+
+import java.io.Serializable;
+import java.util.HashMap;
+
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import junit.framework.TestCase;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.builder.ResourceType;
+import org.drools.container.spring.beans.persistence.JPASingleSessionCommandServiceFactoryTest;
+import org.drools.grid.ConnectionFactoryService;
+import org.drools.grid.Grid;
+import org.drools.grid.GridConnection;
+import org.drools.grid.GridNode;
+import org.drools.grid.GridServiceDescription;
+import org.drools.grid.SocketService;
+import org.drools.grid.NodeTests.MyObject;
+import org.drools.grid.impl.GridImpl;
+import org.drools.grid.service.directory.WhitePages;
+import org.drools.grid.service.directory.impl.JpaWhitePages;
+import org.drools.grid.service.directory.impl.WhitePagesClient;
+import org.drools.grid.service.directory.impl.WhitePagesImpl;
+import org.drools.io.impl.ByteArrayResource;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.rule.FactHandle;
+import org.h2.tools.DeleteDbFiles;
+import org.h2.tools.Server;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class SpringDroolsGridTest extends TestCase {
+
+ public void test1() {
+ EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.drools.grid" );
+ WhitePages wp = new JpaWhitePages( emf );
+
+ wp.create( "s1" );
+ wp.create( "s2" );
+ wp.create( "s3" );
+ }
+
+
+ public void testGrid() throws Exception {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/drools/container/spring/grid.xml" );
+
+ Grid grid1 = (Grid) context.getBean( "grid1" );
+ assertTrue( grid1.get( WhitePages.class ) instanceof JpaWhitePages );
+
+ Grid grid2 = (Grid) context.getBean( "grid2" );
+ assertTrue( grid2.get( WhitePages.class ) instanceof WhitePagesClient );
+
+ Grid grid3 = (Grid) context.getBean( "grid3" );
+ assertTrue( grid3.get( WhitePages.class ) instanceof WhitePagesImpl );
+
+ GridServiceDescription<GridNode> n1Gsd = grid2.get( WhitePages.class ).lookup( "node1" );
+ GridConnection<GridNode> conn = grid2.get( ConnectionFactoryService.class ).createConnection( n1Gsd );
+ GridNode remoteN1 = conn.connect();
+
+ KnowledgeBuilder kbuilder = remoteN1.get( KnowledgeBuilderFactoryService.class ).newKnowledgeBuilder();
+
+ Assert.assertNotNull( kbuilder );
+
+ String rule = "package test\n"
+ + "import org.drools.container.spring.SpringDroolsGridTest.MyObject;\n"
+ + "global MyObject myGlobalObj;\n"
+ + "rule \"test\""
+ + " when"
+ + " $o: MyObject()"
+ + " then"
+ + " System.out.println(\"My Global Object -> \"+myGlobalObj.getName());"
+ + " System.out.println(\"Rule Fired! ->\"+$o.getName());"
+ + " end";
+
+ kbuilder.add( new ByteArrayResource( rule.getBytes() ),
+ ResourceType.DRL );
+
+ KnowledgeBuilderErrors errors = kbuilder.getErrors();
+ if ( errors != null && errors.size() > 0 ) {
+ for ( KnowledgeBuilderError error : errors ) {
+ System.out.println( "Error: " + error.getMessage() );
+
+ }
+ fail( "KnowledgeBase did not build" );
+ }
+
+ KnowledgeBase kbase = remoteN1.get( KnowledgeBaseFactoryService.class ).newKnowledgeBase();
+
+ Assert.assertNotNull( kbase );
+
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
+
+ Assert.assertNotNull( session );
+ session.setGlobal( "myGlobalObj",
+ new MyObject( "myGlobalObj" ) );
+
+ FactHandle handle = session.insert( new MyObject( "myObj1" ) );
+ Assert.assertNotNull( handle );
+
+ int fired = session.fireAllRules();
+ Assert.assertEquals( 1,
+ fired );
+
+ session.retract( handle );
+
+ handle = session.insert( new MyObject( "myObj2" ) );
+
+ session.update( handle,
+ new MyObject( "myObj3" ) );
+
+ fired = session.fireAllRules();
+
+ remoteN1.dispose();
+ grid1.get( SocketService.class ).close();
+ }
+
+ public static class MyObject
+ implements
+ Serializable {
+ private String name;
+
+ public MyObject(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ }
+
+}
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/grid.xml
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/grid.xml (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/grid.xml 2010-11-15 20:27:56 UTC (rev 35981)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:drools="http://drools.org/schema/drools-spring"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://drools.org/schema/drools-spring org/drools/container/spring/drools-spring-1.2.0.xsd
+ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+ <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
+ <!-- org.h2.jdbcx.JdbcDataSource -->
+ <property name="driverClassName" value="org.h2.Driver" />
+ <property name="url" value="jdbc:h2:mem:mydb" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
+ </bean>
+
+ <bean id="myEmf" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
+ <property name="persistenceUnitName" value="org.drools.grid"/>
+ </bean>
+
+ <!--bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+ <property name="dataSource" ref="ds" />
+ <property name="persistenceUnitName" value="org.drools.grid" />
+ <property name="hibernateProperties">
+ <value>
+ hibernate.dialect=org.hibernate.dialect.MySQLDialect
+ hibernate.show_sql=true
+
+ hibernate.dialect=org.hibernate.dialect.H2Dialect
+ hibernate.connection.driver_class="org.h2.Driver
+ hibernate.connection.url=jdbc:h2:mem:mydb
+ hibernate.connection.username=sa
+ hibernate.connection.password=sasa
+ hibernate.connection.autocommit=false
+ hibernate.max_fetch_depth=3
+ hibernate.hbm2ddl.auto=create
+ hibernate.show_sql=true
+ </value>
+ </property>
+ </bean-->
+
+ <bean id="shared-map" class="java.util.HashMap" />
+
+ <bean id="localWhitePages" class="org.drools.grid.service.directory.impl.WhitePagesImpl" />
+
+ <drools:grid id="grid1">
+ <drools:core-services ref="shared-map" />
+
+ <drools:whitepages>
+ <drools:jpa-persistence>
+ <drools:entity-manager-factory ref="myEmf" />
+ </drools:jpa-persistence>
+ </drools:whitepages>
+
+ <drools:socket-service acceptor="mina" ip="127.0.0.1">
+ <drools:service name="org.drools.grid.service.directory.WhitePages" port="8000" />
+ </drools:socket-service>
+ </drools:grid>
+
+
+ <drools:grid id="grid2">
+ <drools:core-services ref="shared-map" />
+ </drools:grid>
+
+
+ <drools:grid id="grid3">
+ <drools:whitepages ref="localWhitePages" />
+ </drools:grid>
+
+
+ <drools:grid-node id="node1" grid="grid1">
+ <drools:socket-service port="8000" />
+ </drools:grid-node>
+
+ <drools:grid-node id="node2" />
+
+
+</beans>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/conf/impl/GridNodeSocketConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/conf/impl/GridNodeSocketConfiguration.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/conf/impl/GridNodeSocketConfiguration.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -29,7 +29,7 @@
GridNode gnode = grid.get( GridNode.class );
if ( port != -1 ) {
- CoreServicesWhitePagesImpl coreServicesWP = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
+ CoreServicesLookupImpl coreServicesWP = (CoreServicesLookupImpl) grid.get( CoreServicesLookup.class );
GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServicesWP.lookup( GridNode.class );
if ( gsd == null ) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/ConnectionFactoryServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/ConnectionFactoryServiceImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/ConnectionFactoryServiceImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -33,7 +33,8 @@
}
if ( conn == null ) {
- conn = new RemoteGridNodeConnection( gsd );
+ conn = new RemoteGridNodeConnection( this.grid,
+ gsd );
}
return conn;
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/GridImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/GridImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/impl/GridImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -10,6 +10,8 @@
import javax.net.SocketFactory;
+import org.drools.SystemEventListener;
+import org.drools.SystemEventListenerFactory;
import org.drools.grid.ConnectionFactoryService;
import org.drools.grid.Grid;
import org.drools.grid.GridNode;
@@ -17,8 +19,14 @@
import org.drools.grid.GridServiceDescription;
import org.drools.grid.SocketService;
import org.drools.grid.conf.GridPeerServiceConfiguration;
+import org.drools.grid.io.AcceptorFactoryService;
+import org.drools.grid.io.ConnectorFactoryService;
+import org.drools.grid.io.ConversationManager;
+import org.drools.grid.io.impl.ConversationManagerImpl;
import org.drools.grid.local.LocalGridNodeConnection;
import org.drools.grid.remote.RemoteGridNodeConnection;
+import org.drools.grid.remote.mina.MinaAcceptorFactoryService;
+import org.drools.grid.remote.mina.MinaConnectorFactoryService;
import org.drools.grid.service.directory.Address;
import org.drools.grid.service.directory.WhitePages;
import org.drools.grid.service.directory.impl.GridServiceDescriptionImpl;
@@ -51,13 +59,20 @@
}
private void init() {
+ // TODO hardcoding these for now, should probably be configured
+ SystemEventListener listener = SystemEventListenerFactory.getSystemEventListener();
+ this.services.put( SystemEventListener.class.getName(), listener );
+ this.services.put( AcceptorFactoryService.class.getName(), new MinaAcceptorFactoryService() );
+ this.services.put( ConnectorFactoryService.class.getName(), new MinaConnectorFactoryService() );
+ this.services.put( ConversationManager.class.getName(), new ConversationManagerImpl( this, listener ) );
+
ConnectionFactoryService conn = new ConnectionFactoryServiceImpl(this);
- this.services.put( ConnectionFactoryService.class.getName(), conn );
+ this.services.put( ConnectionFactoryService.class.getName(), conn );
- this.serviceConfigurators.put( WhitePages.class.getName(), new WhitePagesRemoteConfiguration( null ) );
+ this.serviceConfigurators.put( WhitePages.class.getName(), new WhitePagesRemoteConfiguration( ) );
}
- public Object getX(String str) {
+ public Object get(String str) {
return this.services.get( str );
}
@@ -67,8 +82,10 @@
if ( service == null ) {
// If the service does not exist, it'll lazily create it
GridPeerServiceConfiguration configurator = this.serviceConfigurators.get( serviceClass.getName() );
- configurator.configureService( this );
- service = (T) this.services.get( serviceClass.getName() );
+ if ( configurator != null ) {
+ configurator.configureService( this );
+ service = (T) this.services.get( serviceClass.getName() );
+ }
}
return service;
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/internal/responsehandlers/BlockingMessageResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/internal/responsehandlers/BlockingMessageResponseHandler.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/internal/responsehandlers/BlockingMessageResponseHandler.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -11,7 +11,7 @@
public class BlockingMessageResponseHandler extends AbstractBlockingResponseHandler
implements
MessageReceiverHandler {
- private static final int WAIT_TIME = 60000;
+ private static final int WAIT_TIME = 600000;
private volatile Message message;
Added: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConnectorFactoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConnectorFactoryService.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConnectorFactoryService.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -0,0 +1,5 @@
+package org.drools.grid.io;
+
+public interface ConnectorFactoryService {
+ Connector newConnector();
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/Conversation.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/Conversation.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/Conversation.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -9,5 +9,7 @@
void sendMessage(Object body,
MessageReceiverHandler handler);
+
+ void endConversation();
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConversationManager.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConversationManager.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/ConversationManager.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -6,9 +6,7 @@
import java.net.InetSocketAddress;
public interface ConversationManager {
- Conversation startConversation(InetSocketAddress address,
+ Conversation startConversation(String senderId,
+ InetSocketAddress address,
String recipientId);
-
- void endConversation();
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/CommandImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/CommandImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/CommandImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -9,6 +9,10 @@
private String name;
private List<Object> arguments;
+ public CommandImpl() {
+
+ }
+
public CommandImpl(String name,
List<Object> arguments) {
super();
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -5,6 +5,7 @@
import java.util.concurrent.atomic.AtomicInteger;
+import org.drools.grid.io.Connector;
import org.drools.grid.io.Conversation;
import org.drools.grid.io.ConversationManager;
import org.drools.grid.io.IoWriter;
@@ -15,6 +16,7 @@
implements
Conversation {
+ private Connector conn;
private IoWriter writer;
private String conversationId;
private String senderId;
@@ -25,13 +27,15 @@
private Message receivedMessage;
- public ConversationImpl(String conversationId,
+ public ConversationImpl(Connector conn,
+ String conversationId,
String senderId,
String recipientId,
RequestResponseDispatchListener dispathListener,
IoWriter writer,
ConversationManager conversationManager) {
- this( conversationId,
+ this( conn,
+ conversationId,
senderId,
recipientId,
dispathListener,
@@ -40,14 +44,15 @@
conversationManager );
}
- public ConversationImpl(String conversationId,
+ public ConversationImpl(Connector conn,
+ String conversationId,
String senderId,
String recipientId,
RequestResponseDispatchListener dispathListener,
Message receivedMessage,
IoWriter writer,
ConversationManager conversationManager) {
-
+ this.conn = conn;
this.conversationId = conversationId;
this.senderId = senderId;
this.recipientId = recipientId;
@@ -87,4 +92,8 @@
writer.write( msg );
}
+ public void endConversation() {
+ this.conn.close();
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationManagerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationManagerImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/ConversationManagerImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -7,7 +7,9 @@
import java.util.concurrent.atomic.AtomicLong;
import org.drools.SystemEventListener;
+import org.drools.grid.Grid;
import org.drools.grid.io.Connector;
+import org.drools.grid.io.ConnectorFactoryService;
import org.drools.grid.io.Conversation;
import org.drools.grid.io.ConversationManager;
import org.drools.grid.io.IoWriter;
@@ -16,40 +18,39 @@
public class ConversationManagerImpl
implements
ConversationManager {
-
- private Connector conn;
-
private SystemEventListener systemEventListener;
- private String senderId;
-
private AtomicLong conversationIdCounter;
- public ConversationManagerImpl(String senderId,
- Connector conn,
+ private Grid grid;
+
+ public ConversationManagerImpl(Grid grid,
SystemEventListener systemEventListener) {
- this.conn = conn;
- this.senderId = senderId;
this.conversationIdCounter = new AtomicLong();
this.systemEventListener = systemEventListener;
+ this.grid = grid;
}
- public Conversation startConversation(InetSocketAddress address,
+ public Conversation startConversation(String senderId,
+ InetSocketAddress address,
String recipientId) {
RequestResponseDispatchListener dispathListener = new RequestResponseDispatchListener();
- IoWriter writer = this.conn.open( address,
- dispathListener,
- systemEventListener );
- return new ConversationImpl( Long.toString( this.conversationIdCounter.incrementAndGet() ),
- this.senderId,
+ ConnectorFactoryService cfs = this.grid.get( ConnectorFactoryService.class );
+ if ( cfs == null ) {
+ throw new RuntimeException( "Unable to resolve ConnectorFactoryService" );
+ }
+
+ Connector conn = cfs.newConnector();
+ IoWriter writer = conn.open( address,
+ dispathListener,
+ systemEventListener );
+ return new ConversationImpl( conn,
+ Long.toString( this.conversationIdCounter.incrementAndGet() ),
+ senderId,
recipientId,
dispathListener,
writer,
this );
}
- public void endConversation() {
- this.conn.close();
- }
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/MessageImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/MessageImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/io/impl/MessageImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -16,6 +16,10 @@
private int responseId;
private Object body;
+ public MessageImpl() {
+
+ }
+
public MessageImpl(String conversationId,
String senderId,
String recipientId,
@@ -29,47 +33,54 @@
this.body = body;
}
- // public MessageImpl(String conversationId,
- // Map<String, Integer> contextVars,
- // Object payload) {
- // this.conversationId = conversationId;
- // this.responseId = -1;
- // this.payload = payload;
- // }
-
- /* (non-Javadoc)
- * @see org.drools.grid.io.impl.Message#getSessionId()
- */
public String getConversationId() {
- return this.conversationId;
+ return conversationId;
}
+ public void setConversationId(String conversationId) {
+ this.conversationId = conversationId;
+ }
+
public String getSenderId() {
return senderId;
}
+ public void setSenderId(String senderId) {
+ this.senderId = senderId;
+ }
+
public String getRecipientId() {
return recipientId;
}
- /* (non-Javadoc)
- * @see org.drools.grid.io.impl.Message#getResponseId()
- */
+ public void setRecipientId(String recipientId) {
+ this.recipientId = recipientId;
+ }
+
public int getRequestId() {
- return this.requestId;
+ return requestId;
}
+ public void setRequestId(int requestId) {
+ this.requestId = requestId;
+ }
+
public int getResponseId() {
- return this.responseId;
+ return responseId;
}
- /* (non-Javadoc)
- * @see org.drools.grid.io.impl.Message#getPayload()
- */
+ public void setResponseId(int responseId) {
+ this.responseId = responseId;
+ }
+
public Object getBody() {
- return this.body;
+ return body;
}
+ public void setBody(Object body) {
+ this.body = body;
+ }
+
/* (non-Javadoc)
* @see org.drools.grid.io.impl.Message#toString()
*/
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/ConversationUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/ConversationUtil.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/ConversationUtil.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -28,31 +28,51 @@
* @author salaboy
*/
public class ConversationUtil {
+
public static Object sendMessage(ConversationManager conversationManager,
Serializable addr,
String id,
Object body) {
+ // This method was added to provide a level of backwards compatability
+ // until we have a correct way of setting senderId
+ return sendMessage( conversationManager,
+ "",
+ addr,
+ id,
+ body );
+ }
+
+ public static Object sendMessage(ConversationManager conversationManager,
+ String senderId,
+ Serializable addr,
+ String id,
+ Object body) {
+
InetSocketAddress[] sockets = null;
if ( addr instanceof InetSocketAddress[] ) {
sockets = (InetSocketAddress[]) addr;
} else if ( addr instanceof InetSocketAddress ) {
- sockets = new InetSocketAddress[ 1 ];
+ sockets = new InetSocketAddress[1];
sockets[0] = (InetSocketAddress) addr;
}
BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
Exception exception = null;
+ Conversation conv = null;
for ( InetSocketAddress socket : sockets ) {
try {
- Conversation conv = conversationManager.startConversation( socket,
- id );
+ conv = conversationManager.startConversation( senderId,
+ socket,
+ id );
conv.sendMessage( body,
handler );
exception = null;
} catch ( Exception e ) {
exception = e;
- conversationManager.endConversation();
+ if ( conv != null ) {
+ conv.endConversation();
+ }
}
if ( exception == null ) {
break;
@@ -65,7 +85,7 @@
try {
return handler.getMessage().getBody();
} finally {
- conversationManager.endConversation();
+ conv.endConversation();
}
}
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/GridNodeRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/GridNodeRemoteClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/GridNodeRemoteClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -22,8 +22,11 @@
import org.drools.KnowledgeBaseFactoryService;
import org.drools.SystemEventListenerFactory;
import org.drools.builder.KnowledgeBuilderFactoryService;
+import org.drools.grid.Grid;
import org.drools.grid.GridNode;
import org.drools.grid.GridServiceDescription;
+import org.drools.grid.io.Connector;
+import org.drools.grid.io.ConnectorFactoryService;
import org.drools.grid.io.ConversationManager;
import org.drools.grid.io.impl.ConversationManagerImpl;
import org.drools.grid.remote.mina.MinaConnector;
@@ -39,12 +42,15 @@
GridNode {
private GridServiceDescription gsd;
+ private Grid grid;
private final Map<String, Object> localContext = new ConcurrentHashMap<String, Object>();
private final ServiceRegistry serviceRegistry = ServiceRegistryImpl.getInstance();
- private MinaConnector connector = new MinaConnector();
-
- public GridNodeRemoteClient(GridServiceDescription gsd) {
+ private MinaConnector connector = new MinaConnector();
+
+ public GridNodeRemoteClient(Grid grid,
+ GridServiceDescription gsd) {
this.gsd = gsd;
+ this.grid = grid;
init( this.localContext );
}
@@ -74,21 +80,17 @@
public void init(Object context) {
-
- ConversationManager cm = new ConversationManagerImpl( this.gsd.getId(),
- connector,
- SystemEventListenerFactory.getSystemEventListener() );
- this.localContext.put( KnowledgeBuilderFactoryService.class.getCanonicalName(),
- new KnowledgeBuilderProviderRemoteClient( cm,
+ this.localContext.put( KnowledgeBuilderFactoryService.class.getName(),
+ new KnowledgeBuilderProviderRemoteClient( this.grid,
gsd ) );
- this.localContext.put( KnowledgeBaseFactoryService.class.getCanonicalName(),
- new KnowledgeBaseProviderRemoteClient( cm,
+ this.localContext.put( KnowledgeBaseFactoryService.class.getName(),
+ new KnowledgeBaseProviderRemoteClient( this.grid,
gsd ) );
}
public void dispose() {
- connector.close();
+ connector.close();
}
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseProviderRemoteClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -26,6 +26,7 @@
import org.drools.KnowledgeBaseFactoryService;
import org.drools.command.NewKnowledgeBaseCommand;
import org.drools.command.SetVariableCommand;
+import org.drools.grid.Grid;
import org.drools.grid.GridNode;
import org.drools.grid.GridServiceDescription;
import org.drools.grid.io.ConversationManager;
@@ -41,12 +42,12 @@
implements
KnowledgeBaseFactoryService {
- private ConversationManager cm;
- private GridServiceDescription<GridNode> gsd;
+ private Grid grid;
+ private GridServiceDescription<GridNode> gsd;
- public KnowledgeBaseProviderRemoteClient(ConversationManager cm,
+ public KnowledgeBaseProviderRemoteClient(Grid grid,
GridServiceDescription gsd) {
- this.cm = cm;
+ this.grid = grid;
this.gsd = gsd;
}
@@ -68,46 +69,47 @@
}
public KnowledgeBase newKnowledgeBase() {
- return newKnowledgeBase("", null);
+ return newKnowledgeBase( "",
+ null );
}
public KnowledgeBase newKnowledgeBase(String kbaseId) {
- return newKnowledgeBase(kbaseId, null);
+ return newKnowledgeBase( kbaseId,
+ null );
}
public KnowledgeBase newKnowledgeBase(KnowledgeBaseConfiguration conf) {
- return newKnowledgeBase(null, conf);
+ return newKnowledgeBase( null,
+ conf );
}
public KnowledgeBase newKnowledgeBase(String kbaseId,
KnowledgeBaseConfiguration conf) {
String localId = "";
- if(kbaseId == null || kbaseId.equals("")){
+ if ( kbaseId == null || kbaseId.equals( "" ) ) {
localId = UUID.randomUUID().toString();
- }
- else{
+ } else {
localId = kbaseId;
}
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new SetVariableCommand( "__TEMP__",
+ Arrays.asList( new Object[]{new SetVariableCommand( "__TEMP__",
localId,
- new NewKnowledgeBaseCommand( conf ) ) } ) );
+ new NewKnowledgeBaseCommand( conf ) )} ) );
+ ConversationManager connm = this.grid.get( ConversationManager.class );
+ ConversationUtil.sendMessage( connm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
- ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
-
return new KnowledgeBaseRemoteClient( localId,
this.gsd,
- this.cm );
+ connm );
}
public Environment newEnvironment() {
throw new UnsupportedOperationException( "Not supported yet." );
}
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBaseRemoteClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -50,9 +50,9 @@
implements
KnowledgeBase {
- private String instanceId;
- private ConversationManager cm;
- private GridServiceDescription<GridNode> gsd;
+ private String instanceId;
+ private ConversationManager cm;
+ private GridServiceDescription<GridNode> gsd;
public KnowledgeBaseRemoteClient(String localId,
GridServiceDescription gsd,
@@ -68,16 +68,16 @@
String localId = UUID.randomUUID().toString();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new KnowledgeBaseAddKnowledgePackagesCommand(),
kuilderInstanceId,
this.instanceId,
null,
- kresultsId ) } ) );
+ kresultsId )} ) );
ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
@@ -141,18 +141,18 @@
String localId = UUID.randomUUID().toString();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new SetVariableCommand( "__TEMP__",
+ Arrays.asList( new Object[]{new SetVariableCommand( "__TEMP__",
localId,
new KnowledgeContextResolveFromContextCommand( new NewStatefulKnowledgeSessionCommand( conf ),
null,
this.instanceId,
null,
- kresultsId ) ) } ) );
+ kresultsId ) )} ) );
ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
return new StatefulKnowledgeSessionRemoteClient( localId,
this.gsd,
@@ -189,5 +189,4 @@
throw new UnsupportedOperationException( "Not supported yet." );
}
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderProviderRemoteClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -29,6 +29,7 @@
import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.command.SetVariableCommand;
import org.drools.command.builder.NewKnowledgeBuilderCommand;
+import org.drools.grid.Grid;
import org.drools.grid.GridNode;
import org.drools.grid.GridServiceDescription;
import org.drools.grid.io.ConversationManager;
@@ -42,12 +43,12 @@
implements
KnowledgeBuilderFactoryService {
- private ConversationManager cm;
- private GridServiceDescription<GridNode> gsd;
+ private Grid grid;
+ private GridServiceDescription<GridNode> gsd;
- public KnowledgeBuilderProviderRemoteClient(ConversationManager cm,
+ public KnowledgeBuilderProviderRemoteClient(Grid grid,
GridServiceDescription gsd) {
- this.cm = cm;
+ this.grid = grid;
this.gsd = gsd;
}
@@ -65,36 +66,39 @@
}
public KnowledgeBuilder newKnowledgeBuilder() {
- return newKnowledgeBuilder(null, null);
-
+ return newKnowledgeBuilder( null,
+ null );
}
public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
- return newKnowledgeBuilder(null, conf);
+ return newKnowledgeBuilder( null,
+ conf );
}
public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
- return newKnowledgeBuilder(kbase, null);
+ return newKnowledgeBuilder( kbase,
+ null );
}
public KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
KnowledgeBuilderConfiguration conf) {
- String localId = UUID.randomUUID().toString();
+ String localId = UUID.randomUUID().toString();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new SetVariableCommand( "__TEMP__",
+ Arrays.asList( new Object[]{new SetVariableCommand( "__TEMP__",
localId,
- new NewKnowledgeBuilderCommand( conf ) ) } ) );
+ new NewKnowledgeBuilderCommand( conf ) )} ) );
- ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ ConversationManager connm = this.grid.get( ConversationManager.class );
+ ConversationUtil.sendMessage( connm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
return new KnowledgeBuilderRemoteClient( localId,
this.gsd,
- this.cm );
+ connm );
}
public JaxbConfiguration newJaxbConfiguration(Options xjcOpts,
@@ -102,5 +106,4 @@
throw new UnsupportedOperationException( "Not supported yet." );
}
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/KnowledgeBuilderRemoteClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -45,9 +45,9 @@
implements
KnowledgeBuilder {
- private String instanceId;
- private ConversationManager cm;
- private GridServiceDescription<GridNode> gsd;
+ private String instanceId;
+ private ConversationManager cm;
+ private GridServiceDescription<GridNode> gsd;
public KnowledgeBuilderRemoteClient(String localId,
GridServiceDescription gsd,
@@ -72,18 +72,18 @@
String localId = UUID.randomUUID().toString();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderAddCommand( resource,
type,
configuration ),
this.instanceId,
null,
null,
- null ) } ) );
+ null )} ) );
ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
@@ -105,19 +105,19 @@
String localId = UUID.randomUUID().toString();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand(),
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new KnowledgeBuilderGetErrorsCommand(),
this.instanceId,
null,
null,
- kresultsId ) } ) );
+ kresultsId )} ) );
Object result = ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
return (KnowledgeBuilderErrors) result;
}
-
+
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/RemoteGridNodeConnection.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/RemoteGridNodeConnection.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/RemoteGridNodeConnection.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -17,6 +17,7 @@
package org.drools.grid.remote;
+import org.drools.grid.Grid;
import org.drools.grid.GridConnection;
import org.drools.grid.GridNode;
import org.drools.grid.GridNodeConnection;
@@ -31,8 +32,10 @@
GridConnection<GridNode> {
private GridNode gridNode;
- public RemoteGridNodeConnection(GridServiceDescription gsd) {
- this.gridNode = new GridNodeRemoteClient( gsd );
+ public RemoteGridNodeConnection(Grid grid,
+ GridServiceDescription gsd) {
+ this.gridNode = new GridNodeRemoteClient( grid,
+ gsd );
}
public GridNode connect() {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/StatefulKnowledgeSessionRemoteClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -76,9 +76,9 @@
public class StatefulKnowledgeSessionRemoteClient
implements
StatefulKnowledgeSession {
- private String instanceId;
+ private String instanceId;
private GridServiceDescription<GridNode> gsd;
- private ConversationManager cm;
+ private ConversationManager cm;
public StatefulKnowledgeSessionRemoteClient(String localId,
GridServiceDescription gsd,
@@ -93,155 +93,150 @@
}
public void dispose() {
+ System.out.println( "remoted!!!!" );
String kresultsId = "kresults_" + this.gsd.getId();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new KnowledgeContextResolveFromContextCommand( new DisposeCommand(),
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new DisposeCommand(),
null,
null,
this.instanceId,
- kresultsId ) } ) );
+ kresultsId )} ) );
ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public int fireAllRules() {
- return fireAllRules(-1);
+ return fireAllRules( -1 );
-
}
public int fireAllRules(int max) {
- String kresultsId = "kresults_" + this.gsd.getId();
+ String kresultsId = "kresults_" + this.gsd.getId();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new KnowledgeContextResolveFromContextCommand( CommandFactory.newFireAllRules(max),
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( CommandFactory.newFireAllRules( max ),
null,
null,
this.instanceId,
- kresultsId ) } ) );
+ kresultsId )} ) );
Object result = ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
return (Integer) result;
}
public int fireAllRules(AgendaFilter agendaFilter) {
- String kresultsId = "kresults_" + this.gsd.getId();
+ String kresultsId = "kresults_" + this.gsd.getId();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand(agendaFilter),
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new FireAllRulesCommand( agendaFilter ),
null,
null,
this.instanceId,
- kresultsId ) } ) );
+ kresultsId )} ) );
Object result = ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
return (Integer) result;
}
public void fireUntilHalt() {
- fireUntilHalt(null);
+ fireUntilHalt( null );
}
public void fireUntilHalt(AgendaFilter agendaFilter) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new FireUntilHaltCommand( agendaFilter ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new FireUntilHaltCommand( agendaFilter ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public <T> T execute(Command<T> command) {
-
+
throw new UnsupportedOperationException( "Not supported yet." );
}
public <T extends SessionClock> T getSessionClock() {
- String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetSessionClockCommand(),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ String kresultsId = "kresults_" + this.gsd.getId();
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetSessionClockCommand(),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
return (T) result;
}
-
public void setGlobal(String identifier,
Object object) {
- String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( CommandFactory.newSetGlobal( identifier,
- object ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ String kresultsId = "kresults_" + this.gsd.getId();
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( CommandFactory.newSetGlobal( identifier,
+ object ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public Object getGlobal(String identifier) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( CommandFactory.newGetGlobal( identifier ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
-
-
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( CommandFactory.newGetGlobal( identifier ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
return result;
}
public Globals getGlobals() {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetGlobalsCommand(),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
-
-
- return (Globals)result;
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetGlobalsCommand(),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
+ return (Globals) result;
}
public Calendars getCalendars() {
@@ -283,18 +278,18 @@
}
public void halt() {
- String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new HaltCommand(),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ String kresultsId = "kresults_" + this.gsd.getId();
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new HaltCommand(),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public Agenda getAgenda() {
@@ -303,22 +298,20 @@
public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetWorkingMemoryEntryPointRemoteCommand( name ),
- null,
- null,
- this.instanceId,
- name,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress[]) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
-
-
- return new WorkingMemoryEntryPointRemoteClient( this.instanceId,
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetWorkingMemoryEntryPointRemoteCommand( name ),
+ null,
+ null,
+ this.instanceId,
+ name,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress[]) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
+ return new WorkingMemoryEntryPointRemoteClient( this.instanceId,
name,
this.gsd,
this.cm );
@@ -347,126 +340,128 @@
String kresultsId = "kresults_" + this.gsd.getId();
CommandImpl cmd = new CommandImpl( "execute",
- Arrays.asList( new Object[]{ new KnowledgeContextResolveFromContextCommand( new InsertObjectCommand( object,
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new InsertObjectCommand( object,
true ),
null,
null,
this.instanceId,
- kresultsId ) } ) );
+ kresultsId )} ) );
Object result = ConversationUtil.sendMessage( this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
- this.gsd.getId(),
- cmd );
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
return (FactHandle) result;
}
public void retract(FactHandle handle) {
- String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( CommandFactory.newRetract( handle ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ String kresultsId = "kresults_" + this.gsd.getId();
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( CommandFactory.newRetract( handle ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public void update(FactHandle handle,
Object object) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new UpdateCommand( handle, object ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new UpdateCommand( handle,
+ object ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public FactHandle getFactHandle(Object object) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetFactHandleCommand( object, true ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetFactHandleCommand( object,
+ true ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
return (FactHandle) result;
}
public Object getObject(FactHandle factHandle) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetObjectCommand(factHandle ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetObjectCommand( factHandle ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
return result;
}
public Collection<Object> getObjects() {
- return getObjects(null);
+ return getObjects( null );
}
public Collection<Object> getObjects(ObjectFilter filter) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetObjectsCommand( filter ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
- return (Collection<Object>)result;
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetObjectsCommand( filter ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
+ return (Collection<Object>) result;
}
public <T extends FactHandle> Collection<T> getFactHandles() {
- return getFactHandles(null);
+ return getFactHandles( null );
}
public <T extends FactHandle> Collection<T> getFactHandles(ObjectFilter filter) {
- String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetFactHandlesCommand( filter ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
- return (Collection<T>)result;
+ String kresultsId = "kresults_" + this.gsd.getId();
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetFactHandlesCommand( filter ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
+ return (Collection<T>) result;
}
public long getFactCount() {
@@ -474,114 +469,115 @@
}
public ProcessInstance startProcess(String processId) {
- return startProcess(processId, null);
+ return startProcess( processId,
+ null );
}
public ProcessInstance startProcess(String processId,
Map<String, Object> parameters) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new StartProcessCommand( processId, parameters ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
-
-
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new StartProcessCommand( processId,
+ parameters ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
return (ProcessInstance) result;
}
public void signalEvent(String type,
Object event) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new SignalEventCommand( type, event ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new SignalEventCommand( type,
+ event ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public void signalEvent(String type,
Object event,
long processInstanceId) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new SignalEventCommand( type, event ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new SignalEventCommand( type,
+ event ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
}
public Collection<ProcessInstance> getProcessInstances() {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetProcessInstancesCommand( ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
- return (Collection<ProcessInstance>)result;
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetProcessInstancesCommand(),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
+ return (Collection<ProcessInstance>) result;
}
public ProcessInstance getProcessInstance(long processInstanceId) {
String kresultsId = "kresults_" + this.gsd.getId();
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( new GetProcessInstanceCommand( processInstanceId ),
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
- return (ProcessInstance)result;
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( new GetProcessInstanceCommand( processInstanceId ),
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
+ return (ProcessInstance) result;
}
public void abortProcessInstance(long processInstanceId) {
-
+
String kresultsId = "kresults_" + this.gsd.getId();
AbortProcessInstanceCommand cmdAbort = new AbortProcessInstanceCommand();
- cmdAbort.setProcessInstanceId(processInstanceId);
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand(cmdAbort,
- null,
- null,
- this.instanceId,
- kresultsId )}));
-
- ConversationUtil.sendMessage(this.cm,
- (InetSocketAddress) this.gsd.getAddresses().get("socket").getObject(),
- this.gsd.getId(),
- cmd);
-
-
+ cmdAbort.setProcessInstanceId( processInstanceId );
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( cmdAbort,
+ null,
+ null,
+ this.instanceId,
+ kresultsId )} ) );
+
+ ConversationUtil.sendMessage( this.cm,
+ (InetSocketAddress) this.gsd.getAddresses().get( "socket" ).getObject(),
+ this.gsd.getId(),
+ cmd );
+
}
public WorkItemManager getWorkItemManager() {
@@ -624,5 +620,4 @@
throw new UnsupportedOperationException( "Not supported yet." );
}
-
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/WorkingMemoryEntryPointRemoteClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -43,44 +43,43 @@
implements
WorkingMemoryEntryPoint {
- private String instanceId;
- private String name;
+ private String instanceId;
+ private String name;
private GridServiceDescription gsd;
- private ConversationManager cm;
-
+ private ConversationManager cm;
- public WorkingMemoryEntryPointRemoteClient(String instanceId, String name,
+ public WorkingMemoryEntryPointRemoteClient(String instanceId,
+ String name,
GridServiceDescription gsd,
ConversationManager cm) {
this.instanceId = instanceId;
this.name = name;
this.gsd = gsd;
this.cm = cm;
-
+
}
public FactHandle insert(Object object) throws FactException {
-
String kresultsId = "kresults_" + this.gsd.getId();
-
- InsertObjectCommand insertCmd = new InsertObjectCommand( object, true );
- insertCmd.setEntryPoint(name);
- CommandImpl cmd = new CommandImpl("execute",
- Arrays.asList(new Object[]{ new KnowledgeContextResolveFromContextCommand( insertCmd,
- null,
- null,
- this.instanceId,
- this.name,
- kresultsId )}));
-
- Object result = ConversationUtil.sendMessage(this.cm,
- ((InetSocketAddress[])((Address) this.gsd.getAddresses().get("socket")).getObject()),
- this.gsd.getServiceInterface().getName(),
- cmd);
- return ((FactHandle)result);
-
-
+
+ InsertObjectCommand insertCmd = new InsertObjectCommand( object,
+ true );
+ insertCmd.setEntryPoint( name );
+ CommandImpl cmd = new CommandImpl( "execute",
+ Arrays.asList( new Object[]{new KnowledgeContextResolveFromContextCommand( insertCmd,
+ null,
+ null,
+ this.instanceId,
+ this.name,
+ kresultsId )} ) );
+
+ Object result = ConversationUtil.sendMessage( this.cm,
+ ((InetSocketAddress[]) ((Address) this.gsd.getAddresses().get( "socket" )).getObject()),
+ this.gsd.getServiceInterface().getName(),
+ cmd );
+ return ((FactHandle) result);
+
}
public FactHandle insert(Object object,
@@ -132,6 +131,5 @@
public long getFactCount() {
throw new UnsupportedOperationException( "Not supported yet." );
}
-
-
+
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaAcceptor.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -40,7 +40,7 @@
new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
acceptor.getSessionConfig().setReadBufferSize( 2048 );
acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
- 10 );
+ 100 );
}
this.handler = handler;
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnector.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnector.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnector.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -55,10 +55,8 @@
if ( this.connector == null ) {
// Allow users to pass their own configured SocketConnector
this.connector = new NioSocketConnector();
- this.connector.getFilterChain().addLast(
- "codec",
- new ProtocolCodecFilter(
- new ObjectSerializationCodecFactory() ) );
+ this.connector.getFilterChain().addLast( "codec",
+ new ProtocolCodecFilter(new ObjectSerializationCodecFactory() ) );
}
// this.handler = new MessageHandler() {
Added: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnectorFactoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnectorFactoryService.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaConnectorFactoryService.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -0,0 +1,14 @@
+package org.drools.grid.remote.mina;
+
+import org.drools.grid.io.Connector;
+import org.drools.grid.io.ConnectorFactoryService;
+
+public class MinaConnectorFactoryService
+ implements
+ ConnectorFactoryService {
+
+ public Connector newConnector() {
+ return new MinaConnector();
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/remote/mina/MinaIoHandler.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -55,7 +55,8 @@
public void messageReceived(IoSession session,
Object object) throws Exception {
Message msg = (Message) object;
- Conversation conversation = new ConversationImpl( msg.getConversationId(),
+ Conversation conversation = new ConversationImpl( null, //TODO this should not be null, but we currently have no concept of a ConversationManager on the Acceptor
+ msg.getConversationId(),
this.senderId,
msg.getSenderId(),
this.dispathListener,
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupConfiguration.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupConfiguration.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -22,6 +22,6 @@
public void configureService(Grid grid) {
((GridImpl) grid).addService( CoreServicesLookup.class,
- new CoreServicesWhitePagesImpl( this.services ) );
+ new CoreServicesLookupImpl( this.services ) );
}
}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupImpl.java (from rev 35936, labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesWhitePagesImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesLookupImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -0,0 +1,25 @@
+package org.drools.grid.service.directory.impl;
+
+import java.util.Map;
+
+import org.drools.grid.CoreServicesLookup;
+import org.drools.grid.GridServiceDescription;
+
+public class CoreServicesLookupImpl
+ implements
+ CoreServicesLookup {
+ private Map<String, GridServiceDescription> services;
+
+ public CoreServicesLookupImpl(Map<String, GridServiceDescription> services) {
+ this.services = services;
+ }
+
+ public Map<String, GridServiceDescription> getServices() {
+ return services;
+ }
+
+ public GridServiceDescription lookup(Class cls) {
+ return this.services.get( cls.getName() );
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesWhitePagesImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesWhitePagesImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/CoreServicesWhitePagesImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -1,25 +0,0 @@
-package org.drools.grid.service.directory.impl;
-
-import java.util.Map;
-
-import org.drools.grid.CoreServicesLookup;
-import org.drools.grid.GridServiceDescription;
-
-public class CoreServicesWhitePagesImpl
- implements
- CoreServicesLookup {
- private Map<String, GridServiceDescription> services;
-
- public CoreServicesWhitePagesImpl(Map<String, GridServiceDescription> services) {
- this.services = services;
- }
-
- public Map<String, GridServiceDescription> getServices() {
- return services;
- }
-
- public GridServiceDescription lookup(Class cls) {
- return this.services.get( cls.getName() );
- }
-
-}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/GridServiceDescriptionJpa.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -18,7 +18,8 @@
Serializable {
private GridServiceDescription<T> detached;
- private EntityManagerFactory emf;
+
+ private transient EntityManagerFactory emf;
public GridServiceDescriptionJpa(GridServiceDescription detached,
EntityManagerFactory emf) {
@@ -32,7 +33,7 @@
for ( Address address : this.detached.getAddresses().values() ) {
addresses.put( address.getTransport(),
new AddressJpa( address,
- this.emf ) );
+ this.emf ) );
}
em.close();
return Collections.unmodifiableMap( addresses );
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -22,16 +22,12 @@
implements
WhitePages,
MessageReceiverHandlerFactoryService {
- private Grid grid;
+ private Grid grid;
- private ConversationManager conversationManager;
-
- public WhitePagesClient(Grid grid,
- ConversationManager conversationManager) {
+ public WhitePagesClient(Grid grid) {
this.grid = grid;
- this.conversationManager = conversationManager;
}
-
+
public GridServiceDescription<WhitePages> getGsd() {
return this.grid.get( CoreServicesLookup.class ).lookup( WhitePages.class );
}
@@ -45,21 +41,25 @@
if ( addr instanceof InetSocketAddress[] ) {
sockets = (InetSocketAddress[]) addr;
} else if ( addr instanceof InetSocketAddress ) {
- sockets = new InetSocketAddress[ 1 ];
+ sockets = new InetSocketAddress[1];
sockets[0] = (InetSocketAddress) addr;
}
BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
Exception exception = null;
+ Conversation conv = null;
for ( InetSocketAddress socket : sockets ) {
try {
- Conversation conv = conversationManager.startConversation( socket,
- id );
+ conv = conversationManager.startConversation( "",
+ socket,
+ id );
conv.sendMessage( body,
handler );
exception = null;
} catch ( Exception e ) {
exception = e;
- conversationManager.endConversation();
+ if ( conv != null ) {
+ conv.endConversation();
+ }
}
if ( exception == null ) {
break;
@@ -72,7 +72,7 @@
try {
return handler.getMessage().getBody();
} finally {
- conversationManager.endConversation();
+ conv.endConversation();
}
}
@@ -80,37 +80,40 @@
GridServiceDescription<WhitePages> wpGsd = getGsd();
InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) wpGsd.getAddresses().get( "socket" )).getObject();
CommandImpl cmd = new CommandImpl( "WhitePages.create",
- Arrays.asList( new Object[]{ serviceDescriptionId } ) );
- GridServiceDescription gsd = (GridServiceDescription) sendMessage( this.conversationManager,
+ Arrays.asList( new Object[]{serviceDescriptionId} ) );
+ ConversationManager convm = this.grid.get( ConversationManager.class );
+ GridServiceDescription gsd = (GridServiceDescription) sendMessage( convm,
sockets,
wpGsd.getId(),
cmd );
return new GridServiceDescriptionClient( gsd,
wpGsd,
- this.conversationManager );
+ convm );
}
public GridServiceDescription lookup(String serviceDescriptionId) {
GridServiceDescription<WhitePages> wpGsd = getGsd();
InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) wpGsd.getAddresses().get( "socket" )).getObject();
CommandImpl cmd = new CommandImpl( "WhitePages.lookup",
- Arrays.asList( new Object[]{ serviceDescriptionId } ) );
- GridServiceDescription gsd = (GridServiceDescription) sendMessage( this.conversationManager,
+ Arrays.asList( new Object[]{serviceDescriptionId} ) );
+ ConversationManager convm = this.grid.get( ConversationManager.class );
+ GridServiceDescription gsd = (GridServiceDescription) sendMessage( convm,
sockets,
wpGsd.getId(),
cmd );
return (gsd == null) ? gsd : new GridServiceDescriptionClient( gsd,
wpGsd,
- this.conversationManager );
+ convm );
}
public void remove(String serviceDescriptionId) {
GridServiceDescription<WhitePages> wpGsd = getGsd();
-
+
InetSocketAddress[] sockets = (InetSocketAddress[]) ((Address) wpGsd.getAddresses().get( "socket" )).getObject();
CommandImpl cmd = new CommandImpl( "WhitePages.remove",
- Arrays.asList( new Object[]{ serviceDescriptionId } ) );
- sendMessage( this.conversationManager,
+ Arrays.asList( new Object[]{serviceDescriptionId} ) );
+ ConversationManager convm = this.grid.get( ConversationManager.class );
+ sendMessage( convm,
sockets,
wpGsd.getId(),
cmd );
@@ -120,8 +123,14 @@
return new WhitePagesServer( this );
}
- public void registerSocketService(Grid grid, String id, String ip, int port) {
- WhitePagesImpl.doRegisterSocketService(grid, id, ip, port);
+ public void registerSocketService(Grid grid,
+ String id,
+ String ip,
+ int port) {
+ WhitePagesImpl.doRegisterSocketService( grid,
+ id,
+ ip,
+ port );
}
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -44,7 +44,7 @@
}
public static void doRegisterSocketService(Grid grid, String id, String ip, int port) {
- CoreServicesWhitePagesImpl coreServicesWP = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
+ CoreServicesLookupImpl coreServicesWP = (CoreServicesLookupImpl) grid.get( CoreServicesLookup.class );
GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServicesWP.lookup( WhitePages.class );
if ( gsd == null ) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesRemoteConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesRemoteConfiguration.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesRemoteConfiguration.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -8,24 +8,18 @@
import org.drools.grid.conf.GridPeerServiceConfiguration;
import org.drools.grid.impl.GridImpl;
import org.drools.grid.io.ConversationManager;
+import org.drools.grid.io.impl.ConversationManagerImpl;
import org.drools.grid.service.directory.WhitePages;
public class WhitePagesRemoteConfiguration
implements
GridPeerServiceConfiguration {
- ConversationManager cm;
- public WhitePagesRemoteConfiguration(ConversationManager cm) {
- this.cm = cm;
+ public WhitePagesRemoteConfiguration() {
}
public void configureService(Grid grid) {
- CoreServicesWhitePagesImpl coreServices = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
-
- GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServices.lookup( WhitePages.class );
-
- WhitePages wp = new WhitePagesClient( grid,
- cm );
+ WhitePages wp = new WhitePagesClient( grid );
((GridImpl) grid).addService( WhitePages.class,
wp );
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesServer.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesServer.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesServer.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -71,6 +71,9 @@
WhitePages whitePages = (WhitePages) object;
final List list = cmd.getArguments();
GridServiceDescription gsd = whitePages.lookup( (String) list.get( 0 ) );
+ if ( gsd != null ) {
+ gsd.setServiceInterface( null ); // FIXME URGENT (mdp) workaround due to mina serialization issues.
+ }
con.respond( gsd );
}
} );
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesSocketConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesSocketConfiguration.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/service/directory/impl/WhitePagesSocketConfiguration.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -32,7 +32,7 @@
WhitePages wp = grid.get( WhitePages.class );
if ( port != -1 ) {
- CoreServicesWhitePagesImpl coreServicesWP = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
+ CoreServicesLookupImpl coreServicesWP = (CoreServicesLookupImpl) grid.get( CoreServicesLookup.class );
GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServicesWP.lookup( WhitePages.class );
if ( gsd == null ) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/RegisterSchedulerConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/RegisterSchedulerConfiguration.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/RegisterSchedulerConfiguration.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -38,7 +38,7 @@
}
public void configureService(Grid grid) {
- CoreServicesWhitePagesImpl coreServicesWP = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
+ CoreServicesLookupImpl coreServicesWP = (CoreServicesLookupImpl) grid.get( CoreServicesLookup.class );
GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServicesWP.lookup( SchedulerService.class );
if ( gsd == null ) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerClient.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -56,11 +56,9 @@
private Grid grid;
public SchedulerClient(Grid grid,
- GridServiceDescription schedulerGsd,
- ConversationManager conversationManager) {
+ GridServiceDescription schedulerGsd) {
this.grid = grid;
this.schedulerGsd = schedulerGsd;
- this.conversationManager = conversationManager;
}
public static Object sendMessage(ConversationManager conversationManager,
@@ -78,16 +76,18 @@
BlockingMessageResponseHandler handler = new BlockingMessageResponseHandler();
Exception exception = null;
+ Conversation conv = null;
for ( InetSocketAddress socket : sockets ) {
try {
- Conversation conv = conversationManager.startConversation( socket,
- id );
+ conv = conversationManager.startConversation( "", // TODO add ID later
+ socket,
+ id );
conv.sendMessage( body,
handler );
exception = null;
} catch ( Exception e ) {
exception = e;
- conversationManager.endConversation();
+ conv.endConversation();
}
if ( exception == null ) {
break;
@@ -100,7 +100,7 @@
try {
return handler.getMessage().getBody();
} finally {
- conversationManager.endConversation();
+ conv.endConversation();
}
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerImpl.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerImpl.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -26,7 +26,7 @@
import org.drools.grid.io.MessageReceiverHandler;
import org.drools.grid.service.directory.Address;
import org.drools.grid.service.directory.WhitePages;
-import org.drools.grid.service.directory.impl.CoreServicesWhitePagesImpl;
+import org.drools.grid.service.directory.impl.CoreServicesLookupImpl;
import org.drools.grid.service.directory.impl.GridServiceDescriptionImpl;
import org.drools.time.Job;
import org.drools.time.JobContext;
@@ -76,7 +76,7 @@
String id,
String ip,
int port) {
- CoreServicesWhitePagesImpl coreServicesWP = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
+ CoreServicesLookupImpl coreServicesWP = (CoreServicesLookupImpl) grid.get( CoreServicesLookup.class );
GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServicesWP.lookup( SchedulerService.class );
if ( gsd == null ) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerRemoteConfiguration.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -14,21 +14,17 @@
public class SchedulerRemoteConfiguration
implements
GridPeerServiceConfiguration {
- private ConversationManager cm;
- public SchedulerRemoteConfiguration(ConversationManager cm) {
-
- this.cm = cm;
+ public SchedulerRemoteConfiguration() {
}
public void configureService(Grid grid) {
- CoreServicesWhitePagesImpl coreServices = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
+ CoreServicesLookupImpl coreServices = (CoreServicesLookupImpl) grid.get( CoreServicesLookup.class );
GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServices.lookup( SchedulerService.class );
SchedulerService scheduler = new SchedulerClient( grid,
- gsd,
- cm );
+ gsd);
((GridImpl) grid).addService( SchedulerService.class,
scheduler );
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/main/java/org/drools/grid/timer/impl/SchedulerSocketConfiguration.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -32,7 +32,7 @@
SchedulerService sched = grid.get( SchedulerService.class );
if ( port != -1 ) {
- CoreServicesWhitePagesImpl coreServicesWP = (CoreServicesWhitePagesImpl) grid.get( CoreServicesLookup.class );
+ CoreServicesLookupImpl coreServicesWP = (CoreServicesLookupImpl) grid.get( CoreServicesLookup.class );
GridServiceDescriptionImpl gsd = (GridServiceDescriptionImpl) coreServicesWP.lookup( SchedulerService.class );
if ( gsd == null ) {
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/grid/NodeTests.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/grid/NodeTests.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/grid/NodeTests.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -36,6 +36,7 @@
import org.drools.grid.remote.mina.MinaAcceptorFactoryService;
import org.drools.grid.service.directory.WhitePages;
import org.drools.grid.service.directory.impl.CoreServicesLookupConfiguration;
+import org.drools.grid.service.directory.impl.WhitePagesImpl;
import org.drools.grid.service.directory.impl.WhitePagesLocalConfiguration;
import org.drools.grid.timer.impl.CoreServicesSchedulerConfiguration;
import org.drools.io.impl.ByteArrayResource;
@@ -119,12 +120,12 @@
Grid grid1 = new GridImpl( new HashMap<String, Object>() );
configureGrid1( grid1,
8000,
- null );
+ new WhitePagesImpl() );
Grid grid2 = new GridImpl( new HashMap<String, Object>() );
configureGrid1( grid2,
-1,
- grid1.get( WhitePages.class ) );
+ null );
GridNode n1 = grid1.createGridNode( "n1" );
grid1.get( SocketService.class ).addService( "n1", 8000, n1 );
@@ -183,12 +184,12 @@
Grid grid1 = new GridImpl( new HashMap<String, Object>() );
configureGrid1( grid1,
8000,
- null );
+ new WhitePagesImpl() );
Grid grid2 = new GridImpl( new HashMap<String, Object>() );
configureGrid1( grid2,
-1,
- grid1.get( WhitePages.class ) );
+ null );
GridNode n1 = grid1.createGridNode( "n1" );
grid1.get( SocketService.class ).addService( "n1", 8000, n1 );
@@ -272,9 +273,12 @@
conf.addConfiguration( coreSeviceSchedulerConf );
//Configuring the WhitePages
- WhitePagesLocalConfiguration wplConf = new WhitePagesLocalConfiguration();
- wplConf.setWhitePages( wp );
- conf.addConfiguration( wplConf );
+ WhitePagesLocalConfiguration wplConf = null;
+ if ( wp != null ) {
+ wplConf = new WhitePagesLocalConfiguration();
+ wplConf.setWhitePages( wp );
+ conf.addConfiguration( wplConf );
+ }
// //Create a Local Scheduler
// SchedulerLocalConfiguration schlConf = new SchedulerLocalConfiguration( "myLocalSched" );
@@ -283,9 +287,9 @@
if ( port >= 0 ) {
//Configuring the SocketService
MultiplexSocketServiceCongifuration socketConf = new MultiplexSocketServiceCongifuration( new MultiplexSocketServerImpl( "127.0.0.1",
- new MinaAcceptorFactoryService(),
- SystemEventListenerFactory.getSystemEventListener(),
- grid) );
+ new MinaAcceptorFactoryService(),
+ SystemEventListenerFactory.getSystemEventListener(),
+ grid) );
socketConf.addService( WhitePages.class.getName(), wplConf.getWhitePages(), port );
// socketConf.addService( SchedulerService.class.getName(), schlConf.getSchedulerService(), port );
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/MinaTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/MinaTest.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/MinaTest.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -9,6 +9,7 @@
import org.drools.SystemEventListener;
import org.drools.SystemEventListenerFactory;
+import org.drools.grid.impl.GridImpl;
import org.drools.grid.internal.responsehandlers.BlockingMessageResponseHandler;
import org.drools.grid.io.Acceptor;
import org.drools.grid.io.Connector;
@@ -22,6 +23,7 @@
import org.drools.grid.io.impl.MessageImpl;
import org.drools.grid.remote.mina.MinaAcceptor;
import org.drools.grid.remote.mina.MinaConnector;
+import org.drools.grid.remote.mina.MinaConnectorFactoryService;
import org.drools.grid.service.directory.WhitePages;
import junit.framework.TestCase;
@@ -49,13 +51,12 @@
accHandler,
l );
- Connector conn = new MinaConnector();
- ConversationManager cm = new ConversationManagerImpl( "s1",
- conn,
+ ConversationManager cm = new ConversationManagerImpl( new GridImpl(),
l );
- Conversation cv = cm.startConversation( new InetSocketAddress( "127.0.0.1",
+ Conversation cv = cm.startConversation( "s1",
+ new InetSocketAddress( "127.0.0.1",
5012 ),
"r1" );
@@ -67,7 +68,7 @@
Message msg = blockHandler.getMessage( 5000 );
System.out.println( msg.getBody() );
- conn.close();
+ cv.endConversation();
if ( acc.isOpen() ) {
acc.close();
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/RemoteWhitePagesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/RemoteWhitePagesTest.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/RemoteWhitePagesTest.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -65,13 +65,7 @@
coreSeviceConf = new CoreServicesLookupConfiguration( coreServicesMap );
conf.addConfiguration( coreSeviceConf );
- Connector conn = new MinaConnector();
-
- ConversationManager cm = new ConversationManagerImpl( "s1",
- conn,
- l );
-
- GridPeerServiceConfiguration wprConf = new WhitePagesRemoteConfiguration( cm );
+ GridPeerServiceConfiguration wprConf = new WhitePagesRemoteConfiguration( );
conf.addConfiguration( wprConf );
conf.configure( grid2 );
@@ -109,9 +103,6 @@
GridServiceDescription gs2 = wp.lookup( "s2" );
assertNotNull( gs2 );
-
- conn.close();
-
grid1.get( SocketService.class ).close();
}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/WhitePagesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/WhitePagesTest.java 2010-11-15 20:26:19 UTC (rev 35980)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-impl/src/test/java/org/drools/io/mina/WhitePagesTest.java 2010-11-15 20:27:56 UTC (rev 35981)
@@ -16,12 +16,14 @@
import org.drools.grid.impl.GridImpl;
import org.drools.grid.impl.MultiplexSocketServerImpl;
import org.drools.grid.io.Connector;
+import org.drools.grid.io.ConnectorFactoryService;
import org.drools.grid.io.ConversationManager;
import org.drools.grid.io.impl.ConversationManagerImpl;
import org.drools.grid.service.directory.impl.CoreServicesLookupConfiguration;
import org.drools.grid.io.impl.MultiplexSocketServiceCongifuration;
import org.drools.grid.remote.mina.MinaAcceptorFactoryService;
import org.drools.grid.remote.mina.MinaConnector;
+import org.drools.grid.remote.mina.MinaConnectorFactoryService;
import org.drools.grid.service.directory.WhitePages;
import org.drools.grid.service.directory.impl.WhitePagesLocalConfiguration;
import org.drools.grid.service.directory.impl.WhitePagesRemoteConfiguration;
@@ -63,13 +65,7 @@
coreSeviceConf = new CoreServicesLookupConfiguration( coreServicesMap );
conf.addConfiguration( coreSeviceConf );
- Connector conn = new MinaConnector();
-
- ConversationManager cm = new ConversationManagerImpl( "s1",
- conn,
- l );
-
- GridPeerServiceConfiguration wprConf = new WhitePagesRemoteConfiguration( cm );
+ GridPeerServiceConfiguration wprConf = new WhitePagesRemoteConfiguration( );
conf.addConfiguration( wprConf );
conf.configure( grid2 );
@@ -91,7 +87,7 @@
testGsd_3 );
assertNotSame( test1Gsd,
testGsd_3 );
- conn.close();
+
grid1.get( SocketService.class ).close();
}
More information about the jboss-svn-commits
mailing list