User: oleg
Date: 00/10/11 10:22:30
Modified: castorjdo/src/main/org/jboss/jdo/castor CastorJDOImpl.java
Log:
Added the possibility to place JDO classes to the common classpath via
ClassPathExtension MLET in jboss.conf
To switch on this mode add the fifth Boolean argument for CastorJDOImpl MLET in
jboss.conf and set it to true.
Revision Changes Path
1.4 +22 -8
contrib/castorjdo/src/main/org/jboss/jdo/castor/CastorJDOImpl.java
Index: CastorJDOImpl.java
===================================================================
RCS file:
/products/cvs/ejboss/contrib/castorjdo/src/main/org/jboss/jdo/castor/CastorJDOImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- CastorJDOImpl.java 2000/10/09 08:43:05 1.3
+++ CastorJDOImpl.java 2000/10/11 17:22:30 1.4
@@ -51,7 +51,7 @@
* Castor JDO support
*
* @author Oleg Nitz ([EMAIL PROTECTED])
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class CastorJDOImpl extends ServiceMBeanSupport
implements DataObjects, ObjectFactory, Referenceable, Serializable,
@@ -67,15 +67,26 @@
private transient PrintWriter writer;
+ /**
+ * Do JDO classes should be loader by the same class loader
+ * as Castor classes?
+ */
+ private boolean _sameClassLoader;
+
public CastorJDOImpl() {
// Instance being used as ObjectFactory
}
public CastorJDOImpl(String dbConf, String jndiName, Integer lockTimeout,
Boolean logging) {
+ this(dbConf, jndiName, lockTimeout, logging, Boolean.FALSE);
+ }
+
+ public CastorJDOImpl(String dbConf, String jndiName, Integer lockTimeout,
+ Boolean logging, Boolean sameClassLoader) {
org.exolab.castor.jdo.conf.Database database;
Unmarshaller unm;
int pos;
- int timeout = 0;
+ int timeout = 0;
_jndiName = jndiName;
_jdo.setTransactionManager("TransactionManager");
@@ -100,8 +111,9 @@
_jdo.setLogInterceptor(this);
}
instances.put(jndiName, this);
+ _sameClassLoader = sameClassLoader.booleanValue();
}
-
+
public ObjectName getObjectName(MBeanServer server, ObjectName name)
throws javax.management.MalformedObjectNameException {
return new ObjectName(OBJECT_NAME+",name="+_jndiName);
@@ -128,13 +140,15 @@
// DataObjects implementation ----------------------------------
public Database getDatabase()
throws DatabaseNotFoundException, PersistenceException {
- ClassLoader cl;
+ if (!_sameClassLoader) {
+ ClassLoader cl;
- cl = Thread.currentThread().getContextClassLoader();
- if (cl instanceof BeanClassLoader) {
- cl = cl.getParent();
+ cl = Thread.currentThread().getContextClassLoader();
+ if (cl instanceof BeanClassLoader) {
+ cl = cl.getParent();
+ }
+ _jdo.setClassLoader(cl);
}
- _jdo.setClassLoader(cl);
return _jdo.getDatabase();
}