You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ms...@apache.org on 2007/02/16 23:58:25 UTC
svn commit: r508640 - in /incubator/ode/trunk:
axis2/src/main/java/org/apache/ode/axis2/
bpel-epr/src/main/java/org/apache/ode/il/config/
bpel-epr/src/main/java/org/apache/ode/il/dbutil/
bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/ bpel-stor...
Author: mszefler
Date: Fri Feb 16 14:58:22 2007
New Revision: 508640
URL: http://svn.apache.org/viewvc?view=rev&rev=508640
Log:
Further refactor of datastore config.
Modified:
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/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java
incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Messages.java
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConfigProperties.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/ODEServer.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?view=diff&rev=508640&r1=508639&r2=508640
==============================================================================
--- 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 Fri Feb 16 14:58:22 2007
@@ -19,12 +19,8 @@
package org.apache.ode.axis2;
-import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Properties;
import java.util.StringTokenizer;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -50,7 +46,6 @@
import org.apache.ode.axis2.service.ManagementService;
import org.apache.ode.bpel.connector.BpelServerConnector;
import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
-import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
import org.apache.ode.bpel.engine.BpelServerImpl;
import org.apache.ode.bpel.engine.CountLRUDehydrationPolicy;
import org.apache.ode.bpel.iapi.BpelEventListener;
@@ -95,6 +90,8 @@
protected Scheduler _scheduler;
+ protected Database _db;
+
private DeploymentPoller _poller;
private MultiKeyMap _services = new MultiKeyMap();
@@ -103,7 +100,6 @@
private BpelServerConnector _connector;
- private Database _db;
public void init(ServletConfig config, AxisConfiguration axisConf) throws ServletException {
boolean success = false;
@@ -408,30 +404,15 @@
* @throws ServletException
*/
protected void initDAO() throws ServletException {
- Properties properties = new Properties();
- File daoPropFile;
- String confDir = System.getProperty("org.apache.ode.configDir");
- daoPropFile = new File((confDir != null) ? new File(confDir) : _appRoot, "bpel-dao.properties");
-
- if (daoPropFile.exists()) {
- FileInputStream fis;
- try {
- fis = new FileInputStream(daoPropFile);
- properties.load(new BufferedInputStream(fis));
- } catch (IOException e) {
- String errmsg = __msgs.msgOdeInitDAOErrorReadingProperties(daoPropFile);
- __log.error(errmsg, e);
- throw new ServletException(errmsg, e);
- }
- } else {
- __log.info(__msgs.msgOdeInitHibernatePropertiesNotFound(daoPropFile));
+ __log.info(__msgs.msgOdeUsingDAOImpl(_odeConfig.getDAOConnectionFactory()));
+ try {
+ _daoCF = _db.createDaoCF();
+ } catch (Exception ex) {
+ String errmsg = __msgs.msgDAOInstantiationFailed(_odeConfig.getDAOConnectionFactory());
+ __log.error(errmsg, ex);
+ throw new ServletException(errmsg, ex);
+
}
-
- BpelDAOConnectionFactoryJDBC cf = createDaoCF();
- cf.setDataSource(_db.getDataSource());
- cf.setTransactionManager(_txMgr);
- cf.init(properties);
- _daoCF = cf;
}
protected void initProcessStore() {
@@ -441,7 +422,7 @@
}
protected ProcessStoreImpl createProcessStore(DataSource ds) {
- return new ProcessStoreImpl(ds);
+ return new ProcessStoreImpl(ds, _odeConfig.getDAOConnectionFactory(),false);
}
protected Scheduler createScheduler() {
@@ -525,32 +506,6 @@
default:
__log.debug("Ignoring store event: " + pse);
}
- }
-
- private BpelDAOConnectionFactoryJDBC createDaoCF() throws ServletException {
- String pClassName = "org.apache.ode.dao.jpa.ojpa.BPELDAOConnectionFactoryImpl";
- String persistenceType = System.getProperty("ode.persistence");
- if (persistenceType != null) {
- if ("hibernate".equalsIgnoreCase(persistenceType))
- pClassName = "org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl";
- else if ("jpa".equalsIgnoreCase(persistenceType))
- pClassName = "org.apache.ode.dao.jpa.ojpa.BPELDAOConnectionFactoryImpl";
- else
- pClassName = persistenceType;
- }
-
- __log.info(__msgs.msgOdeUsingDAOImpl(pClassName));
-
- BpelDAOConnectionFactoryJDBC cf;
- try {
- cf = (BpelDAOConnectionFactoryJDBC) Class.forName(pClassName).newInstance();
- } catch (Exception ex) {
- String errmsg = __msgs.msgDAOInstantiationFailed(pClassName);
- __log.error(errmsg, ex);
- throw new ServletException(errmsg, ex);
- }
-
- return cf;
}
}
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=508640&r1=508639&r2=508640
==============================================================================
--- 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 Fri Feb 16 14:58:22 2007
@@ -51,8 +51,6 @@
private static final String PROP_DB_LOGGING = "db.logging";
- private static final String PROP_DB_DAO = "db.dao";
-
private static final String PROP_TX_FACTORY_CLASS = "tx.factory.class";
private static final String PROP_POOL_MAX = "db.pool.max";
@@ -71,12 +69,29 @@
private static final String PROP_PROCESS_DEHYDRATION = "process.dehydration";
+ private static final String PROP_DAOCF = "dao.factory";
+
+
private File _cfgFile;
private String _prefix;
private Properties _props;
+ /** Default defaults for the database embedded name and dao connection factory class. */
+ private static String __dbEmbName = "jpadb";
+ private static String __daoCfClass = "org.apache.ode.dao.jpa.ojpa.BPELDAOConnectionFactoryImpl";
+
+ static {
+ String odep = System.getProperty("ode.persistence");
+ if (odep != null &&
+ "hibernate".equalsIgnoreCase(odep)) {
+ __log.debug("Using HIBERNATE due to system property override!");
+ __dbEmbName = "hibdb";
+ __daoCfClass = "org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl";
+
+ }
+ }
/**
* Possible database modes.
*/
@@ -91,10 +106,6 @@
EMBEDDED
}
- public enum DaoType {
- JPA, HIBERNATE
- }
-
public OdeConfigProperties(File cfgFile, String prefix) {
_cfgFile = cfgFile;
_prefix = prefix;
@@ -131,10 +142,19 @@
*
* @return db mode
*/
+ public String getDbEmbeddedName() {
+ return getProperty(OdeConfigProperties.PROP_DB_EMBEDDED_NAME, __dbEmbName);
+
+ }
+
public DatabaseMode getDbMode() {
return DatabaseMode.valueOf(getProperty(OdeConfigProperties.PROP_DB_MODE, DatabaseMode.EMBEDDED.toString()).trim()
.toUpperCase());
}
+
+ public String getDAOConnectionFactory() {
+ return getProperty(PROP_DAOCF, __daoCfClass);
+ }
public String getDbDataSource() {
return getProperty(OdeConfigProperties.PROP_DB_EXTERNAL_DS, "java:comp/env/jdbc/ode-ds");
@@ -193,19 +213,6 @@
return Boolean.valueOf(getProperty(OdeConfigProperties.PROP_DB_LOGGING, "false"));
}
- public DaoType getDbDaoImpl() {
- try {
- String persistenceType = System.getProperty("ode.persistence");
- if (persistenceType != null) {
- return DaoType.valueOf(persistenceType.toUpperCase());
- }
- } catch (Throwable t) {
- __log.debug("error reading system property override for DAO type.", t);
- // fall through, and use the default mechanism
- }
-
- return DaoType.valueOf(_props.getProperty(PROP_DB_DAO, DaoType.JPA.toString()));
- }
protected String getProperty(String pname) {
return _props.getProperty(_prefix + pname);
@@ -213,6 +220,10 @@
protected String getProperty(String key, String dflt) {
return _props.getProperty(_prefix + key, dflt);
+ }
+
+ public Properties getProperties() {
+ return _props;
}
}
Modified: incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java?view=diff&rev=508640&r1=508639&r2=508640
==============================================================================
--- incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java (original)
+++ incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java Fri Feb 16 14:58:22 2007
@@ -11,6 +11,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.derby.jdbc.EmbeddedDriver;
+import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
import org.apache.ode.il.config.OdeConfigProperties;
import org.apache.ode.utils.LoggingDataSourceWrapper;
import org.opentools.minerva.MinervaPool;
@@ -175,19 +176,7 @@
*/
private void initEmbeddedDb() throws DatabaseConfigException {
- String db;
- switch (_odeConfig.getDbDaoImpl()) {
- case HIBERNATE:
- db = "hibdb";
- break;
- case JPA:
- db = "jpadb";
- break;
- default:
- String errmsg = __msgs.msgUnrecoginizedDaoType(_odeConfig.getDbDaoImpl());
- __log.error(errmsg);
- throw new DatabaseConfigException(errmsg, null);
- }
+ String db = _odeConfig.getDbEmbeddedName();
String url = "jdbc:derby:" + _workRoot + "/" + db ;
__log.info("Using Embedded Derby: " + url);
@@ -216,6 +205,26 @@
} finally {
Thread.currentThread().setContextClassLoader(old);
}
+ }
+
+ public BpelDAOConnectionFactoryJDBC createDaoCF() throws DatabaseConfigException {
+ String pClassName = _odeConfig.getDAOConnectionFactory();
+
+ __log.info(__msgs.msgOdeUsingDAOImpl(pClassName));
+
+ BpelDAOConnectionFactoryJDBC cf;
+ try {
+ cf = (BpelDAOConnectionFactoryJDBC) Class.forName(pClassName).newInstance();
+ } catch (Exception ex) {
+ String errmsg = __msgs.msgDAOInstantiationFailed(pClassName);
+ __log.error(errmsg, ex);
+ throw new DatabaseConfigException(errmsg, ex);
+ }
+
+ cf.setDataSource(_datasource);
+ cf.setTransactionManager(_txm);
+ cf.init(_odeConfig.getProperties());
+ return cf;
}
}
Modified: incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Messages.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Messages.java?view=diff&rev=508640&r1=508639&r2=508640
==============================================================================
--- incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Messages.java (original)
+++ incubator/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Messages.java Fri Feb 16 14:58:22 2007
@@ -2,7 +2,6 @@
import java.io.File;
-import org.apache.ode.il.config.OdeConfigProperties.DaoType;
import org.apache.ode.utils.msg.MessageBundle;
public class Messages extends MessageBundle {
@@ -39,10 +38,6 @@
public String msgDAOInstantiationFailed(String className) {
return format("Error instantiating DAO Connection Factory class {0}.", className);
- }
-
- public String msgUnrecoginizedDaoType(DaoType dbDaoImpl) {
- return format("Unsupported/Unrecoginized DAO type {0}. ", dbDaoImpl);
}
}
Modified: incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java?view=diff&rev=508640&r1=508639&r2=508640
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java Fri Feb 16 14:58:22 2007
@@ -88,7 +88,7 @@
if (_scheduler == null)
throw new RuntimeException("No scheduler");
//_store = new ProcessStoreImpl(new File("."), _dataSource, _txManager);
- _store = new ProcessStoreImpl(_dataSource);
+ _store = new ProcessStoreImpl(_dataSource,"jpa", true);
_server.setScheduler(_scheduler);
_server.setEndpointReferenceContext(createEndpointReferenceContext());
_server.setMessageExchangeContext(createMessageExchangeContext());
Modified: incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java?view=diff&rev=508640&r1=508639&r2=508640
==============================================================================
--- incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java (original)
+++ incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java Fri Feb 16 14:58:22 2007
@@ -81,20 +81,13 @@
private DataSource _inMemDs;
public ProcessStoreImpl() {
- this(null);
+ this(null, "", true);
}
-
- public ProcessStoreImpl(DataSource ds) {
- this(ds, false);
- }
-
- public ProcessStoreImpl(DataSource ds, boolean auto) {
- this(ds, System.getProperty("ode.persistence"), auto);
- }
-
+
public ProcessStoreImpl(DataSource ds, String persistenceType, boolean auto) {
if (ds != null) {
- if ("hibernate".equalsIgnoreCase(persistenceType))
+ // ugly hack
+ if (persistenceType.toLowerCase().indexOf("hib") != -1)
_cf = new org.apache.ode.store.hib.DbConfStoreConnectionFactory(ds, auto);
else
_cf = new org.apache.ode.store.jpa.DbConfStoreConnectionFactory(ds, auto);
Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConfigProperties.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConfigProperties.java?view=diff&rev=508640&r1=508639&r2=508640
==============================================================================
--- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConfigProperties.java (original)
+++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConfigProperties.java Fri Feb 16 14:58:22 2007
@@ -34,8 +34,6 @@
private static final String PROP_ALLOW_INCOMPLETE_DEPLOYMENT = "allowIncompleteDeployment";
- private static final String PROP_DAOCF = "dao.factory";
-
private static final String PROP_MSGMAPPER = "messageMapper";
@@ -70,7 +68,4 @@
return getProperty(PROP_MSGMAPPER, JbiWsdl11WrapperMapper.class.getName());
}
- public String getDAOConnectionFactory() {
- return getProperty(PROP_DAOCF, "org.apache.ode.dao.jpa.ojpa.BPELDAOConnectionFactoryImpl");
- }
}
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=508640&r1=508639&r2=508640
==============================================================================
--- 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 Fri Feb 16 14:58:22 2007
@@ -19,12 +19,8 @@
package org.apache.ode.jbi;
-import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Properties;
import java.util.concurrent.Executors;
import javax.jbi.JBIException;
@@ -42,6 +38,7 @@
import org.apache.ode.bpel.engine.BpelServerImpl;
import org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl;
import org.apache.ode.il.dbutil.Database;
+import org.apache.ode.il.dbutil.DatabaseConfigException;
import org.apache.ode.jbi.msgmap.Mapper;
import org.apache.ode.store.ProcessStoreImpl;
import org.apache.ode.utils.fs.TempFileManager;
@@ -196,7 +193,7 @@
_ode._scheduler.setDataSource(_ode._dataSource);
_ode._scheduler.init();
- _ode._store = new ProcessStoreImpl(_ode._dataSource, _ode._config.getDbDaoImpl().toString(), false);
+ _ode._store = new ProcessStoreImpl(_ode._dataSource, _ode._config.getDAOConnectionFactory(), false);
_ode._store.loadAll();
_ode._server.setInMemDaoConnectionFactory(new org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl());
@@ -216,31 +213,13 @@
* @throws JBIException
*/
private void initDao() throws JBIException {
-
- Properties properties = new Properties();
- File daoPropFile;
- String confDir = _ode.getContext().getInstallRoot();
- daoPropFile = new File((confDir != null) ? new File(confDir) : new File(""), "bpel-dao.properties");
-
- if (daoPropFile.exists()) {
- FileInputStream fis;
- try {
- fis = new FileInputStream(daoPropFile);
- properties.load(new BufferedInputStream(fis));
- } catch (IOException e) {
- String errmsg = __msgs.msgOdeInitDAOErrorReadingProperties(daoPropFile);
- __log.error(errmsg, e);
- throw new JBIException(errmsg, e);
- }
- } else {
- __log.info(__msgs.msgOdeInitDAOPropertiesNotFound(daoPropFile));
+ BpelDAOConnectionFactoryJDBC cf;
+ try {
+ cf = _db.createDaoCF();
+ } catch (DatabaseConfigException e) {
+ String errmsg = __msgs.msgDAOInstantiationFailed(_ode._config.getDAOConnectionFactory());
+ throw new JBIException(errmsg,e);
}
-
- BpelDAOConnectionFactoryJDBC cf = createDaoCF();
- cf.setDataSource(_ode._dataSource);
- cf.setTransactionManager(_ode.getTransactionManager());
- cf.init(properties);
-
_ode._daocf = cf;
}
@@ -265,22 +244,7 @@
}
}
- private BpelDAOConnectionFactoryJDBC createDaoCF() throws JBIException {
- String pClassName = _ode._config.getDAOConnectionFactory();
-
- __log.info(__msgs.msgOdeUsingDAOImpl(pClassName));
-
- BpelDAOConnectionFactoryJDBC cf;
- try {
- cf = (BpelDAOConnectionFactoryJDBC) Class.forName(pClassName).newInstance();
- } catch (Exception ex) {
- String errmsg = __msgs.msgDAOInstantiationFailed(pClassName);
- __log.error(errmsg, ex);
- throw new JBIException(errmsg, ex);
- }
-
- return cf;
- }
+
public synchronized void start() throws JBIException {
if (_started)