remm 00/11/02 22:46:55
Modified: catalina/src/share/org/apache/catalina/core
StandardContext.java
Log:
- Fix for a dumb initialization problem of the naming context, where naming
entries which were including paths could be bound to an incorrect path.
- Add an easy to specify additional parameters for resources (by using env-entry
elements).
Revision Changes Path
1.27 +29 -7
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.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- StandardContext.java 2000/11/03 00:21:15 1.26
+++ StandardContext.java 2000/11/03 06:46:54 1.27
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
1.26 2000/11/03 00:21:15 craigmcc Exp $
- * $Revision: 1.26 $
- * $Date: 2000/11/03 00:21:15 $
+ * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
1.27 2000/11/03 06:46:54 remm Exp $
+ * $Revision: 1.27 $
+ * $Date: 2000/11/03 06:46:54 $
*
* ====================================================================
*
@@ -84,6 +84,9 @@
import javax.naming.InitialContext;
import javax.naming.Reference;
import javax.naming.StringRefAddr;
+import javax.naming.NamingEnumeration;
+import javax.naming.Binding;
+import javax.naming.StringRefAddr;
import org.apache.naming.NamingContext;
import org.apache.naming.ContextBindings;
import org.apache.naming.ContextAccessController;
@@ -127,7 +130,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.26 $ $Date: 2000/11/03 00:21:15 $
+ * @version $Revision: 1.27 $ $Date: 2000/11/03 06:46:54 $
*/
public final class StandardContext
@@ -3017,7 +3020,7 @@
ejb.getRunAs());
Reference ref = new Reference(ejb.getType(), ejbRefAddr);
// Adding the additional parameters, if any
-
+ addAdditionalParameters(envCtx, ref, ejb.getName());
try {
createSubcontexts(compCtx, ejb.getName());
compCtx.bind(ejb.getName(), ref);
@@ -3038,7 +3041,7 @@
resource.getScope(), resource.getAuth());
Reference ref = new Reference(resource.getType(), resourceRefAddr);
// Adding the additional parameters, if any
-
+ addAdditionalParameters(envCtx, ref, resource.getName());
try {
createSubcontexts(compCtx, resource.getName());
compCtx.bind(resource.getName(), ref);
@@ -3059,7 +3062,7 @@
ref.add(new StringRefAddr("name", key));
ref.add(new StringRefAddr("type", type));
// Adding the additional parameters, if any
-
+ addAdditionalParameters(envCtx, ref, key);
try {
createSubcontexts(compCtx, key);
compCtx.bind(key, ref);
@@ -3092,11 +3095,30 @@
} catch (NamingException e) {
// Silent catch. Probably an object is already bound in
// the context.
+ currentContext =
+ (javax.naming.Context) currentContext.lookup(token);
}
}
}
}
+
+ /**
+ * Add additional parameters to the reference.
+ */
+ private void addAdditionalParameters(javax.naming.Context ctx,
+ Reference ref, String name) {
+ try {
+ NamingEnumeration enum = ctx.listBindings(name);
+ while (enum.hasMore()) {
+ Binding binding = (Binding) enum.next();
+ StringRefAddr refAddr = new StringRefAddr
+ (binding.getName(), binding.getObject().toString());
+ ref.add(refAddr);
+ }
+ } catch (NamingException e) {
+ }
+ }
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]