[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