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();
       }
   
  
  
  

Reply via email to