cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory Constants.java EjbFactory.java ResourceEnvFactory.java ResourceFactory.java TransactionFactory.java

2001-01-22 Thread remm

remm01/01/22 19:43:55

  Modified:catalina/src/share/org/apache/naming/factory Constants.java
EjbFactory.java ResourceEnvFactory.java
ResourceFactory.java TransactionFactory.java
  Log:
  - Portback the pluggability enhancements for the JNDI object factories.
  
  Revision  ChangesPath
  1.2   +4 -2  
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/Constants.java
  
  Index: Constants.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/Constants.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Constants.java2000/11/04 06:46:09 1.1
  +++ Constants.java2001/01/23 03:43:53 1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/Constants.java,v
 1.1 2000/11/04 06:46:09 remm Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/11/04 06:46:09 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/Constants.java,v
 1.2 2001/01/23 03:43:53 remm Exp $
  + * $Revision: 1.2 $
  + * $Date: 2001/01/23 03:43:53 $
*
* 
*
  @@ -92,5 +92,7 @@
   Package + ".TyrexTransactionFactory";
   
   public static final String OBJECT_FACTORIES = "";
  +
  +public static final String FACTORY = "factory";
   
   }
  
  
  
  1.2   +41 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/EjbFactory.java
  
  Index: EjbFactory.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/EjbFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EjbFactory.java   2000/11/04 06:46:09 1.1
  +++ EjbFactory.java   2001/01/23 03:43:53 1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/EjbFactory.java,v
 1.1 2000/11/04 06:46:09 remm Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/11/04 06:46:09 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/EjbFactory.java,v
 1.2 2001/01/23 03:43:53 remm Exp $
  + * $Revision: 1.2 $
  + * $Date: 2001/01/23 03:43:53 $
*
* 
*
  @@ -77,7 +77,7 @@
* Object factory for EJBs.
* 
* @author Remy Maucherat
  - * @version $Revision: 1.1 $ $Date: 2000/11/04 06:46:09 $
  + * @version $Revision: 1.2 $ $Date: 2001/01/23 03:43:53 $
*/
   
   public class EjbFactory
  @@ -106,11 +106,46 @@
*/
   public Object getObjectInstance(Object obj, Name name, Context nameCtx,
   Hashtable environment)
  -throws NamingException {
  +throws Exception {
   
   if (obj instanceof EjbRef) {
   Reference ref = (Reference) obj;
  -// Does nothing yet
  +ObjectFactory factory = null;
  +RefAddr factoryRefAddr = ref.get(Constants.FACTORY);
  +if (factoryRefAddr != null) {
  +// Using the specified factory
  +String factoryClassName = 
  +factoryRefAddr.getContent().toString();
  +// Loading factory
  +ClassLoader tcl = 
  +Thread.currentThread().getContextClassLoader();
  +Class factoryClass = null;
  +if (tcl != null) {
  +try {
  +factoryClass = tcl.loadClass(factoryClassName);
  +} catch(ClassNotFoundException e) {
  +}
  +} else {
  +try {
  +factoryClass = Class.forName(factoryClassName);
  +} catch(ClassNotFoundException e) {
  +}
  +}
  +if (factoryClass != null) {
  +try {
  +factory = (ObjectFactory) factoryClass.newInstance();
  +} catch(Throwable t) {
  +}
  +}
  +}
  +// Note: No defaults here
  +if (factory != null) {
  +return factory.getObjectInstance
  +(obj, name, nameCtx, environment);
  +} else {
  +throw new NamingException
  +("Cannot create resource instance");
  +}
   }
   
   return null;
  
  
  
  1.2   +41 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory/ResourceEnvFactory.java
  
  Index: ResourceEnvFactory.java
  

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/factory Constants.java EjbFactory.java ResourceEnvFactory.java ResourceFactory.java TransactionFactory.java TyrexDataSourceFactory.java TyrexTransactionFactory.java LocalStrings.properties

2000-11-03 Thread remm

remm00/11/03 22:46:10

  Modified:catalina build.xml
   catalina/src/share/org/apache/catalina/core
StandardContext.java
  Added:   catalina/src/share/org/apache/naming EjbRef.java
ResourceEnvRef.java ResourceRef.java
TransactionRef.java
   catalina/src/share/org/apache/naming/factory Constants.java
EjbFactory.java ResourceEnvFactory.java
ResourceFactory.java TransactionFactory.java
TyrexDataSourceFactory.java
TyrexTransactionFactory.java
  Removed: catalina/src/share/org/apache/naming EjbRefAddr.java
ResourceEnvRefAddr.java ResourceRefAddr.java
   catalina/src/share/org/apache/naming/factory
LocalStrings.properties
  Log:
  - Removed the address references, and replaced them with references
(EjbRefAddr - EjbRef, ResourceEnvRefAddr - ResourceEnvRef,
ResourceRefAddr - ResourceRef). It makes the code simpler and easier to
understand.
  - Modified StandardContext to reflect this and create the right objects.
  - Add a Tyrex resource factory. Instructions on how to use it to follow
shortly, as soon as all the issues are ironed out. Although the DataSource
is successfully instantiated, some more configuration is needed.
  - The object factories are packaged in a separate JAR file
(lib/namingfactory.jar), to avoid classloading related problems.
  - Object factory selector, which should be more efficient than the built in
JNDI mechanism. There will be one for each type (resource, ejb,
resource-env). The first one is the ResourceFactory, which checks the
requested type and the parameters given to select the appropritate factory.
As there's only one factory right now, it can only select that one.
  - Add the selector factories for EJB and resource env (without any actual
factories)
  - Add transaction reference object.
  - Add a transaction factory selector.
  - Add a wrapper to get a UserTransaction object from Tyrex.
  - The StandardContext will now bind a reference to a user transaction in
java:comp/UserTransaction as recommended by the J2EE spec.
  
  Revision  ChangesPath
  1.20  +19 -1 jakarta-tomcat-4.0/catalina/build.xml
  
  Index: build.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/build.xml,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- build.xml 2000/11/02 06:14:07 1.19
  +++ build.xml 2000/11/04 06:46:07 1.20
  @@ -26,6 +26,12 @@
   mkdir dir="${catalina.build}/conf"/
   mkdir dir="${catalina.build}/lib"/
   mkdir dir="${catalina.build}/server"/
  +
  +!-- === Conditional Compilation Falgs  --
  +available property="tyrex.present"
  + classname="tyrex.jdbc.ServerDataSource" /
  +available property="jta.present"
  + classname="javax.transaction.UserTransaction" /
 /target
   
   
  @@ -72,7 +78,14 @@
   javac   srcdir="src/share" destdir="${catalina.build}/classes"

classpath="${parser.jar}:${jaxp.jar}:${regexp.jar}:${servlet.jar}:${jcert.jar}:${jnet.jar}:${jsse.jar}:${jmxri.jar}"
deprecation="off" debug="on" optimize="off" target="1.2"
  - excludes="**/CVS/**"/
  + excludes="**/CVS/**"
  +  exclude name="**/factory/TyrexDataSourceFactory.java" 
  +   unless="tyrex.present" /
  +  exclude name="**/factory/TyrexTransactionFactory.java" 
  +   unless="tyrex.present" /
  +  exclude name="**/factory/TransactionFactory.java" 
  +   unless="jta.present" /
  +/javac
   
   !-- Copy static resource files --
   copydir  src="src/share"dest="${catalina.build}/classes"
  @@ -87,6 +100,11 @@
   jar   jarfile="${catalina.build}/bin/naming.jar"
  basedir="${catalina.build}/classes"
  includes="**/org/apache/naming/**" 
  +   excludes="**/org/apache/naming/factory/**"
  +   /
  +jar   jarfile="${catalina.build}/lib/namingfactory.jar"
  +   basedir="${catalina.build}/classes"
  +   includes="**/org/apache/naming/factory/**"
  /
   
 /target
  
  
  
  1.28  +19 -14
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- StandardContext.java  2000/11/03 06:46:54 1.27
  +++ StandardContext.java  2000/11/04 06:46:07 1.28
  @@ -1,7 +1,7 @@
   /*
  - * $Header: