Author: mriou
Date: Thu Nov  9 15:01:07 2006
New Revision: 473126

URL: http://svn.apache.org/viewvc?view=rev&rev=473126
Log:
ODE-78 Event listeners can be added in the conf property file.

Modified:
    
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
    incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java

Modified: 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java?view=diff&rev=473126&r1=473125&r2=473126
==============================================================================
--- 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
 (original)
+++ 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
 Thu Nov  9 15:01:07 2006
@@ -44,6 +44,7 @@
     private static final String PROP_CONNECTOR_PORT = "ode-axis2.jca.port";
     private static final String PROP_WORKING_DIR = "ode-axis2.working.dir";
     private static final String PROP_REPLICATE_EMPTYNS = 
"ode-axis2.message.replicate.emptyns";
+    private static final String PROP_EVENT_LISTENERS = 
"ode-axis2.event.listeners";
 
     private File _installDir;
 
@@ -136,6 +137,10 @@
 
     public boolean isReplicateEmptyNS() {
         return 
Boolean.valueOf(getProperty(ODEConfigProperties.PROP_REPLICATE_EMPTYNS, 
"true"));
+    }
+
+    public String getEventListeners() {
+        return getProperty(PROP_EVENT_LISTENERS);
     }
 
 }

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=473126&r1=473125&r2=473126
==============================================================================
--- 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 
Thu Nov  9 15:01:07 2006
@@ -34,6 +34,7 @@
 import org.apache.ode.bpel.connector.BpelServerConnector;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
 import org.apache.ode.bpel.engine.BpelServerImpl;
+import org.apache.ode.bpel.iapi.BpelEventListener;
 import org.apache.ode.bpel.iapi.ProcessStore;
 import org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl;
 import org.apache.ode.daohib.DataSourceConnectionProvider;
@@ -62,6 +63,7 @@
 import java.sql.DatabaseMetaData;
 import java.util.HashMap;
 import java.util.Properties;
+import java.util.StringTokenizer;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -421,10 +423,10 @@
         _server.setBindingContext(new BindingContextImpl(this, _store));
         _server.setScheduler(_scheduler);
         _server.setProcessStore(_store);
+        registerEventListeners();
         _server.init();
     }
 
- 
     @SuppressWarnings("unchecked")
     private <T> T lookupInJndi(String objName) throws Exception {
         ClassLoader old = Thread.currentThread().getContextClassLoader();
@@ -489,6 +491,22 @@
 
     public BpelServerImpl getBpelServer() {
         return _server;
+    }
+
+    private void registerEventListeners() {
+        String listenersStr = _odeConfig.getEventListeners();
+        if (listenersStr != null) {
+            for (StringTokenizer tokenizer = new StringTokenizer(listenersStr, 
",;"); tokenizer.hasMoreTokens();) {
+                String listenerCN = tokenizer.nextToken();
+                try {
+                    _server.registerBpelEventListener((BpelEventListener) 
Class.forName(listenerCN).newInstance());
+                } catch (Exception e) {
+                    __log.warn("Couldn't register the event listener " + 
listenerCN + ", the class couldn't be " +
+                            "loaded properly.");
+                }
+            }
+
+        }
     }
 
     private static final String DEFAULT_HIBERNATE_DIALECT = 
"org.hibernate.dialect.DerbyDialect";


Reply via email to