geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From djen...@apache.org
Subject svn commit: r446934 [1/2] - in /geronimo/sandbox/javaee5: ./ modules-jee5/ modules-jee5/geronimo-jetty6/ modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/ modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/cluster/...
Date Sat, 16 Sep 2006 20:09:59 GMT
Author: djencks
Date: Sat Sep 16 13:09:57 2006
New Revision: 446934

URL: http://svn.apache.org/viewvc?view=rev&rev=446934
Log:
Initial hack of porting Jans' jetty6 work into the current geronimo code.  Compiles, but some tests are disabled and there's a lot more work to do.

Added:
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/
      - copied from r446787, geronimo/server/trunk/modules/geronimo-jetty/
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/DefaultSessionHandlerFactory.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java   (with props)
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java   (with props)
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/SessionHandlerFactory.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/cluster/ClusteredSessionHandler.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/cluster/ClusteredSessionHandlerFactory.java
Removed:
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/DefaultWebApplicationHandlerFactory.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/GeronimoServletHttpRequest.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/HandleInterceptor.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyWebApplicationHandler.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/WebApplicationHandlerFactory.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/cluster/ClusteredWebApplicationHandler.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/cluster/ClusteredWebApplicationHandlerFactory.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/interceptor/RequestWrappingBeforeAfter.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/interceptor/SecurityContextBeforeAfter.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/interceptor/WebApplicationContextBeforeAfter.java
Modified:
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/pom.xml
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JAASJettyRealm.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainer.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainerImpl.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterHolder.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterMapping.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyManagerImpl.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyPOJOWebServiceHolder.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServer.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletHolder.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletRegistration.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyWebAppContext.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyWebConnector.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyWebContainerStatsImpl.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/NonAuthenticator.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/cluster/AbstractClusteredHandleInterceptor.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/cluster/ClusteredSessionManager.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/connector/AJP13Connector.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/connector/GeronimoSSLListener.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/connector/HTTPConnector.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/connector/HTTPSConnector.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/connector/JettyConnector.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/interceptor/BeforeAfter.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/interceptor/ComponentContextBeforeAfter.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/interceptor/InstanceContextBeforeAfter.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/interceptor/ThreadClassloaderBeforeAfter.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/requestlog/JettyLogManagerImpl.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/requestlog/NCSARequestLog.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty/AbstractWebModuleTest.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty/ContainerTest.java
    geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty/SecurityTest.java
    geronimo/sandbox/javaee5/modules-jee5/pom.xml
    geronimo/sandbox/javaee5/pom.xml

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/pom.xml?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/pom.xml (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/pom.xml Sat Sep 16 13:09:57 2006
@@ -23,12 +23,12 @@
 
     <parent>
         <groupId>org.apache.geronimo.modules</groupId>
-        <artifactId>modules</artifactId>
+        <artifactId>modules-jee5</artifactId>
         <version>1.2-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>geronimo-jetty</artifactId>
+    <artifactId>geronimo-jetty6</artifactId>
     <name>Geronimo :: Jetty</name>
     
     <dependencies>
@@ -64,8 +64,8 @@
         </dependency>
         
         <dependency>
-            <groupId>jetty</groupId>
-            <artifactId>org.mortbay.jetty</artifactId>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty</artifactId>
         </dependency>
         
         <dependency>

Added: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/DefaultSessionHandlerFactory.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/DefaultSessionHandlerFactory.java?view=auto&rev=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/DefaultSessionHandlerFactory.java (added)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/DefaultSessionHandlerFactory.java Sat Sep 16 13:09:57 2006
@@ -0,0 +1,41 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.geronimo.jetty;
+
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.mortbay.jetty.servlet.SessionHandler;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DefaultSessionHandlerFactory implements SessionHandlerFactory {
+
+    public SessionHandler createHandler() {
+        //????
+        return null;
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(DefaultSessionHandlerFactory.class, NameFactory.GERONIMO_SERVICE);
+        infoBuilder.addInterface(SessionHandlerFactory.class);
+        GBEAN_INFO = infoBuilder.getBeanInfo();
+    }
+}

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java Sat Sep 16 13:09:57 2006
@@ -21,6 +21,7 @@
 import java.security.Principal;
 import java.security.cert.X509Certificate;
 import java.util.HashMap;
+
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
@@ -28,12 +29,11 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.geronimo.jetty.interceptor.SecurityContextBeforeAfter;
 import org.apache.geronimo.security.ContextManager;
 import org.apache.geronimo.security.realm.providers.CertificateCallbackHandler;
 import org.apache.geronimo.security.realm.providers.ClearableCallbackHandler;
 import org.apache.geronimo.security.realm.providers.PasswordCallbackHandler;
-import org.mortbay.http.HttpRequest;
+import org.mortbay.jetty.Request;
 
 
 /**
@@ -58,7 +58,7 @@
         return (Principal) userMap.get(username);
     }
 
-    public Principal authenticate(String username, Object credentials, HttpRequest request) {
+    public Principal authenticate(String username, Object credentials, Request request) {
         try {
             if ((username != null) && (!username.equals(""))) {
 

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JAASJettyRealm.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JAASJettyRealm.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JAASJettyRealm.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JAASJettyRealm.java Sat Sep 16 13:09:57 2006
@@ -18,17 +18,14 @@
 
 import java.security.Principal;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.mortbay.http.HttpRequest;
-import org.mortbay.http.UserRealm;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.security.UserRealm;
 
 
 /**
  * @version $Rev$ $Date$
  */
 public class JAASJettyRealm implements UserRealm {
-    private static Log log = LogFactory.getLog(JAASJettyRealm.class);
 
     private final String webRealmName;
     private final InternalJAASJettyRealm internalJAASJettyRealm;
@@ -46,7 +43,7 @@
         return internalJAASJettyRealm.getPrincipal(username);
     }
 
-    public Principal authenticate(String username, Object credentials, HttpRequest request) {
+    public Principal authenticate(String username, Object credentials, Request request) {
         return internalJAASJettyRealm.authenticate(username, credentials, request);
     }
 

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainer.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainer.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainer.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainer.java Sat Sep 16 13:09:57 2006
@@ -17,23 +17,22 @@
 
 package org.apache.geronimo.jetty;
 
-import org.mortbay.http.HttpContext;
-import org.mortbay.http.HttpListener;
-import org.mortbay.http.RequestLog;
-import org.mortbay.http.UserRealm;
 import org.apache.geronimo.management.geronimo.WebContainer;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.RequestLog;
+import org.mortbay.jetty.handler.ContextHandler;
 
 /**
  * @version $Rev$ $Date$
  */
 public interface JettyContainer extends WebContainer {
-    void addListener(HttpListener listener);
+    void addListener(Connector listener);
 
-    void removeListener(HttpListener listener);
+    void removeListener(Connector listener);
 
-    void addContext(HttpContext context);
+    void addContext(ContextHandler context);
 
-    void removeContext(HttpContext context);
+    void removeContext(ContextHandler context);
 
     InternalJAASJettyRealm addRealm(String realmName);
 

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainerImpl.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainerImpl.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyContainerImpl.java Sat Sep 16 13:09:57 2006
@@ -30,10 +30,15 @@
 import org.apache.geronimo.management.geronimo.WebManager;
 import org.apache.geronimo.webservices.SoapHandler;
 import org.apache.geronimo.webservices.WebServiceContainer;
-import org.mortbay.http.HttpContext;
-import org.mortbay.http.HttpListener;
-import org.mortbay.http.RequestLog;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.RequestLog;
 import org.mortbay.jetty.Server;
+import org.mortbay.jetty.handler.ContextHandler;
+import org.mortbay.jetty.handler.ContextHandlerCollection;
+import org.mortbay.jetty.handler.DefaultHandler;
+import org.mortbay.jetty.handler.HandlerCollection;
+import org.mortbay.jetty.handler.RequestLogHandler;
 
 /**
  * @version $Rev$ $Date$
@@ -45,10 +50,32 @@
     private final WebManager manager;
     private JettyWebContainerStatsImpl stats;
     private final Map realms = new HashMap();
+    private HandlerCollection handlerCollection = new HandlerCollection();
+    private ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
+    private DefaultHandler defaultHandler = new DefaultHandler();
+    private RequestLogHandler requestLogHandler = new RequestLogHandler();
 
     public JettyContainerImpl(String objectName, WebManager manager) {
         this.objectName = objectName;
         server = new JettyServer();
+
+        //set up the new jetty6 handler structure which is to have a HandlerCollection,
+        //each element of which is always tried on each request.
+        //The first element of the HandlerCollection is a
+        //ContextHandlerCollection, which is itself is a collection
+        //of Handlers. It's special property is that only of it's
+        //handlers will respond to a request.
+        //The second element of the HandlerCollection is a DefaultHandler
+        //which is responsible for serving static content or anything not
+        //handled by a Handler in the ContextHandlerCollection.
+        //The third element is the RequestLogHandler, which requires
+        //a RequestLog impl to be set.
+        Handler[] handlers = new Handler[3];
+        handlers[0] = contextHandlerCollection;
+        handlers[1] = defaultHandler;
+        handlers[2] = requestLogHandler;
+        server.setHandler(handlerCollection);
+
         stats = new JettyWebContainerStatsImpl();
         this.manager = manager;
     }
@@ -78,63 +105,64 @@
     }
 
     public void resetStatistics() {
-        server.statsReset();
+        //TODO: for jetty6
     }
 
     public void setCollectStatistics(boolean on) {
-        server.setStatsOn(on);
-        stats.setStatsOn(on);
+        //TODO: for jetty6
     }
 
     public boolean getCollectStatistics() {
-        return server.getStatsOn();
+        //TODO: for jetty6
+        return false;
     }
 
     public long getCollectStatisticsStarted() {
-        return server.getStatsOnMs();
+        //TODO: for jetty6
+        return 0L;
     }
 
     public Stats getStats() {
         if (getCollectStatistics()) {
 
             /* set active request count */
-            stats.getTotalRequestCountImpl().setCount(server.getRequests());
+//            stats.getTotalRequestCountImpl().setCount(server.getRequests());
 
             /* set total connection count */
-            stats.getTotalConnectionCountImpl().setCount(server.getConnections());
+//            stats.getTotalConnectionCountImpl().setCount(server.getConnections());
 
             /* set total error count */
-            stats.getTotalErrorCountImpl().setCount(server.getErrors());
+//            stats.getTotalErrorCountImpl().setCount(server.getErrors());
 
             /* set active request range values */
-            stats.getActiveRequestCountImpl().setCurrent(server.getRequestsActive());
-            stats.getActiveRequestCountImpl().setLowWaterMark(server.getRequestsActiveMin());
-            stats.getActiveRequestCountImpl().setHighWaterMark(server.getRequestsActiveMax());
+//            stats.getActiveRequestCountImpl().setCurrent(server.getRequestsActive());
+//            stats.getActiveRequestCountImpl().setLowWaterMark(server.getRequestsActiveMin());
+//            stats.getActiveRequestCountImpl().setHighWaterMark(server.getRequestsActiveMax());
 
             /* set connection requests range values */
 //          stats.getConnectionRequestCountImpl().setCurrent(server.getConnectionsRequestsCurrent());    // temporarily removed until added by jetty
-            stats.getConnectionRequestCountImpl().setCurrent(server.getConnectionsOpen());
-            stats.getConnectionRequestCountImpl().setLowWaterMark(server.getConnectionsRequestsMin());
-            stats.getConnectionRequestCountImpl().setHighWaterMark(server.getConnectionsRequestsMax());
+//            stats.getConnectionRequestCountImpl().setCurrent(server.getConnectionsOpen());
+//            stats.getConnectionRequestCountImpl().setLowWaterMark(server.getConnectionsRequestsMin());
+//            stats.getConnectionRequestCountImpl().setHighWaterMark(server.getConnectionsRequestsMax());
 
             /* set open connection range values */
-            stats.getOpenConnectionCountImpl().setCurrent(server.getConnectionsOpen());
-            stats.getOpenConnectionCountImpl().setLowWaterMark(server.getConnectionsOpenMin());
-            stats.getOpenConnectionCountImpl().setHighWaterMark(server.getConnectionsOpenMax());
+//            stats.getOpenConnectionCountImpl().setCurrent(server.getConnectionsOpen());
+//            stats.getOpenConnectionCountImpl().setLowWaterMark(server.getConnectionsOpenMin());
+//            stats.getOpenConnectionCountImpl().setHighWaterMark(server.getConnectionsOpenMax());
 
             /* set request duration time values */
-            stats.getRequestDurationImpl().setMinTime(server.getRequestsDurationMin());
-            stats.getRequestDurationImpl().setMaxTime(server.getRequestsDurationMax());
+//            stats.getRequestDurationImpl().setMinTime(server.getRequestsDurationMin());
+//            stats.getRequestDurationImpl().setMaxTime(server.getRequestsDurationMax());
 //          stats.getRequestDurationImpl().setCount(server.getRequestsDurationCount());     // temporarily removed until added by jetty
             stats.getRequestDurationImpl().setCount(stats.getTotalRequestCount().getCount());
-            stats.getRequestDurationImpl().setTotalTime(server.getRequestsDurationTotal());
+//            stats.getRequestDurationImpl().setTotalTime(server.getRequestsDurationTotal());
 
             /* set connection duration Time values */
-            stats.getConnectionDurationImpl().setMinTime(server.getConnectionsDurationMin());
-            stats.getConnectionDurationImpl().setMaxTime(server.getConnectionsDurationMax());
+//            stats.getConnectionDurationImpl().setMinTime(server.getConnectionsDurationMin());
+//            stats.getConnectionDurationImpl().setMaxTime(server.getConnectionsDurationMax());
 //          stats.getConnectionDurationImpl().setCount(server.getConnectionsDurationCount());    // temporarily removed until added by jetty
             stats.getConnectionDurationImpl().setCount(stats.getTotalConnectionCount().getCount());
-            stats.getConnectionDurationImpl().setTotalTime(server.getConnectionsDurationTotal());
+//            stats.getConnectionDurationImpl().setTotalTime(server.getConnectionsDurationTotal());
 
         } else {
             // should probably set the stats object to all zero/null values to avoid unpredicable results
@@ -142,20 +170,20 @@
         return stats;
     }
 
-    public void addListener(HttpListener listener) {
-        server.addListener(listener);
+    public void addListener(Connector listener) {
+        server.addConnector(listener);
     }
 
-    public void removeListener(HttpListener listener) {
-        server.removeListener(listener);
+    public void removeListener(Connector listener) {
+        server.removeConnector(listener);
     }
 
-    public void addContext(HttpContext context) {
-        server.addContext(context);
+    public void addContext(ContextHandler context) {
+        server.addHandler(context);
     }
 
-    public void removeContext(HttpContext context) {
-        server.removeContext(context);
+    public void removeContext(ContextHandler context) {
+        server.removeHandler(context);
     }
 
     public InternalJAASJettyRealm addRealm(String realmName) {
@@ -172,20 +200,20 @@
     public void removeRealm(String realmName) {
         InternalJAASJettyRealm realm = (InternalJAASJettyRealm) realms.get(realmName);
         if (realm != null) {
-            if (realm.removeUse() == 0){
+            if (realm.removeUse() == 0) {
                 realms.remove(realmName);
             }
         }
     }
 
     public void addWebService(String contextPath, String[] virtualHosts, WebServiceContainer webServiceContainer, String securityRealmName, String realmName, String transportGuarantee, String authMethod, ClassLoader classLoader) throws Exception {
-        InternalJAASJettyRealm internalJAASJettyRealm = securityRealmName == null? null:addRealm(securityRealmName);
+        InternalJAASJettyRealm internalJAASJettyRealm = securityRealmName == null ? null : addRealm(securityRealmName);
         JettyEJBWebServiceContext webServiceContext = new JettyEJBWebServiceContext(contextPath, webServiceContainer, internalJAASJettyRealm, realmName, transportGuarantee, authMethod, classLoader);
-        webServiceContext.setHosts(virtualHosts);
+        webServiceContext.setVirtualHosts(virtualHosts);
         addContext(webServiceContext);
         webServiceContext.start();
         webServices.put(contextPath, webServiceContext);
-     }
+    }
 
     public void removeWebService(String contextPath) {
         JettyEJBWebServiceContext webServiceContext = (JettyEJBWebServiceContext) webServices.remove(contextPath);
@@ -193,16 +221,20 @@
         if (securityRealmName != null) {
             removeRealm(securityRealmName);
         }
-        removeContext(webServiceContext);
+        try {
+            removeContext(webServiceContext);
+        } catch (Exception e) {
+            throw new IllegalStateException(e.getMessage());
+        }
     }
 
     public void setRequestLog(RequestLog log) {
-        server.setRequestLog(log);
+        this.requestLogHandler.setRequestLog(log);
     }
 
     /* ------------------------------------------------------------ */
     public RequestLog getRequestLog() {
-        return server.getRequestLog();
+        return this.requestLogHandler.getRequestLog();
     }
 
     public void doStart() throws Exception {
@@ -211,15 +243,15 @@
 
     public void doStop() {
         try {
-            server.stop(true);
-        } catch (InterruptedException e) {
+            server.stop();
+        } catch (Exception e) {
         }
     }
 
     public void doFail() {
         try {
-            server.stop(false);
-        } catch (InterruptedException e) {
+            server.stop();
+        } catch (Exception e) {
             // continue
         }
     }
@@ -234,10 +266,10 @@
 
         infoBuilder.addAttribute("requestLog", RequestLog.class, false, false);
 
-        infoBuilder.addOperation("addListener", new Class[]{HttpListener.class});
-        infoBuilder.addOperation("removeListener", new Class[]{HttpListener.class});
-        infoBuilder.addOperation("addContext", new Class[]{HttpContext.class});
-        infoBuilder.addOperation("removeContext", new Class[]{HttpContext.class});
+        infoBuilder.addOperation("addListener", new Class[]{Connector.class});
+        infoBuilder.addOperation("removeListener", new Class[]{Connector.class});
+        infoBuilder.addOperation("addContext", new Class[]{ContextHandler.class});
+        infoBuilder.addOperation("removeContext", new Class[]{ContextHandler.class});
         infoBuilder.addOperation("addRealm", new Class[]{String.class});
         infoBuilder.addOperation("removeRealm", new Class[]{String.class});
 

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java Sat Sep 16 13:09:57 2006
@@ -26,15 +26,14 @@
 
 import org.apache.geronimo.security.ContextManager;
 import org.apache.geronimo.webservices.WebServiceContainer;
-import org.mortbay.http.Authenticator;
-import org.mortbay.http.BasicAuthenticator;
-import org.mortbay.http.ClientCertAuthenticator;
-import org.mortbay.http.DigestAuthenticator;
-import org.mortbay.http.HttpContext;
-import org.mortbay.http.HttpException;
-import org.mortbay.http.HttpHandler;
-import org.mortbay.http.HttpRequest;
-import org.mortbay.http.HttpResponse;
+import org.mortbay.jetty.HttpException;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.Response;
+import org.mortbay.jetty.handler.ContextHandler;
+import org.mortbay.jetty.security.Authenticator;
+import org.mortbay.jetty.security.BasicAuthenticator;
+import org.mortbay.jetty.security.ClientCertAuthenticator;
+import org.mortbay.jetty.security.DigestAuthenticator;
 
 /**
  * Delegates requests to a WebServiceContainer which is presumably for an EJB WebService.
@@ -60,7 +59,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class JettyEJBWebServiceContext extends HttpContext implements HttpHandler {
+public class JettyEJBWebServiceContext extends ContextHandler {
 
     private final String contextPath;
     private final WebServiceContainer webServiceContainer;
@@ -70,14 +69,15 @@
     private final boolean isIntegralTransportGuarantee;
     private final ClassLoader classLoader;
 
-    private HttpContext httpContext;
 
     public JettyEJBWebServiceContext(String contextPath, WebServiceContainer webServiceContainer, InternalJAASJettyRealm internalJAASJettyRealm, String realmName, String transportGuarantee, String authMethod, ClassLoader classLoader) {
         this.contextPath = contextPath;
         this.webServiceContainer = webServiceContainer;
         if (internalJAASJettyRealm != null) {
             JAASJettyRealm realm = new JAASJettyRealm(realmName, internalJAASJettyRealm);
-            setRealm(realm);
+            //TODO
+            //not used???
+            //setUserRealm(realm);
             this.realm = realm;
             if ("NONE".equals(transportGuarantee)) {
                 isConfidentialTransportGuarantee = false;
@@ -116,16 +116,13 @@
         return contextPath;
     }
 
-    public HttpContext getHttpContext() {
-        return httpContext;
-    }
-
-    public void initialize(HttpContext httpContext) {
-        this.httpContext = httpContext;
-    }
+    public boolean handle(Request req, Response res) throws HttpException, IOException {
+        //TODO
+        //shouldn't set this on the request !
+        //req.setContentType("text/xml");
 
-    public void handle(HttpRequest req, HttpResponse res) throws HttpException, IOException {
-        req.setContentType("text/xml");
+        //TODO
+        //do we need to check that this request should be handled by this handler?
         RequestAdapter request = new RequestAdapter(req);
         ResponseAdapter response = new ResponseAdapter(res);
 
@@ -133,6 +130,7 @@
             try {
                 webServiceContainer.getWsdl(request, response);
                 //WHO IS RESPONSIBLE FOR CLOSING OUT?
+                return true;
             } catch (IOException e) {
                 throw e;
             } catch (Exception e) {
@@ -140,12 +138,12 @@
             }
         } else {
             if (isConfidentialTransportGuarantee) {
-                if (!req.isConfidential()) {
-                    throw new HttpException(403);
+                if (!req.isSecure()) {
+                    throw new HttpException(403, null);
                 }
             } else if (isIntegralTransportGuarantee) {
-                if (!req.isIntegral()) {
-                    throw new HttpException(403);
+                if (!req.getConnection().isIntegral(req)) {
+                    throw new HttpException(403, null);
                 }
             }
             Thread currentThread = Thread.currentThread();
@@ -155,9 +153,9 @@
 //            Subject oldSubject = ContextManager.getCurrentCaller();
             try {
                 if (authenticator != null) {
-                    String pathInContext = org.mortbay.util.URI.canonicalPath(req.getPath());
+                    String pathInContext = org.mortbay.util.URIUtil.canonicalPath(req.getContextPath());
                     if (authenticator.authenticate(realm, pathInContext, req, res) == null) {
-                        throw new HttpException(403);
+                        throw new HttpException(403, null);
                     }
                 } else {
                     //EJB will figure out correct defaultSubject shortly
@@ -167,7 +165,7 @@
                 }
                 try {
                     webServiceContainer.invoke(request, response);
-                    req.setHandled(true);
+                    return true;
                 } catch (IOException e) {
                     throw e;
                 } catch (Exception e) {
@@ -194,21 +192,21 @@
     }
 
     public static class RequestAdapter implements WebServiceContainer.Request {
-        private final HttpRequest request;
+        private final Request request;
         private URI uri;
 
-        public RequestAdapter(HttpRequest request) {
+        public RequestAdapter(Request request) {
             this.request = request;
         }
 
         public String getHeader(String name) {
-            return request.getField(name);
+            return request.getHeader(name);
         }
 
         public java.net.URI getURI() {
             if (uri == null) {
                 try {
-                    String uriString = request.getScheme() + "://" + request.getHost() + ":" + request.getPort() + request.getURI();
+                    String uriString = request.getScheme() + "://" + request.getRemoteHost() + ":" + request.getRemotePort() + request.getRequestURI();
                     //return new java.net.URI(uri.getScheme(),uri.getHost(),uri.getPath(),uri.);
                     uri = new java.net.URI(uriString);
                 } catch (URISyntaxException e) {
@@ -268,22 +266,26 @@
     }
 
     public static class ResponseAdapter implements WebServiceContainer.Response {
-        private final HttpResponse response;
+        private final Response response;
 
-        public ResponseAdapter(HttpResponse response) {
+        public ResponseAdapter(Response response) {
             this.response = response;
         }
 
         public void setHeader(String name, String value) {
-            response.setField(name, value);
+            response.setHeader(name, value);
         }
 
         public String getHeader(String name) {
-            return response.getField(name);
+            return response.getHeader(name);
         }
 
         public OutputStream getOutputStream() {
-            return response.getOutputStream();
+            try {
+                return response.getOutputStream();
+            } catch (IOException e) {
+                throw new IllegalStateException(e.getMessage());
+            }
         }
 
         public void setStatusCode(int code) {

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterHolder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterHolder.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterHolder.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterHolder.java Sat Sep 16 13:09:57 2006
@@ -22,7 +22,6 @@
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 import org.mortbay.jetty.servlet.FilterHolder;
-import org.mortbay.jetty.servlet.WebApplicationHandler;
 
 /**
  * @version $Rev$ $Date$
@@ -34,11 +33,13 @@
     }
 
     public JettyFilterHolder(String filterName, String filterClass, Map initParams, JettyServletRegistration jettyServletRegistration) throws Exception {
-        super(jettyServletRegistration == null? null: jettyServletRegistration.getServletHandler(), filterName, filterClass);
+        super();
         if (jettyServletRegistration != null) {
-            ((WebApplicationHandler)jettyServletRegistration.getServletHandler()).addFilterHolder(this);
-            putAll(initParams);
-            
+            setName(filterName);
+            setClassName(filterClass);
+            setInitParameters(initParams);
+            (jettyServletRegistration.getServletHandler()).addFilter(this);
+
             ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
             try {
                 ClassLoader newCL = jettyServletRegistration.getWebClassLoader();

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterMapping.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterMapping.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterMapping.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyFilterMapping.java Sat Sep 16 13:09:57 2006
@@ -17,90 +17,93 @@
 package org.apache.geronimo.jetty;
 
 import java.io.Serializable;
+import java.util.Set;
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 import org.mortbay.jetty.servlet.Dispatcher;
-import org.mortbay.jetty.servlet.WebApplicationHandler;
+import org.mortbay.jetty.servlet.FilterMapping;
+import org.mortbay.jetty.Handler;
 
 /**
  * @version $Rev$ $Date$
  */
-public class JettyFilterMapping implements Serializable {
+public class JettyFilterMapping extends FilterMapping implements Serializable {
 
-    private final String urlPattern;
+    private final String[] urlPatterns;
     private final boolean requestDispatch;
     private final boolean forwardDispatch;
     private final boolean includeDispatch;
     private final boolean errorDispatch;
     private final JettyFilterHolder jettyFilterHolder;
-    private final JettyServletHolder jettyServletHolder;
+    private final Set jettyServletHolders;
     private final JettyFilterMapping previous;
     private final JettyServletRegistration jettyServletRegistration;
 
     //todo use an interface for endpoints.
     public JettyFilterMapping() {
-        this.urlPattern = null;
+        this.urlPatterns = null;
         this.requestDispatch = false;
         this.forwardDispatch = false;
         this.includeDispatch = false;
         this.errorDispatch = false;
         this.jettyFilterHolder = null;
-        this.jettyServletHolder = null;
+        this.jettyServletHolders = null;
         this.previous = null;
         this.jettyServletRegistration = null;
     }
 
-    public JettyFilterMapping(String urlPattern,
+    public JettyFilterMapping(String[] urlPatterns,
                               boolean requestDispatch,
                               boolean forwardDispatch,
                               boolean includeDispatch,
                               boolean errorDispatch,
                               JettyFilterHolder jettyFilterHolder,
-                              JettyServletHolder jettyServletHolder,
+                              Set jettyServletHolders,
                               JettyFilterMapping previous,
                               JettyServletRegistration jettyServletRegistration) {
-       this.urlPattern = urlPattern;
+       this.urlPatterns = urlPatterns;
         this.requestDispatch = requestDispatch;
         this.forwardDispatch = forwardDispatch;
         this.includeDispatch = includeDispatch;
         this.errorDispatch = errorDispatch;
         this.jettyFilterHolder = jettyFilterHolder;
-        this.jettyServletHolder = jettyServletHolder;
+        this.jettyServletHolders = jettyServletHolders;
         this.previous = previous;
         this.jettyServletRegistration = jettyServletRegistration;
 
         if (jettyServletRegistration != null) {
-            assert jettyServletHolder != null ^ urlPattern != null;
+            assert jettyServletHolders != null ^ urlPatterns != null;
 
             String filterName = jettyFilterHolder.getFilterName();
             int dispatches = 0;
             if (requestDispatch) {
-                dispatches |= Dispatcher.__REQUEST;
+                dispatches |=  Handler.REQUEST;
             }
             if (forwardDispatch) {
-                dispatches |= Dispatcher.__FORWARD;
+                dispatches |= Handler.FORWARD;
             }
             if (includeDispatch) {
-                dispatches |= Dispatcher.__INCLUDE;
+                dispatches |= Handler.INCLUDE;
             }
             if (errorDispatch) {
-                dispatches |= Dispatcher.__ERROR;
+                dispatches |= Handler.ERROR;
             }
 
 
-            if (jettyServletHolder == null) {
-                ((WebApplicationHandler)jettyServletRegistration.getServletHandler()).addFilterPathMapping(urlPattern, filterName, dispatches);
-            } else {
-                String servletName = jettyServletHolder.getServletName();
-                ((WebApplicationHandler)jettyServletRegistration.getServletHandler()).addFilterServletMapping(servletName, filterName, dispatches);
-            }
+            setFilterName(filterName);
+            setDispatches(dispatches);
+            setPathSpecs(urlPatterns);
+            if (jettyServletHolders != null)
+                setServletNames((String[])jettyServletHolders.toArray(new String[0]));
+
+            (jettyServletRegistration.getServletHandler()).addFilterMapping(this);
         }
     }
 
-    public String getUrlPattern() {
-        return urlPattern;
+    public String[] getUrlPatterns() {
+        return urlPatterns;
     }
 
     public boolean isRequestDispatch() {
@@ -123,8 +126,8 @@
         return jettyFilterHolder;
     }
 
-    public JettyServletHolder getServlet() {
-        return jettyServletHolder;
+    public Set getServlets() {
+        return jettyServletHolders;
     }
 
     public JettyFilterMapping getPrevious() {
@@ -139,24 +142,24 @@
 
     static {
         GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(JettyFilterMapping.class, NameFactory.URL_WEB_FILTER_MAPPING);
-        infoBuilder.addAttribute("urlPattern", String.class, true);
+        infoBuilder.addAttribute("urlPatterns", String[].class, true);
         infoBuilder.addAttribute("requestDispatch", boolean.class, true);
         infoBuilder.addAttribute("forwardDispatch", boolean.class, true);
         infoBuilder.addAttribute("includeDispatch", boolean.class, true);
         infoBuilder.addAttribute("errorDispatch", boolean.class, true);
 
         infoBuilder.addReference("Filter", JettyFilterHolder.class, NameFactory.WEB_FILTER);
-        infoBuilder.addReference("Servlet", JettyServletHolder.class, NameFactory.SERVLET);
+        infoBuilder.addReference("Servlets", JettyServletHolder.class, NameFactory.SERVLET);
         infoBuilder.addReference("Previous", JettyFilterMapping.class, NameFactory.URL_WEB_FILTER_MAPPING);
         infoBuilder.addReference("JettyServletRegistration", JettyServletRegistration.class, NameFactory.WEB_MODULE);
 
-        infoBuilder.setConstructor(new String[]{"urlPattern",
+        infoBuilder.setConstructor(new String[]{"urlPatterns",
                                                 "requestDispatch",
                                                 "forwardDispatch",
                                                 "includeDispatch",
                                                 "errorDispatch",
                                                 "Filter",
-                                                "Servlet",
+                                                "Servlets",
                                                 "Previous",
                                                 "JettyServletRegistration"});
 

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyManagerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyManagerImpl.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyManagerImpl.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyManagerImpl.java Sat Sep 16 13:09:57 2006
@@ -20,6 +20,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.geronimo.gbean.AbstractName;
@@ -36,7 +37,6 @@
 import org.apache.geronimo.jetty.requestlog.JettyLogManager;
 import org.apache.geronimo.kernel.GBeanNotFoundException;
 import org.apache.geronimo.kernel.Kernel;
-import org.apache.geronimo.kernel.repository.Artifact;
 import org.apache.geronimo.kernel.config.ConfigurationUtil;
 import org.apache.geronimo.kernel.config.EditableConfigurationManager;
 import org.apache.geronimo.kernel.config.InvalidConfigException;

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyPOJOWebServiceHolder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyPOJOWebServiceHolder.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyPOJOWebServiceHolder.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyPOJOWebServiceHolder.java Sat Sep 16 13:09:57 2006
@@ -17,7 +17,6 @@
 package org.apache.geronimo.jetty;
 
 import java.io.IOException;
-import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
 
@@ -27,6 +26,7 @@
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.UnavailableException;
+import javax.servlet.http.HttpServletRequest;
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
@@ -35,8 +35,8 @@
 import org.apache.geronimo.webservices.POJOWebServiceServlet;
 import org.apache.geronimo.webservices.WebServiceContainer;
 import org.apache.geronimo.webservices.WebServiceContainerInvoker;
+import org.mortbay.jetty.Request;
 import org.mortbay.jetty.servlet.ServletHolder;
-import org.mortbay.jetty.servlet.ServletHttpRequest;
 
 
 /**
@@ -57,21 +57,23 @@
     }
 
     public JettyPOJOWebServiceHolder(String pojoClassName,
-                                     String servletName,
-                                     Map initParams,
-                                     Integer loadOnStartup,
-                                     Set servletMappings,
-                                     WebServiceContainer webServiceContainer,
-                                     ServletHolder previous,    //dependency for startup ordering
-                                     JettyServletRegistration context) throws Exception {
-        super(context == null ? null : context.getServletHandler(), servletName, POJOWebServiceServlet.class.getName(), null);
+            String servletName,
+            Map initParams,
+            Integer loadOnStartup,
+            Set servletMappings,
+            WebServiceContainer webServiceContainer,
+            ServletHolder previous,    //dependency for startup ordering
+            JettyServletRegistration context) throws Exception {
+        super();
         //context will be null only for use as "default servlet info holder" in deployer.
 
         this.pojoClassName = pojoClassName;
         this.context = context;
         this.webServiceContainer = webServiceContainer;
         if (context != null) {
-            putAll(initParams);
+            setName(servletName);
+            setClassName(POJOWebServiceServlet.class.getName());
+            setInitParameters(initParams);
             if (loadOnStartup != null) {
                 setInitOrder(loadOnStartup.intValue());
             }
@@ -97,7 +99,7 @@
 //        request.setAttribute(POJOWebServiceServlet.WEBSERVICE_CONTAINER, webServiceContainer);
 
         JettyServletHolder.setCurrentServletName(getServletName());
-        PolicyContext.setHandlerData(ServletHttpRequest.unwrap(request));
+        PolicyContext.setHandlerData(Request.getRequest((HttpServletRequest) request));
 
         super.handle(request, response);
     }
@@ -115,12 +117,12 @@
             // put a reference the ID in the init-params
             // put the WebServiceContainer in the webapp context keyed by its ID
             String webServicecontainerID = getServletName() + WebServiceContainerInvoker.WEBSERVICE_CONTAINER + webServiceContainer.hashCode();
-            put(WebServiceContainerInvoker.WEBSERVICE_CONTAINER, webServicecontainerID);
+            setInitParameter(WebServiceContainerInvoker.WEBSERVICE_CONTAINER, webServicecontainerID);
             servletContext.setAttribute(webServicecontainerID, webServiceContainer);
 
             // Same for the POJO Class
             String pojoClassID = getServletName() + POJOWebServiceServlet.POJO_CLASS + pojoClass.hashCode();
-            put(POJOWebServiceServlet.POJO_CLASS, pojoClassID);
+            setInitParameter(POJOWebServiceServlet.POJO_CLASS, pojoClassID);
             servletContext.setAttribute(pojoClassID, pojoClass);
 
             //this now starts the servlet in the appropriate context
@@ -130,7 +132,7 @@
         }
     }
 
-    public void doStop() throws Exception {
+    public void doStop() {
     }
 
     public void doFail() {
@@ -153,13 +155,13 @@
         infoBuilder.addReference("JettyServletRegistration", JettyServletRegistration.class);
 
         infoBuilder.setConstructor(new String[]{"pojoClassName",
-                                                "servletName",
-                                                "initParams",
-                                                "loadOnStartup",
-                                                "servletMappings",
-                                                "webServiceContainer",
-                                                "Previous",
-                                                "JettyServletRegistration"});
+                "servletName",
+                "initParams",
+                "loadOnStartup",
+                "servletMappings",
+                "webServiceContainer",
+                "Previous",
+                "JettyServletRegistration"});
 
         GBEAN_INFO = infoBuilder.getBeanInfo();
     }

Added: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java?view=auto&rev=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java (added)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java Sat Sep 16 13:09:57 2006
@@ -0,0 +1,304 @@
+/**
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.geronimo.jetty;
+
+import java.io.IOException;
+import java.security.AccessControlContext;
+import java.security.AccessControlException;
+import java.security.PermissionCollection;
+import java.security.Principal;
+
+import javax.security.auth.Subject;
+import javax.security.jacc.PolicyContext;
+import javax.security.jacc.WebResourcePermission;
+import javax.security.jacc.WebUserDataPermission;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.geronimo.common.DeploymentException;
+import org.apache.geronimo.common.GeronimoSecurityException;
+import org.apache.geronimo.security.ContextManager;
+import org.apache.geronimo.security.IdentificationPrincipal;
+import org.apache.geronimo.security.SubjectId;
+import org.apache.geronimo.security.Callers;
+import org.apache.geronimo.security.deploy.DefaultPrincipal;
+import org.apache.geronimo.security.util.ConfigurationUtil;
+import org.mortbay.jetty.HttpException;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.Response;
+import org.mortbay.jetty.security.Authenticator;
+import org.mortbay.jetty.security.FormAuthenticator;
+import org.mortbay.jetty.security.SecurityHandler;
+
+public class JettySecurityHandler extends SecurityHandler {
+
+    private String policyContextID;
+
+    private JAASJettyPrincipal defaultPrincipal;
+
+    private String formLoginPath;
+
+    private PermissionCollection checked;
+
+    private PermissionCollection excludedPermissions;
+
+
+    private JAASJettyRealm realm;
+
+    public JettySecurityHandler() {
+    }
+
+    public void init(String policyContextID,
+            DefaultPrincipal defaultPrincipal, 
+            PermissionCollection checkedPermissions,
+            PermissionCollection excludedPermissions, 
+            ClassLoader classLoader) {
+        this.policyContextID = policyContextID;
+
+        this.defaultPrincipal = generateDefaultPrincipal(defaultPrincipal,classLoader);
+        this.checked = checkedPermissions;
+        this.excludedPermissions = excludedPermissions;
+
+        Authenticator authenticator = getAuthenticator();
+        if (authenticator instanceof FormAuthenticator) {
+            String formLoginPath = ((FormAuthenticator) authenticator).getLoginPage();
+            if (formLoginPath.indexOf('?') > 0) {
+                formLoginPath = formLoginPath.substring(0, formLoginPath.indexOf('?'));
+            }
+            this.formLoginPath = formLoginPath;
+        } else {
+            formLoginPath = null;
+        }
+
+        /**
+         * Register our default principal with the ContextManager
+         */
+        Subject defaultSubject = this.defaultPrincipal.getSubject();
+        ContextManager.registerSubject(defaultSubject);
+        SubjectId id = ContextManager.getSubjectId(defaultSubject);
+        defaultSubject.getPrincipals().add(new IdentificationPrincipal(id));
+        this.realm = (JAASJettyRealm)getUserRealm();
+        assert realm != null;
+    }
+
+    public void doStop(JettyContainer jettyContainer) throws Exception {
+        try{
+            super.doStop();
+        }
+        finally {
+            Subject defaultSubject = this.defaultPrincipal.getSubject();
+            ContextManager.unregisterSubject(defaultSubject);
+            jettyContainer.removeRealm(realm.getSecurityRealmName());
+        }
+    }
+
+    /* ------------------------------------------------------------ */
+    /*
+     * @see org.mortbay.jetty.security.SecurityHandler#handle(java.lang.String,
+     *      javax.servlet.http.HttpServletRequest,
+     *      javax.servlet.http.HttpServletResponse, int)
+     */
+    public void handle(String target, HttpServletRequest request,
+            HttpServletResponse response, int dispatch) throws IOException,
+            ServletException {
+        String old_policy_id = PolicyContext.getContextID();
+        Callers oldCallers = ContextManager.getCallers();
+
+        try {
+            PolicyContext.setContextID(policyContextID);
+            PolicyContext.setHandlerData(request);
+
+            super.handle(target, request, response, dispatch);
+        } finally {
+            PolicyContext.setContextID(old_policy_id);
+            ContextManager.popCallers(oldCallers);
+        }
+    }
+
+//    public static Subject getCurrentRoleDesignate(String role) {
+//        return ((JettySecurityHandler) (WebAppContext.getCurrentWebAppContext()
+//                .getSecurityHandler())).getRoleDesignate(role);
+//    }
+//
+//    private Subject getRoleDesignate(String roleName) {
+//        return (Subject) roleDesignates.get(roleName);
+//    }
+
+    /**
+     * Check the security constraints using JACC.
+     * 
+     * @param pathInContext
+     *            path in context
+     * @param request
+     *            HTTP request
+     * @param response
+     *            HTTP response
+     * @return true if the path in context passes the security check, false if
+     *         it fails or a redirection has occured during authentication.
+     */
+    public boolean checkSecurityConstraints(String pathInContext,
+            Request request, Response response) throws HttpException,
+            IOException {
+        if (formLoginPath != null) {
+            String pathToBeTested = (pathInContext.indexOf('?') > 0 ? pathInContext
+                    .substring(0, pathInContext.indexOf('?'))
+                    : pathInContext);
+
+            if (pathToBeTested.equals(formLoginPath)) {
+                return true;
+            }
+        }
+
+        try {
+            String transportType;
+            if (request.isSecure()) {
+                transportType = "CONFIDENTIAL";
+            } else if (request.getConnection().isIntegral(request)) {
+                transportType = "INTEGRAL";
+            } else {
+                transportType = "NONE";
+            }
+            WebUserDataPermission wudp = new WebUserDataPermission(request
+                    .getServletPath(), new String[] { request.getMethod() },
+                    transportType);
+            WebResourcePermission webResourcePermission = new WebResourcePermission(
+                    request);
+            Principal user = obtainUser(pathInContext, request, response,
+                    webResourcePermission, wudp);
+
+            if (user == null) {
+                return false;
+            }
+            if (user == SecurityHandler.__NOBODY) {
+                return true;
+            }
+
+            AccessControlContext acc = ContextManager.getCurrentContext();
+
+            /**
+             * JACC v1.0 secion 4.1.1
+             */
+
+            acc.checkPermission(wudp);
+
+            /**
+             * JACC v1.0 secion 4.1.2
+             */
+            acc.checkPermission(webResourcePermission);
+        } catch (HttpException he) {
+            response.sendError(he.getStatus(), he.getReason());
+            return false;
+        } catch (AccessControlException ace) {
+            response.sendError(403);
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Obtain an authenticated user, if one is required. Otherwise return the
+     * default principal. <p/> Also set the current caller for JACC security
+     * checks for the default principal. This is automatically done by
+     * <code>JAASJettyRealm</code>.
+     * 
+     * @param pathInContext
+     *            path in context
+     * @param request
+     *            HTTP request
+     * @param response
+     *            HTTP response
+     * @return <code>null</code> if there is no authenticated user at the
+     *         moment and security checking should not proceed and servlet
+     *         handling should also not proceed, e.g. redirect.
+     *         <code>SecurityConstraint.__NOBODY</code> if security checking
+     *         should not proceed and servlet handling should proceed, e.g.
+     *         login page.
+     */
+    private Principal obtainUser(String pathInContext, Request request,
+            Response response, WebResourcePermission resourcePermission,
+            WebUserDataPermission dataPermission) throws IOException {
+        boolean unauthenticated = !(checked.implies(resourcePermission) || checked
+                .implies(dataPermission));
+        boolean forbidden = excludedPermissions.implies(resourcePermission)
+                || excludedPermissions.implies(dataPermission);
+
+        Authenticator authenticator = getAuthenticator();
+        if (!unauthenticated && !forbidden) {
+            return authenticator.authenticate(realm, pathInContext, request,
+                    response);
+        } else if (authenticator instanceof FormAuthenticator
+                && pathInContext.endsWith(FormAuthenticator.__J_SECURITY_CHECK)) {
+            /**
+             * This could be a post request to __J_SECURITY_CHECK.
+             */
+            return authenticator.authenticate(realm, pathInContext, request,
+                    response);
+        }
+
+        // attempt to access an unprotected resource that is not the
+        // j_security_check.
+        // if we are logged in, return the logged in principal.
+        if (request != null) {
+            // null response appears to prevent redirect to login page
+            Principal user = authenticator.authenticate(realm, pathInContext,
+                    request, null);
+            if (user != null) {
+                return user;
+            }
+        }
+
+        /**
+         * No authentication is required. Return the defaultPrincipal.
+         */
+        //TODO use run-as as nextCaller if present
+        ContextManager.setCallers(defaultPrincipal.getSubject(), defaultPrincipal.getSubject());
+        return defaultPrincipal;
+    }
+
+    /**
+     * Generate the default principal from the security config.
+     * 
+     * @param defaultPrincipal
+     *            The Geronimo security configuration.
+     * @param classLoader
+     * @return the default principal
+     */
+    protected JAASJettyPrincipal generateDefaultPrincipal(
+            DefaultPrincipal defaultPrincipal, ClassLoader classLoader)
+            throws GeronimoSecurityException {
+
+        if (defaultPrincipal == null) {
+            throw new GeronimoSecurityException(
+                    "Unable to generate default principal");
+        }
+
+        try {
+            JAASJettyPrincipal result = new JAASJettyPrincipal("default");
+            Subject defaultSubject = ConfigurationUtil.generateDefaultSubject(
+                    defaultPrincipal, classLoader);
+
+            result.setSubject(defaultSubject);
+
+            return result;
+        } catch (DeploymentException de) {
+            throw new GeronimoSecurityException(
+                    "Unable to generate default principal", de);
+        }
+    }
+
+}

Propchange: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettySecurityHandler.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServer.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServer.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServer.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServer.java Sat Sep 16 13:09:57 2006
@@ -16,27 +16,55 @@
  */
 package org.apache.geronimo.jetty;
 
-import org.mortbay.http.UserRealm;
 import org.mortbay.jetty.Server;
+import org.mortbay.jetty.security.UserRealm;
 
 
 /**
  * JettyServer extends the base Jetty Server class to prevent managing any user realm information by the web.xml realm name
  * which is only relevant for basic and digest authentication and should not be tied to any
  * actual information about which security realm is in use.
- * 
+ *
  * @version $Rev$ $Date$
  */
 public class JettyServer extends Server {
 
+    public void addUserRealms(UserRealm[] realms) {
+        throw new IllegalArgumentException("You must supply a security-realm-name to every web module using security features");
+    }
+
+    public void addUserRealm(UserRealm realm) {
+        throw new IllegalArgumentException("You must supply a security-realm-name to every web module using security features");
+    }
+
+    /**
+     * TODO maybe remove intead?
+     *
+     * @param realm
+     * @return
+     * @deprecated
+     */
     public UserRealm addRealm(UserRealm realm) {
         throw new IllegalArgumentException("You must supply a security-realm-name to every web module using security features");
     }
 
+    /**
+     * TODO maybe remove instead?
+     *
+     * @param realmName
+     * @return
+     * @deprecated
+     */
     public UserRealm getRealm(String realmName) {
         throw new IllegalArgumentException("You must supply a security-realm-name to every web module using security features");
     }
 
+    /**
+     * TODO maybe remove instead?
+     *
+     * @param realm
+     * @deprecated
+     */
     public synchronized void removeRealm(UserRealm realm) {
         throw new IllegalArgumentException("You must supply a security-realm-name to every web module using security features");
     }

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletHolder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletHolder.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletHolder.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletHolder.java Sat Sep 16 13:09:57 2006
@@ -20,19 +20,18 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.security.auth.Subject;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.UnavailableException;
-import javax.security.auth.Subject;
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 import org.apache.geronimo.management.Servlet;
-import org.apache.geronimo.security.ContextManager;
 import org.apache.geronimo.security.Callers;
-
+import org.apache.geronimo.security.ContextManager;
 import org.mortbay.jetty.servlet.ServletHolder;
 
 
@@ -67,11 +66,14 @@
             Subject runAsSubject,
             ServletHolder previous,  //dependency for startup ordering
             JettyServletRegistration context) throws Exception {
-        super(context == null ? null : context.getServletHandler(), servletName, servletClassName, jspFile);
+        super();
+        setName(servletName);
+        setClassName(servletClassName);
         //context will be null only for use as "default servlet info holder" in deployer.
 
         if (context != null) {
-            putAll(initParams);
+            setInitParameters(initParams);
+            setForcedPath(jspFile);
             if (loadOnStartup != null) {
                 //This has no effect on the actual start order, the gbean references "previous" control that.
                 setInitOrder(loadOnStartup.intValue());

Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletRegistration.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletRegistration.java?view=diff&rev=446934&r1=446787&r2=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletRegistration.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyServletRegistration.java Sat Sep 16 13:09:57 2006
@@ -16,9 +16,7 @@
  */
 package org.apache.geronimo.jetty;
 
-import java.util.Map;
 import java.util.Set;
-import javax.security.jacc.PolicyContextException;
 
 import org.mortbay.jetty.servlet.ServletHandler;
 import org.mortbay.jetty.servlet.ServletHolder;

Added: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java?view=auto&rev=446934
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java (added)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java Sat Sep 16 13:09:57 2006
@@ -0,0 +1,61 @@
+package org.apache.geronimo.jetty;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.mortbay.thread.ThreadPool;
+
+/**
+ * JettyThreadPool
+ * 
+ * Class to implement Jetty org.mortbay.jetty.thread.ThreadPool interface
+ * and delegate to a Geronimo thread pool impl.
+ *
+ */
+public class JettyThreadPool implements ThreadPool {
+
+    private org.apache.geronimo.pool.ThreadPool geronimoThreadPool;
+    
+    public JettyThreadPool(org.apache.geronimo.pool.ThreadPool geronimoThreadPool) {
+        this.geronimoThreadPool = geronimoThreadPool;
+    }
+
+    
+    public boolean dispatch(Runnable work) {
+        this.geronimoThreadPool.execute(work);
+        return true;
+        //what has changed?
+//        try {
+//            this.geronimoThreadPool.execute(work);
+//            return true;
+//        }
+//        catch (Exception e) {
+//            log.warn(e);
+//            return false;
+//        }
+    }
+
+    /**
+     * Jetty method. Caller wants to wait until the
+     * thread pool has stopped.
+     * 
+     * @see org.mortbay.thread.ThreadPool#join()
+     */
+    public void join() throws InterruptedException {
+        throw new UnsupportedOperationException("join not supported");
+    }
+
+    public int getThreads() {
+        return this.geronimoThreadPool.getPoolSize();
+    }
+
+    public int getIdleThreads() {
+        //TODO: not supported in geronimo thread pool
+        return 0;
+    }
+
+    public boolean isLowOnThreads() {
+        // TODO: not supported in geronimo thread pool
+        return false;
+    }
+    
+}

Propchange: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/javaee5/modules-jee5/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty/JettyThreadPool.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message