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"));
  
  
  

Reply via email to