You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2003/11/16 08:18:26 UTC

cvs commit: incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/jetty JettyWebApplication.java

dain        2003/11/15 23:18:26

  Modified:    modules/web/src/java/org/apache/geronimo/web
                        WebApplication.java
               modules/web/src/java/org/apache/geronimo/web/jetty
                        JettyWebApplication.java
  Log:
  added support for setting jndi context
  
  Revision  Changes    Path
  1.11      +44 -40    incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/WebApplication.java
  
  Index: WebApplication.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/WebApplication.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- WebApplication.java	30 Oct 2003 07:47:05 -0000	1.10
  +++ WebApplication.java	16 Nov 2003 07:18:26 -0000	1.11
  @@ -53,77 +53,81 @@
    *
    * ====================================================================
    */
  -
   package org.apache.geronimo.web;
   
   import java.net.URI;
  +
   import org.apache.geronimo.core.service.Component;
   import org.apache.geronimo.kernel.management.WebModule;
  -
  +import org.apache.geronimo.naming.java.ReadOnlyContext;
   
   
   /**
    * The WebApplication interface represents a web application deployable within a WebContainer.
    *
  - * It supports the J2EE Management WebModule attributes 
  + * It supports the J2EE Management WebModule attributes
    *
    * @version  $Revision$ $Date$
    */
   public interface WebApplication extends Component, WebModule {
  - 
  -    /*-------------------------------------------------------------------------------- */
  -    /**Get the uri of the webapp
  +    /**
  +     * Get the uri of the webapp
        * @return the URI of the webapp deployment
        */
       public URI getURI();
   
  -    
  -    /* -------------------------------------------------------------------------------------- */
  -    /** Setter for the parent classloader for this webapp
  +    /**
  +     * Setter for the parent classloader for this webapp
        * @param loader
        */
  -    public void setParentClassLoader (ClassLoader loader);
  +    public void setParentClassLoader(ClassLoader loader);
   
  -    /* -------------------------------------------------------------------------------------- */
  -    /** Getter for the parent classloader for this webapp
  -     * @param loader
  +    /**
  +     * Getter for the parent classloader for this webapp
        */
  -    public ClassLoader getParentClassLoader ();
  +    public ClassLoader getParentClassLoader();
   
  -    
  -
  -
  -    /* -------------------------------------------------------------------------------------- */
  -    /**Get the context path for the webapp
  -     * @return 
  +    /**
  +     * Get the context path for the webapp
  +     * @return
        */
       public String getContextPath();
   
   
  -    /* -------------------------------------------------------------------------------------- */
  -    /**Set the context path for the webapp
  -     * @return 
  +    /**
  +     * Set the context path for the webapp
  +     * @param path the context path of the web application
        */
       public void setContextPath(String path);
   
  -
  -    /*-------------------------------------------------------------------------------- */
  -     /** JSR077 WebModule method to expose the
  -      *  contents of the webapp's web.xml file
  -      *
  -      * @return the contents of the web.xml as a string
  -      */
  +    /**
  +     * JSR077 WebModule method to expose the
  +     * contents of the webapp's web.xml file
  +     * @return the contents of the web.xml as a string
  +     */
       public String getDeploymentDescriptor();
  -    
  -    /* -------------------------------------------------------------------------------------- */
  -     /**Getter for the class loader delegation model for this webapp
  -      * @return
  -      */
  -     public boolean getJava2ClassloadingCompliance ();
  -     
  -    /* -------------------------------------------------------------------------------------- */
  -    /**Set the class loading delegation model for this web application
  +
  +    /**
  +     * Getter for the class loader delegation model for this webapp
  +     * @return
  +     */
  +    public boolean getJava2ClassloadingCompliance();
  +
  +    /**
  +     * Set the class loading delegation model for this web application
        * @param state
        */
       public void setJava2ClassloadingCompliance(boolean state);
  +
  +    /**
  +     * Gets the JNDI context for the web application.
  +     * @return the jndi context
  +     */
  +    public ReadOnlyContext getContext();
  +
  +    /**
  +     * Sets the JNDI context for the web application.
  +     * @param context the jndi context
  +     */
  +    public void setContext(ReadOnlyContext context);
   }
  
  
  
  1.4       +46 -65    incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/jetty/JettyWebApplication.java
  
  Index: JettyWebApplication.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/jetty/JettyWebApplication.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JettyWebApplication.java	30 Oct 2003 07:47:05 -0000	1.3
  +++ JettyWebApplication.java	16 Nov 2003 07:18:26 -0000	1.4
  @@ -3,12 +3,14 @@
   import java.net.URI;
   import javax.management.MBeanServer;
   import javax.management.ObjectName;
  +
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.apache.geronimo.web.AbstractWebApplication;
   import org.apache.geronimo.web.WebContainer;
  -import org.mortbay.jetty.servlet.WebApplicationContext;
  +import org.apache.geronimo.naming.java.ReadOnlyContext;
   
  +import org.mortbay.jetty.servlet.WebApplicationContext;
   
   
   /**
  @@ -20,113 +22,92 @@
    * @jmx:mbean extends="org.apache.geronimo.web.AbstractWebApplicationMBean
    * @version $Revision$ $Date$
    */
  -public class JettyWebApplication extends AbstractWebApplication implements JettyWebApplicationMBean 
  -{
  -    private WebApplicationContext jettyContext = null;
  +public class JettyWebApplication extends AbstractWebApplication implements JettyWebApplicationMBean {
  +    private WebApplicationContext jettyContext;
  +    private ReadOnlyContext context;
       private final Log log = LogFactory.getLog(getClass());
   
  -    public JettyWebApplication ()
  -    {
  +    public JettyWebApplication() {
           super();
  -        jettyContext = new WebApplicationContext ();
  -        
  -        try
  -        {
  -            objectName = new ObjectName ("jetty:role=WebApplication, instance="+hashCode());
  -        }
  -        catch (Exception e)
  -        {
  -            log.warn (e.getMessage());
  +        jettyContext = new JettyWebApplicationContext();
  +
  +        try {
  +            objectName = new ObjectName("jetty:role=WebApplication, instance=" + hashCode());
  +        } catch (Exception e) {
  +            log.warn(e.getMessage());
           }
       }
   
  -    public JettyWebApplication(URI uri) 
  -    {
  +    public JettyWebApplication(URI uri) {
           super(uri);
  -        jettyContext = new WebApplicationContext(uri.toString());
  -        
  -        try
  -        {
  -            objectName = new ObjectName ("jetty:role=WebApplication, uri="+ObjectName.quote(uri.toString()));
  -        }
  -        catch (Exception e)
  -        {
  -            throw new IllegalStateException (e.getMessage());
  +        jettyContext = new JettyWebApplicationContext(uri.toString());
  +
  +        try {
  +            objectName = new ObjectName("jetty:role=WebApplication, uri=" + ObjectName.quote(uri.toString()));
  +        } catch (Exception e) {
  +            throw new IllegalStateException(e.getMessage());
           }
       }
  -    
  -  
  -    public ObjectName preRegister (MBeanServer server,  ObjectName objectName) throws Exception 
  -    {       
  -        return super.preRegister (server,objectName); 
  +
  +    public ObjectName preRegister(MBeanServer server, ObjectName objectName) throws Exception {
  +        return super.preRegister(server, objectName);
       }
   
  -    public void setParentClassLoader (ClassLoader loader)
  -    {
  -        jettyContext.setParentClassLoader (loader);
  +    public void setParentClassLoader(ClassLoader loader) {
  +        jettyContext.setParentClassLoader(loader);
       }
   
  -    public ClassLoader getParentClassLoader()
  -    {
  +    public ClassLoader getParentClassLoader() {
           return jettyContext.getParentClassLoader();
       }
   
  -
  -   
  -
  -    public void setContextPath (String path)
  -    {
  +    public void setContextPath(String path) {
           jettyContext.setContextPath(path);
       }
   
  -    public String getContextPath ()
  -    {
  +    public String getContextPath() {
           return jettyContext.getContextPath();
       }
   
  -
  -    public String getDeploymentDescriptor ()
  -    {
  +    public String getDeploymentDescriptor() {
           //TODO
           return null;
       }
   
  -
  -
  -    public boolean getJava2ClassloadingCompliance ()
  -    {
  +    public boolean getJava2ClassloadingCompliance() {
           return jettyContext.isClassLoaderJava2Compliant();
       }
   
  -    public void setJava2ClassloadingCompliance (boolean state)
  -    {
  +    public void setJava2ClassloadingCompliance(boolean state) {
           jettyContext.setClassLoaderJava2Compliant(state);
       }
   
  -
  -    WebApplicationContext getJettyContext ()
  -    {
  +    WebApplicationContext getJettyContext() {
           return jettyContext;
       }
   
  +    public ReadOnlyContext getContext() {
  +        return context;
  +    }
   
  -    public void doStart () throws Exception
  -    {
  +    public void setContext(ReadOnlyContext context) {
  +        this.context = context;
  +    }
  +
  +    public void doStart() throws Exception {
           super.doStart();
           String defaultDescriptor = null;
  -        URI defaultDescriptorURI = ((WebContainer)getContainer()).getDefaultWebXmlURI();
  +        URI defaultDescriptorURI = ((WebContainer) getContainer()).getDefaultWebXmlURI();
           if (defaultDescriptorURI != null)
               defaultDescriptor = defaultDescriptorURI.toString();
           jettyContext.setDefaultsDescriptor(defaultDescriptor);
           jettyContext.start();
  -        
  -        log.debug (jettyContext.getFileClassPath());
  -    }
   
  +        log.debug(jettyContext.getFileClassPath());
  +    }
   
  -    public void doStop () throws Exception 
  -    {
  +    public void doStop() throws Exception {
           super.doStop();
           jettyContext.stop();
       }
  -} 
  +}
  
  
  

Re: cvs commit: incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/jetty JettyWebApplication.java

Posted by Jan Bartel <ja...@mortbay.com>.
Dain,

Just a couple of things on the changes to support JNDI contexts:

    + could the method signatures on the interface WebApplication
      be changed to the more generic:
       public javax.naming.Context getContext();
       public void setContext (javax.naming.Context context);

      We've said that ReadOnlyContext was a temporary solution, plus
      we might want to plug in an entirely different JNDI impl, so
      it would be better to keep the interface as generic as possible.

    + could you move the methods:
      public javax.naming.Context getContext() {
         return context;
      }
      public void setContext(javax.naming.Context context) {
        this.context = context;
      }

      into AbstractWebContainer as they will be applicable for all
      types of web containers, not just Jetty.

I'd make these changes myself, but I don't want to make any changes if 
you're rushing to get stuff done.

Jan


>   
>   1.4       +46 -65    incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/jetty/JettyWebApplication.java
>   
>   Index: JettyWebApplication.java
>   ===================================================================
>   RCS file: /home/cvs/incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/jetty/JettyWebApplication.java,v
>   retrieving revision 1.3
>   retrieving revision 1.4
>   diff -u -r1.3 -r1.4
>   --- JettyWebApplication.java	30 Oct 2003 07:47:05 -0000	1.3
>   +++ JettyWebApplication.java	16 Nov 2003 07:18:26 -0000	1.4
>   @@ -3,12 +3,14 @@
>    import java.net.URI;
>    import javax.management.MBeanServer;
>    import javax.management.ObjectName;
>   +
>    import org.apache.commons.logging.Log;
>    import org.apache.commons.logging.LogFactory;
>    import org.apache.geronimo.web.AbstractWebApplication;
>    import org.apache.geronimo.web.WebContainer;
>   -import org.mortbay.jetty.servlet.WebApplicationContext;
>   +import org.apache.geronimo.naming.java.ReadOnlyContext;
>    
>   +import org.mortbay.jetty.servlet.WebApplicationContext;
>    
>    
>    /**
>   @@ -20,113 +22,92 @@
>     * @jmx:mbean extends="org.apache.geronimo.web.AbstractWebApplicationMBean
>     * @version $Revision$ $Date$
>     */
>   -public class JettyWebApplication extends AbstractWebApplication implements JettyWebApplicationMBean 
>   -{
>   -    private WebApplicationContext jettyContext = null;
>   +public class JettyWebApplication extends AbstractWebApplication implements JettyWebApplicationMBean {
>   +    private WebApplicationContext jettyContext;
>   +    private ReadOnlyContext context;
>        private final Log log = LogFactory.getLog(getClass());
>    
>   -    public JettyWebApplication ()
>   -    {
>   +    public JettyWebApplication() {
>            super();
>   -        jettyContext = new WebApplicationContext ();
>   -        
>   -        try
>   -        {
>   -            objectName = new ObjectName ("jetty:role=WebApplication, instance="+hashCode());
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            log.warn (e.getMessage());
>   +        jettyContext = new JettyWebApplicationContext();
>   +
>   +        try {
>   +            objectName = new ObjectName("jetty:role=WebApplication, instance=" + hashCode());
>   +        } catch (Exception e) {
>   +            log.warn(e.getMessage());
>            }
>        }
>    
>   -    public JettyWebApplication(URI uri) 
>   -    {
>   +    public JettyWebApplication(URI uri) {
>            super(uri);
>   -        jettyContext = new WebApplicationContext(uri.toString());
>   -        
>   -        try
>   -        {
>   -            objectName = new ObjectName ("jetty:role=WebApplication, uri="+ObjectName.quote(uri.toString()));
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            throw new IllegalStateException (e.getMessage());
>   +        jettyContext = new JettyWebApplicationContext(uri.toString());
>   +
>   +        try {
>   +            objectName = new ObjectName("jetty:role=WebApplication, uri=" + ObjectName.quote(uri.toString()));
>   +        } catch (Exception e) {
>   +            throw new IllegalStateException(e.getMessage());
>            }
>        }
>   -    
>   -  
>   -    public ObjectName preRegister (MBeanServer server,  ObjectName objectName) throws Exception 
>   -    {       
>   -        return super.preRegister (server,objectName); 
>   +
>   +    public ObjectName preRegister(MBeanServer server, ObjectName objectName) throws Exception {
>   +        return super.preRegister(server, objectName);
>        }
>    
>   -    public void setParentClassLoader (ClassLoader loader)
>   -    {
>   -        jettyContext.setParentClassLoader (loader);
>   +    public void setParentClassLoader(ClassLoader loader) {
>   +        jettyContext.setParentClassLoader(loader);
>        }
>    
>   -    public ClassLoader getParentClassLoader()
>   -    {
>   +    public ClassLoader getParentClassLoader() {
>            return jettyContext.getParentClassLoader();
>        }
>    
>   -
>   -   
>   -
>   -    public void setContextPath (String path)
>   -    {
>   +    public void setContextPath(String path) {
>            jettyContext.setContextPath(path);
>        }
>    
>   -    public String getContextPath ()
>   -    {
>   +    public String getContextPath() {
>            return jettyContext.getContextPath();
>        }
>    
>   -
>   -    public String getDeploymentDescriptor ()
>   -    {
>   +    public String getDeploymentDescriptor() {
>            //TODO
>            return null;
>        }
>    
>   -
>   -
>   -    public boolean getJava2ClassloadingCompliance ()
>   -    {
>   +    public boolean getJava2ClassloadingCompliance() {
>            return jettyContext.isClassLoaderJava2Compliant();
>        }
>    
>   -    public void setJava2ClassloadingCompliance (boolean state)
>   -    {
>   +    public void setJava2ClassloadingCompliance(boolean state) {
>            jettyContext.setClassLoaderJava2Compliant(state);
>        }
>    
>   -
>   -    WebApplicationContext getJettyContext ()
>   -    {
>   +    WebApplicationContext getJettyContext() {
>            return jettyContext;
>        }
>    
>   +    public ReadOnlyContext getContext() {
>   +        return context;
>   +    }
>    
>   -    public void doStart () throws Exception
>   -    {
>   +    public void setContext(ReadOnlyContext context) {
>   +        this.context = context;
>   +    }
>   +
>   +    public void doStart() throws Exception {
>            super.doStart();
>            String defaultDescriptor = null;
>   -        URI defaultDescriptorURI = ((WebContainer)getContainer()).getDefaultWebXmlURI();
>   +        URI defaultDescriptorURI = ((WebContainer) getContainer()).getDefaultWebXmlURI();
>            if (defaultDescriptorURI != null)
>                defaultDescriptor = defaultDescriptorURI.toString();
>            jettyContext.setDefaultsDescriptor(defaultDescriptor);
>            jettyContext.start();
>   -        
>   -        log.debug (jettyContext.getFileClassPath());
>   -    }
>    
>   +        log.debug(jettyContext.getFileClassPath());
>   +    }
>    
>   -    public void doStop () throws Exception 
>   -    {
>   +    public void doStop() throws Exception {
>            super.doStop();
>            jettyContext.stop();
>        }
>   -} 
>   +}
>   
>   
>