Author: boisvert
Date: Sun Jul  1 20:30:58 2007
New Revision: 552392

URL: http://svn.apache.org/viewvc?view=rev&rev=552392
Log:
Register MessageExchangeInterceptors via configuration

Modified:
    incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/Messages.java
    incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
    
incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
    incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/Messages.java
    incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java

Modified: 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/Messages.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/Messages.java?view=diff&rev=552392&r1=552391&r2=552392
==============================================================================
--- incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/Messages.java 
(original)
+++ incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/Messages.java 
Sun Jul  1 20:30:58 2007
@@ -135,6 +135,10 @@
         return format("Registered custom BPEL event listener: {0}", 
listenerCN);
     }
 
+    public String msgMessageExchangeInterceptorRegistered(String 
interceptorCN) {
+        return format("Registered message exchange interceptor: {0}", 
interceptorCN);
+    }
+
     public String msgOdeShutdownCompleted() {
         return "Shutdown completed. ";
     }

Modified: 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?view=diff&rev=552392&r1=552391&r2=552392
==============================================================================
--- incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java 
(original)
+++ incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java 
Sun Jul  1 20:30:58 2007
@@ -36,11 +36,13 @@
 import org.apache.ode.bpel.engine.BpelServerImpl;
 import org.apache.ode.bpel.engine.CountLRUDehydrationPolicy;
 import org.apache.ode.bpel.iapi.BpelEventListener;
+import org.apache.ode.bpel.iapi.BpelEventListener;
 import org.apache.ode.bpel.iapi.ContextException;
 import org.apache.ode.bpel.iapi.ProcessConf;
 import org.apache.ode.bpel.iapi.ProcessStoreEvent;
 import org.apache.ode.bpel.iapi.ProcessStoreListener;
 import org.apache.ode.bpel.iapi.Scheduler;
+import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
 import org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl;
 import org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl;
 import org.apache.ode.il.dbutil.Database;
@@ -61,7 +63,7 @@
 
 /**
  * Server class called by our Axis hooks to handle all ODE lifecycle 
management.
- * 
+ *
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class ODEServer {
@@ -151,10 +153,11 @@
             __log.debug("Initializing BPEL server.");
             initBpelServer();
 
-            // Register BPEL event listeners configured in axis2.properties
-            // file.
+            // Register BPEL event listeners configured in axis2.properties 
file.
             registerEventListeners();
 
+            registerMexInterceptors();
+
             try {
                 _server.start();
             } catch (Exception ex) {
@@ -209,7 +212,7 @@
     /**
      * Shutdown the service engine. This performs cleanup before the BPE is 
terminated. Once this method has been called, init()
      * must be called before the transformation engine can be started again 
with a call to start().
-     * 
+     *
      * @throws AxisFault
      *             if the engine is unable to shut down.
      */
@@ -265,7 +268,7 @@
             if (_db != null)
                 try {
                     _db.shutdown();
-                    
+
                 } catch (Throwable ex) {
                     __log.debug("DB shutdown failed.", ex);
                 } finally {
@@ -402,7 +405,7 @@
 
     /**
      * Initialize the DAO.
-     * 
+     *
      * @throws ServletException
      */
     protected void initDAO() throws ServletException {
@@ -413,7 +416,7 @@
             String errmsg = 
__msgs.msgDAOInstantiationFailed(_odeConfig.getDAOConnectionFactory());
             __log.error(errmsg, ex);
             throw new ServletException(errmsg, ex);
-            
+
         }
     }
 
@@ -482,10 +485,26 @@
                     
__log.info(__msgs.msgBpelEventListenerRegistered(listenerCN));
                 } catch (Exception e) {
                     __log.warn("Couldn't register the event listener " + 
listenerCN + ", the class couldn't be "
-                            + "loaded properly.");
+                            + "loaded properly: " + e);
                 }
             }
 
+        }
+    }
+
+    private void registerMexInterceptors() {
+        String listenersStr = _odeConfig.getMessageExchangeInterceptors();
+        if (listenersStr != null) {
+            for (StringTokenizer tokenizer = new StringTokenizer(listenersStr, 
",;"); tokenizer.hasMoreTokens();) {
+                String interceptorCN = tokenizer.nextToken();
+                try {
+                    
_server.registerMessageExchangeInterceptor((MessageExchangeInterceptor) 
Class.forName(interceptorCN).newInstance());
+                    
__log.info(__msgs.msgMessageExchangeInterceptorRegistered(interceptorCN));
+                } catch (Exception e) {
+                    __log.warn("Couldn't register the event listener " + 
interceptorCN + ", the class couldn't be "
+                            + "loaded properly: " + e);
+                }
+            }
         }
     }
 

Modified: 
incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java?view=diff&rev=552392&r1=552391&r2=552392
==============================================================================
--- 
incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
 (original)
+++ 
incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
 Sun Jul  1 20:30:58 2007
@@ -77,6 +77,8 @@
 
     public static final String PROP_EVENT_LISTENERS = "event.listeners";
 
+    public static final String PROP_MEX_INTERCEPTORS = "mex.interceptors";
+
     public static final String PROP_PROCESS_DEHYDRATION = 
"process.dehydration";
 
     public static final String PROP_DAOCF = "dao.factory";
@@ -231,6 +233,10 @@
 
     public String getEventListeners() {
         return getProperty(PROP_EVENT_LISTENERS);
+    }
+
+    public String getMessageExchangeInterceptors() {
+        return getProperty(PROP_MEX_INTERCEPTORS);
     }
 
     public boolean isDehydrationEnabled() {

Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/Messages.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/Messages.java?view=diff&rev=552392&r1=552391&r2=552392
==============================================================================
--- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/Messages.java 
(original)
+++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/Messages.java Sun 
Jul  1 20:30:58 2007
@@ -149,5 +149,8 @@
         return format("Registered custom BPEL event listener: {0}", 
listenerCN);
     }
 
+    public String msgMessageExchangeInterceptorRegistered(String 
interceptorCN) {
+        return format("Registered message exchange interceptor: {0}", 
interceptorCN);
+    }
 
 }

Modified: 
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java?view=diff&rev=552392&r1=552391&r2=552392
==============================================================================
--- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java 
(original)
+++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java 
Sun Jul  1 20:30:58 2007
@@ -25,6 +25,7 @@
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
 import org.apache.ode.bpel.engine.BpelServerImpl;
 import org.apache.ode.bpel.iapi.BpelEventListener;
+import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
 import org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl;
 import org.apache.ode.il.dbutil.Database;
 import org.apache.ode.il.dbutil.DatabaseConfigException;
@@ -113,6 +114,8 @@
             // Register BPEL event listeners configured in ode-jbi.properties.
             registerEventListeners();
 
+            registerMexInterceptors();
+
             __log.debug("Starting JCA connector.");
             initConnector();
 
@@ -160,19 +163,19 @@
             __log.error(errmsg, ex);
             throw new JBIException(errmsg, ex);
         }
-        
+
         _ode._dataSource = _db.getDataSource();
     }
 
     /**
      * Load the "ode-jbi.properties" file from the install directory.
-     * 
+     *
      * @throws JBIException
      */
     private void initProperties() throws JBIException {
         OdeConfigProperties config = new OdeConfigProperties(new 
File(_ode.getContext().getInstallRoot(),
                 OdeConfigProperties.CONFIG_FILE_NAME));
-        
+
         try {
             config.load();
         } catch (FileNotFoundException fnf) {
@@ -222,7 +225,7 @@
 
     /**
      * Initialize the data store.
-     * 
+     *
      * @throws JBIException
      */
     private void initDao() throws JBIException {
@@ -273,6 +276,21 @@
         }
     }
 
+    private void registerMexInterceptors() {
+        String listenersStr = _ode._config.getMessageExchangeInterceptors();
+        if (listenersStr != null) {
+            for (StringTokenizer tokenizer = new StringTokenizer(listenersStr, 
",;"); tokenizer.hasMoreTokens();) {
+                String interceptorCN = tokenizer.nextToken();
+                try {
+                    
_ode._server.registerMessageExchangeInterceptor((MessageExchangeInterceptor) 
Class.forName(interceptorCN).newInstance());
+                    
__log.info(__msgs.msgMessageExchangeInterceptorRegistered(interceptorCN));
+                } catch (Exception e) {
+                    __log.warn("Couldn't register the event listener " + 
interceptorCN + ", the class couldn't be "
+                            + "loaded properly: " + e);
+                }
+            }
+        }
+    }
 
     public synchronized void start() throws JBIException {
         if (_started)
@@ -349,7 +367,7 @@
     /**
      * Shutdown the service engine. This performs cleanup before the BPE is 
terminated. Once this method has been called, init()
      * must be called before the transformation engine can be started again 
with a call to start().
-     * 
+     *
      * @throws javax.jbi.JBIException
      *             if the transformation engine is unable to shut down.
      */


Reply via email to