[jboss-svn-commits] JBL Code SVN: r24670 - labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 13 05:10:48 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-13 05:10:47 -0500 (Tue, 13 Jan 2009)
New Revision: 24670
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
Log:
JBRULES-1903 Pipeline support for DataLoaders and Feeders
-Added JmsMessenger
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java 2009-01-13 10:10:47 UTC (rev 24670)
@@ -0,0 +1,10 @@
+package org.drools.runtime.pipeline;
+
+import java.util.Properties;
+
+public interface JmsMessengerProvider {
+ Service newJmsMessenger(Pipeline pipeline,
+ Properties properties,
+ String destinationName,
+ ResultHandlerFactory resultHandlerFactory);
+}
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:03:23 UTC (rev 24669)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java 2009-01-13 10:10:47 UTC (rev 24670)
@@ -1,6 +1,7 @@
package org.drools.runtime.pipeline;
import java.util.List;
+import java.util.Properties;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
@@ -26,6 +27,8 @@
private static JxlsTransformerProvider jxlsPipelineProvider;
+ private static JmsMessengerProvider jmsMessengerProvider;
+
public static Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession) {
return getCorePipelineProvider().newStatefulKnowledgeSessionPipeline( ksession );
}
@@ -102,6 +105,16 @@
return getCorePipelineProvider().newListCollectJoin();
}
+ public static Service newJmsMessenger(Pipeline pipeline,
+ Properties properties,
+ String destinationName,
+ ResultHandlerFactory resultHandlerFactory) {
+ return getJmsMessengerProvider().newJmsMessenger( pipeline,
+ properties,
+ destinationName,
+ resultHandlerFactory );
+ }
+
public static Transformer newSmooksFromSourceTransformer(Smooks smooks,
String rootId) {
return getSmooksPipelineProvider().newSmooksFromSourceTransformer( smooks,
@@ -115,10 +128,10 @@
public static Transformer newJaxbFromXmlTransformer(Unmarshaller unmarshaller) {
return getJaxbPipelineProvider().newJaxbFromXmlTransformer( unmarshaller );
}
-
+
public static Transformer newJaxbToXmlTransformer(Marshaller marshaller) {
return getJaxbPipelineProvider().newJaxbToXmlTransformer( marshaller );
- }
+ }
public static Transformer newXStreamFromXmlTransformer(XStream xstream) {
return getXStreamTransformerProvider().newXStreamFromXmlTransformer( xstream );
@@ -239,4 +252,25 @@
}
}
+ private static synchronized void setJmsMessengerProvider(JmsMessengerProvider provider) {
+ PipelineFactory.jmsMessengerProvider = provider;
+ }
+
+ private static synchronized JmsMessengerProvider getJmsMessengerProvider() {
+ if ( jmsMessengerProvider == null ) {
+ loadJmsMessengerProvider();
+ }
+ return jmsMessengerProvider;
+ }
+
+ private static void loadJmsMessengerProvider() {
+ try {
+ Class<JmsMessengerProvider> cls = (Class<JmsMessengerProvider>) Class.forName( "org.drools.runtime.pipeline.impl.JmsMessengerProviderImpl" );
+ setJmsMessengerProvider( cls.newInstance() );
+ } catch ( Exception e2 ) {
+ throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.JmsMessengerProviderImpl could not be set.",
+ e2 );
+ }
+ }
+
}
More information about the jboss-svn-commits
mailing list