[jboss-svn-commits] JBL Code SVN: r24672 - in labs/jbossrules/trunk: drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 13 05:20:38 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-13 05:20:37 -0500 (Tue, 13 Jan 2009)
New Revision: 24672
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsMessengerProviderImpl.java
labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsUnwrapMessageObject.java
labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/JaxbSimpleJmsMessengerTest.java
labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/SimpleJmsMessengerTest.java
Log:
JBRULES-1903 Pipeline support for DataLoaders and Feeders
-Added JmsMessenger
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java 2009-01-13 10:13:09 UTC (rev 24671)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java 2009-01-13 10:20:37 UTC (rev 24672)
@@ -7,4 +7,6 @@
Properties properties,
String destinationName,
ResultHandlerFactory resultHandlerFactory);
+
+ Action newJmsUnwrapMessageObject();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java 2009-01-13 10:13:09 UTC (rev 24671)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java 2009-01-13 10:20:37 UTC (rev 24672)
@@ -114,6 +114,10 @@
destinationName,
resultHandlerFactory );
}
+
+ public static Action newJmsUnwrapMessageObject() {
+ return getJmsMessengerProvider().newJmsUnwrapMessageObject();
+ }
public static Transformer newSmooksFromSourceTransformer(Smooks smooks,
String rootId) {
Modified: labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsMessengerProviderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsMessengerProviderImpl.java 2009-01-13 10:13:09 UTC (rev 24671)
+++ labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsMessengerProviderImpl.java 2009-01-13 10:20:37 UTC (rev 24672)
@@ -5,6 +5,7 @@
import java.util.Properties;
+import org.drools.runtime.pipeline.Action;
import org.drools.runtime.pipeline.JmsMessengerProvider;
import org.drools.runtime.pipeline.Pipeline;
import org.drools.runtime.pipeline.ResultHandlerFactory;
@@ -22,5 +23,9 @@
destinationName,
resultHandlerFactory );
}
+
+ public Action newJmsUnwrapMessageObject() {
+ return new JmsUnwrapMessageObject();
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsUnwrapMessageObject.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsUnwrapMessageObject.java 2009-01-13 10:13:09 UTC (rev 24671)
+++ labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/main/java/org/drools/runtime/pipeline/impl/JmsUnwrapMessageObject.java 2009-01-13 10:20:37 UTC (rev 24672)
@@ -2,14 +2,12 @@
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
-import javax.jms.TextMessage;
-import org.drools.runtime.pipeline.Emitter;
+import org.drools.runtime.pipeline.Action;
import org.drools.runtime.pipeline.PipelineContext;
import org.drools.runtime.pipeline.Receiver;
-import org.drools.runtime.pipeline.impl.BaseEmitter;
-public class JmsUnwrapMessageObject extends BaseEmitter implements Receiver, Emitter {
+public class JmsUnwrapMessageObject extends BaseEmitter implements Action, Receiver {
public void receive(Object object,
PipelineContext context) {
Modified: labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/JaxbSimpleJmsMessengerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/JaxbSimpleJmsMessengerTest.java 2009-01-13 10:13:09 UTC (rev 24671)
+++ labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/JaxbSimpleJmsMessengerTest.java 2009-01-13 10:20:37 UTC (rev 24672)
@@ -28,6 +28,7 @@
import org.drools.runtime.pipeline.PipelineFactory;
import org.drools.runtime.pipeline.ResultHandler;
import org.drools.runtime.pipeline.ResultHandlerFactory;
+import org.drools.runtime.pipeline.Service;
import org.drools.runtime.pipeline.Transformer;
import org.drools.runtime.pipeline.impl.ExecuteResultHandler;
import org.drools.runtime.pipeline.impl.JmsMessenger;
@@ -72,7 +73,7 @@
}
}
- public void test1() throws Exception {
+ public void testJmsWithJaxb() throws Exception {
Options xjcOpts = new Options();
xjcOpts.setSchemaLanguage( Language.XMLSCHEMA );
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
@@ -88,55 +89,53 @@
kbuilder.add( ResourceFactory.newClassPathResource( "test_Jaxb.drl",
getClass() ),
ResourceType.DRL );
-
+
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-
- ExecuteResultHandler resultHandlerStage = new ExecuteResultHandler();
-
- StatefulKnowledgeSessionInsertStage insertStage = new StatefulKnowledgeSessionInsertStage();
+ Action resultHandlerStage = PipelineFactory.newExecuteResultHandler();
+
+ KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
insertStage.setReceiver( resultHandlerStage );
-
+
JAXBContext jaxbCtx = KnowledgeBuilderHelper.newJAXBContext( classNames,
kbase );
Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
Transformer transformer = PipelineFactory.newJaxbFromXmlTransformer( unmarshaller );
transformer.setReceiver( insertStage );
-
- JmsUnwrapMessageObject unwrapObjectStage = new JmsUnwrapMessageObject();
+
+ Action unwrapObjectStage = PipelineFactory.newJmsUnwrapMessageObject();
unwrapObjectStage.setReceiver( transformer );
-
+
Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
pipeline.setReceiver( unwrapObjectStage );
-
ResultHandleFactoryImpl factory = new ResultHandleFactoryImpl();
- JmsMessenger feeder = new JmsMessenger( pipeline,
- props,
- this.destinationName,
- factory );
- feeder.start();
-
+ Service feeder = PipelineFactory.newJmsMessenger( pipeline,
+ props,
+ this.destinationName,
+ factory );
+ feeder.start();
+
String xml = StringUtils.readFileAsString( new InputStreamReader( getClass().getResourceAsStream( "order.xml" ) ) );
-
+
this.simpleProducer.sendObject( xml );
-
for ( int i = 0; i < 5; i++ ) {
// iterate and sleep 5 times, to give these messages time to complete.
if ( factory.list.size() == 1 ) {
break;
}
Thread.sleep( 500 );
- }
+ }
- FactHandle factHandle = (FactHandle) ((Map)((ResultHandlerImpl)factory.list.get( 0 )).getObject()).keySet().iterator().next();
+ FactHandle factHandle = (FactHandle) ((Map) ((ResultHandlerImpl) factory.list.get( 0 )).getObject()).keySet().iterator().next();
assertNotNull( factHandle );
-
- assertEquals( 1, factory.list.size() );
+ assertEquals( 1,
+ factory.list.size() );
+
Action executeResult = PipelineFactory.newExecuteResultHandler();
Action assignAsResult = PipelineFactory.newAssignObjectAsResult();
@@ -158,11 +157,13 @@
resultHandler );
assertEqualsIgnoreWhitespace( xml,
- (String) resultHandler.getObject() );
-
+ (String) resultHandler.getObject() );
+
}
-
- public static class ResultHandleFactoryImpl implements ResultHandlerFactory {
+
+ public static class ResultHandleFactoryImpl
+ implements
+ ResultHandlerFactory {
List list = new ArrayList();
public ResultHandler newResultHandler() {
@@ -170,19 +171,23 @@
list.add( handler );
return handler;
}
-
+
}
-
- public static class ResultHandlerImpl implements ResultHandler {
+
+ public static class ResultHandlerImpl
+ implements
+ ResultHandler {
Object object;
+
public void handleResult(Object object) {
- this.object = object;
+ this.object = object;
}
+
public Object getObject() {
return this.object;
- }
- }
-
+ }
+ }
+
private static void assertEqualsIgnoreWhitespace(final String expected,
final String actual) {
final String cleanExpected = expected.replaceAll( "\\s+",
Modified: labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/SimpleJmsMessengerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/SimpleJmsMessengerTest.java 2009-01-13 10:13:09 UTC (rev 24671)
+++ labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/src/test/java/org/drools/runtime/pipeline/impl/SimpleJmsMessengerTest.java 2009-01-13 10:20:37 UTC (rev 24672)
@@ -53,7 +53,7 @@
}
}
- public void test1() throws Exception {
+ public void testJms() throws Exception {
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
More information about the jboss-svn-commits
mailing list