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";