remm 00/12/06 23:25:52
Modified: catalina/src/share/org/apache/catalina/core
StandardContext.java
catalina/src/share/org/apache/catalina/startup Catalina.java
Log:
- Change the way resource-env (and the others) parameters are specified.
They now go to the server.xml file, using the new ResourceParams element,
child of the Context element.
Sample coming right after this commit.
Revision Changes Path
1.31 +43 -18
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.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- StandardContext.java 2000/11/25 00:57:24 1.30
+++ StandardContext.java 2000/12/07 07:25:48 1.31
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
1.30 2000/11/25 00:57:24 craigmcc Exp $
- * $Revision: 1.30 $
- * $Date: 2000/11/25 00:57:24 $
+ * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
1.31 2000/12/07 07:25:48 remm Exp $
+ * $Revision: 1.31 $
+ * $Date: 2000/12/07 07:25:48 $
*
* ====================================================================
*
@@ -72,6 +72,7 @@
import java.util.Iterator;
import java.util.TreeMap;
import java.util.Hashtable;
+import java.util.Enumeration;
import java.util.StringTokenizer;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
@@ -115,6 +116,7 @@
import org.apache.catalina.deploy.FilterDef;
import org.apache.catalina.deploy.FilterMap;
import org.apache.catalina.deploy.LoginConfig;
+import org.apache.catalina.deploy.ResourceParams;
import org.apache.catalina.deploy.SecurityCollection;
import org.apache.catalina.deploy.SecurityConstraint;
import org.apache.catalina.loader.StandardLoader;
@@ -131,7 +133,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.30 $ $Date: 2000/11/25 00:57:24 $
+ * @version $Revision: 1.31 $ $Date: 2000/12/07 07:25:48 $
*/
public final class StandardContext
@@ -353,6 +355,12 @@
/**
+ * The resource parameters for this web application, keyed by name.
+ */
+ private HashMap resourceParams = new HashMap();
+
+
+ /**
* The security role mappings for this application, keyed by role
* name (as used within the application).
*/
@@ -1084,6 +1092,22 @@
/**
+ * Add resource parameters for this web application.
+ *
+ * @param resourceParameters New resource parameters
+ */
+ public void addResourceParams(ResourceParams resourceParameters) {
+
+ synchronized (resourceParams) {
+ resourceParams.put(resourceParameters.getName(),
+ resourceParameters);
+ }
+ fireContainerEvent("addResourceParams", resourceParameters.getName());
+
+ }
+
+
+ /**
* Add an error page for the specified error or Java exception.
*
* @param errorPage The error page definition to be added
@@ -3133,7 +3157,7 @@
(ejb.getType(), ejb.getHome(), ejb.getRemote(), ejb.getLink(),
ejb.getRunAs());
// Adding the additional parameters, if any
- addAdditionalParameters(envCtx, ref, ejb.getName());
+ addAdditionalParameters(ref, ejb.getName());
try {
createSubcontexts(compCtx, ejb.getName());
compCtx.bind(ejb.getName(), ref);
@@ -3153,7 +3177,7 @@
(resource.getType(), resource.getDescription(),
resource.getScope(), resource.getAuth());
// Adding the additional parameters, if any
- addAdditionalParameters(envCtx, ref, resource.getName());
+ addAdditionalParameters(ref, resource.getName());
try {
createSubcontexts(compCtx, resource.getName());
compCtx.bind(resource.getName(), ref);
@@ -3172,7 +3196,7 @@
// Create a reference to the resource env.
Reference ref = new ResourceEnvRef(type);
// Adding the additional parameters, if any
- addAdditionalParameters(envCtx, ref, key);
+ addAdditionalParameters(ref, key);
try {
createSubcontexts(compCtx, key);
compCtx.bind(key, ref);
@@ -3224,17 +3248,18 @@
/**
* 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) {
+ private void addAdditionalParameters(Reference ref, String name) {
+ ResourceParams resourceParameters =
+ (ResourceParams) resourceParams.get(name);
+ if (resourceParameters == null)
+ return;
+ Hashtable params = resourceParameters.getParameters();
+ Enumeration enum = params.keys();
+ while (enum.hasMoreElements()) {
+ String paramName = (String) enum.nextElement();
+ String paramValue = (String) params.get(paramName);
+ StringRefAddr refAddr = new StringRefAddr(paramName, paramValue);
+ ref.add(refAddr);
}
}
1.9 +18 -4
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Catalina.java
Index: Catalina.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Catalina.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Catalina.java 2000/11/02 06:14:10 1.8
+++ Catalina.java 2000/12/07 07:25:50 1.9
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Catalina.java,v
1.8 2000/11/02 06:14:10 remm Exp $
- * $Revision: 1.8 $
- * $Date: 2000/11/02 06:14:10 $
+ * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Catalina.java,v
1.9 2000/12/07 07:25:50 remm Exp $
+ * $Revision: 1.9 $
+ * $Date: 2000/12/07 07:25:50 $
*
* ====================================================================
*
@@ -95,7 +95,7 @@
* </u>
*
* @author Craig R. McClanahan
- * @version $Revision: 1.8 $ $Date: 2000/11/02 06:14:10 $
+ * @version $Revision: 1.9 $ $Date: 2000/12/07 07:25:50 $
*/
public class Catalina {
@@ -467,6 +467,20 @@
"configClass"));
mapper.addRule(prefix + "", mapper.addChild
("addChild", "org.apache.catalina.Container"));
+
+ mapper.addRule(prefix + "/ResourceParams", mapper.objectCreate
+ ("org.apache.catalina.deploy.ResourceParams"));
+ mapper.addRule(prefix + "/ResourceParams",
+ mapper.setProperties());
+ mapper.addRule(prefix + "/ResourceParams", mapper.addChild
+ ("addResourceParams",
+ "org.apache.catalina.deploy.ResourceParams"));
+ mapper.addRule(prefix + "/ResourceParams/parameter",
+ mapper.methodSetter("addParameter", 2));
+ mapper.addRule(prefix + "/ResourceParams/parameter/name",
+ mapper.methodParam(0));
+ mapper.addRule(prefix + "/ResourceParams/parameter/value",
+ mapper.methodParam(1));
mapper.addRule(prefix + "/Ejb", mapper.objectCreate
("org.apache.catalina.deploy.ContextEjb"));