geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From djen...@apache.org
Subject svn commit: r543715 - in /geronimo/server/trunk: ./ assemblies/geronimo-jetty6-jee5/src/main/resources/var/config/ configs/jetty6/src/plan/ configs/rmi-naming/src/plan/ modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ modules/geronimo-jett...
Date Sat, 02 Jun 2007 08:10:18 GMT
Author: djencks
Date: Sat Jun  2 01:10:16 2007
New Revision: 543715

URL: http://svn.apache.org/viewvc?view=rev&rev=543715
Log:
GERONIMO-3034 GERONIMO-2655 New SelectChannel and AJP connectors.  Also hook the connectors up to our thread pool

Added:
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java   (with props)
    geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java   (with props)
Removed:
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyThreadPool.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSSLListener.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPConnector.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSConnector.java
Modified:
    geronimo/server/trunk/assemblies/geronimo-jetty6-jee5/src/main/resources/var/config/config.xml
    geronimo/server/trunk/configs/jetty6/src/plan/plan.xml
    geronimo/server/trunk/configs/rmi-naming/src/plan/plan.xml
    geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java
    geronimo/server/trunk/modules/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java
    geronimo/server/trunk/modules/geronimo-jetty6/pom.xml
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/AJP13Connector.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/resources/META-INF/geronimo-dependency.xml
    geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/HTTPConnectorTest.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/test/resources/services/local.xml
    geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/KeystoreManager.java
    geronimo/server/trunk/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java
    geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/threads/ThreadPool.java
    geronimo/server/trunk/modules/geronimo-system/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java
    geronimo/server/trunk/pom.xml

Modified: geronimo/server/trunk/assemblies/geronimo-jetty6-jee5/src/main/resources/var/config/config.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/assemblies/geronimo-jetty6-jee5/src/main/resources/var/config/config.xml?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/assemblies/geronimo-jetty6-jee5/src/main/resources/var/config/config.xml (original)
+++ geronimo/server/trunk/assemblies/geronimo-jetty6-jee5/src/main/resources/var/config/config.xml Sat Jun  2 01:10:16 2007
@@ -117,15 +117,15 @@
             <attribute name="port">${PlanHTTPPortPrimary + portOffset}</attribute>
             <attribute name="redirectPort">${PlanHTTPSPortPrimary + portOffset}</attribute>
         </gbean>
+        <gbean name="JettyAJP13Connector" load="false">
+            <attribute name="host">${PlanServerHostname}</attribute>
+            <attribute name="port">${PlanAJPPortPrimary + portOffset}</attribute>
+            <attribute name="redirectPort">${PlanHTTPSPortPrimary + portOffset}</attribute>
+        </gbean>
         <gbean name="JettySSLConnector">
             <attribute name="host">${PlanServerHostname}</attribute>
             <attribute name="port">${PlanHTTPSPortPrimary + portOffset}</attribute>
         </gbean>
-<!--        <gbean name="JettyAJP13Connector">
-            <attribute name="host">0.0.0.0</attribute>
-            <attribute name="port">8009</attribute>
-        </gbean>
--->
     </module>
 
     <!--

Modified: geronimo/server/trunk/configs/jetty6/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/jetty6/src/plan/plan.xml?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/configs/jetty6/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/jetty6/src/plan/plan.xml Sat Jun  2 01:10:16 2007
@@ -58,12 +58,15 @@
         <attribute name="logTimeZone">GMT</attribute>
     </gbean>
 
-    <gbean name="JettyWebConnector" class="org.apache.geronimo.jetty6.connector.HTTPConnector">
+    <gbean name="JettyWebConnector" class="org.apache.geronimo.jetty6.connector.HTTPSelectChannelConnector">
         <attribute name="host">${PlanServerHostname}</attribute>
         <attribute name="port">${PlanHTTPPort}</attribute>
         <reference name="JettyContainer">
             <name>JettyWebContainer</name>
         </reference>
+        <reference name="ThreadPool">
+            <name>DefaultThreadPool</name>
+        </reference>
         <attribute name="maxThreads">50</attribute>
         <!--<attribute name="minThreads">25</attribute>-->
         <!--<attribute name="lowThreads">25</attribute>-->
@@ -71,17 +74,21 @@
         <!--<attribute name="lowThreadsMaxIdleTimeMs">800</attribute>-->
     </gbean>
 
-    <!--<gbean name="JettyAJP13Connector" class="org.apache.geronimo.jetty.connector.AJP13Connector">-->
-        <!--<attribute name="host">${PlanServerHostname}</attribute>-->
-        <!--<attribute name="port">${PlanAJPPort2}</attribute>-->
-        <!--<reference name="JettyContainer">-->
-            <!--<name>JettyWebContainer</name>-->
-        <!--</reference>-->
-        <!--<attribute name="maxThreads">50</attribute>-->
+    <gbean name="JettyAJP13Connector" class="org.apache.geronimo.jetty6.connector.AJP13Connector">
+        <attribute name="host">${PlanServerHostname}</attribute>
+        <attribute name="port">${PlanAJPPort}</attribute>
+        <reference name="JettyContainer">
+            <name>JettyWebContainer</name>
+        </reference>
+        <reference name="ThreadPool">
+            <name>DefaultThreadPool</name>
+        </reference>
+        <attribute name="maxThreads">50</attribute>
         <!--<attribute name="minThreads">10</attribute>-->
-    <!--</gbean>-->
+    </gbean>
 
-    <gbean name="JettySSLConnector" class="org.apache.geronimo.jetty6.connector.HTTPSConnector">
+    <!-- DONT USE THIS ONE -->
+    <gbean name="JettySSLConnector" class="org.apache.geronimo.jetty6.connector.HTTPSSocketConnector">
         <attribute name="host">${PlanServerHostname}</attribute>
         <attribute name="port">${PlanHTTPSPort}</attribute>
         <attribute name="keyStore">geronimo-default</attribute>
@@ -91,13 +98,37 @@
         <attribute name="algorithm">Default</attribute>
         <attribute name="secureProtocol">TLS</attribute>
         <attribute name="maxThreads">50</attribute>
-        <!--<attribute name="minThreads">25</attribute>-->
         <reference name="JettyContainer">
             <name>JettyWebContainer</name>
         </reference>
+        <reference name="ThreadPool">
+            <name>DefaultThreadPool</name>
+        </reference>
+        <reference name="KeystoreManager">
+            <name>KeystoreManager</name>
+        </reference>
+    </gbean>
+<!-- USE THIS ONE
+    <gbean name="JettySSLConnector" class="org.apache.geronimo.jetty6.connector.HTTPSSelectChannelConnector">
+        <attribute name="host">${PlanServerHostname}</attribute>
+        <attribute name="port">${PlanHTTPSPort}</attribute>
+        <attribute name="keyStore">geronimo-default</attribute>
+        <attribute name="keyAlias">geronimo</attribute>
+        <attribute name="trustStore">geronimo-default</attribute>
+        <attribute name="clientAuthRequired">false</attribute>
+        <attribute name="algorithm">Default</attribute>
+        <attribute name="secureProtocol">TLS</attribute>
+        <attribute name="maxThreads">50</attribute>
+        <reference name="JettyContainer">
+            <name>JettyWebContainer</name>
+        </reference>
+        <reference name="ThreadPool">
+            <name>DefaultThreadPool</name>
+        </reference>
         <reference name="KeystoreManager">
             <name>KeystoreManager</name>
         </reference>
     </gbean>
+-->
 
 </module>

Modified: geronimo/server/trunk/configs/rmi-naming/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/rmi-naming/src/plan/plan.xml?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/configs/rmi-naming/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/rmi-naming/src/plan/plan.xml Sat Jun  2 01:10:16 2007
@@ -53,7 +53,7 @@
 
     <gbean name="DefaultThreadPool" class="org.apache.geronimo.pool.ThreadPool">
         <attribute name="keepAliveTime">5000</attribute>
-        <attribute name="poolSize">300</attribute>
+        <attribute name="poolSize">500</attribute>
         <attribute name="poolName">DefaultThreadPool</attribute>
     </gbean>
 

Modified: geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java (original)
+++ geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java Sat Jun  2 01:10:16 2007
@@ -172,9 +172,21 @@
 
 
     public int getPoolSize() {
+        return executor.getPoolSize();
+    }
+
+    public int getMaximumPoolSize() {
         return executor.getMaximumPoolSize();
     }
 
+    public int getActiveCount() {
+        return executor.getActiveCount();
+    }
+
+    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
+        return executor.awaitTermination(timeout, unit);
+    }
+
     public void execute(Runnable command) {
         execute("Unknown", command);
     }
@@ -327,7 +339,7 @@
     public static final GBeanInfo GBEAN_INFO;
 
     static {
-        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(ThreadPool.class);
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(ThreadPool.class, "GBean");
 
         infoFactory.addAttribute("poolSize", int.class, true);
         infoFactory.addAttribute("poolName", String.class, true);

Modified: geronimo/server/trunk/modules/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java Sat Jun  2 01:10:16 2007
@@ -51,7 +51,7 @@
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 import org.apache.geronimo.j2ee.management.impl.J2EEServerImpl;
 import org.apache.geronimo.jetty6.JettyContainerImpl;
-import org.apache.geronimo.jetty6.connector.HTTPConnector;
+import org.apache.geronimo.jetty6.connector.HTTPSocketConnector;
 import org.apache.geronimo.kernel.Jsr77Naming;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.KernelFactory;
@@ -245,7 +245,7 @@
         GBeanData containerData = bootstrap.addGBean("JettyContainer", JettyContainerImpl.GBEAN_INFO);
         AbstractName containerName = containerData.getAbstractName();
 
-        GBeanData connector = bootstrap.addGBean("JettyConnector", HTTPConnector.GBEAN_INFO);
+        GBeanData connector = bootstrap.addGBean("JettyConnector", HTTPSocketConnector.GBEAN_INFO);
         connector.setAttribute("port", new Integer(5678));
         connector.setAttribute("maxThreads", new Integer(50));
 //        connector.setAttribute("minThreads", new Integer(10));

Modified: geronimo/server/trunk/modules/geronimo-jetty6/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/pom.xml?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/pom.xml (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/pom.xml Sat Jun  2 01:10:16 2007
@@ -63,6 +63,21 @@
             <groupId>org.mortbay.jetty</groupId>
             <artifactId>jetty</artifactId>
         </dependency>
+        
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-ajp</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-sslengine</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-util</artifactId>
+        </dependency>
 
         <!--<dependency>-->
             <!--<groupId>org.apache.tomcat.extras</groupId>-->

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java Sat Jun  2 01:10:16 2007
@@ -31,8 +31,8 @@
 import org.apache.geronimo.gbean.ReferencePatterns;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 import org.apache.geronimo.jetty6.connector.AJP13Connector;
-import org.apache.geronimo.jetty6.connector.HTTPConnector;
-import org.apache.geronimo.jetty6.connector.HTTPSConnector;
+import org.apache.geronimo.jetty6.connector.HTTPSocketConnector;
+import org.apache.geronimo.jetty6.connector.HTTPSSocketConnector;
 import org.apache.geronimo.jetty6.connector.JettyConnector;
 import org.apache.geronimo.jetty6.requestlog.JettyLogManager;
 import org.apache.geronimo.kernel.GBeanNotFoundException;
@@ -76,9 +76,9 @@
         AbstractName name = kernel.getNaming().createSiblingName(containerName, uniqueName, NameFactory.GERONIMO_SERVICE);
         GBeanData connector;
         if (protocol.equals(PROTOCOL_HTTP)) {
-            connector = new GBeanData(name, HTTPConnector.GBEAN_INFO);
+            connector = new GBeanData(name, HTTPSocketConnector.GBEAN_INFO);
         } else if (protocol.equals(PROTOCOL_HTTPS)) {
-            connector = new GBeanData(name, HTTPSConnector.GBEAN_INFO);
+            connector = new GBeanData(name, HTTPSSocketConnector.GBEAN_INFO);
             AbstractNameQuery query = new AbstractNameQuery(KeystoreManager.class.getName());
             connector.setReferencePattern("KeystoreManager", query);
             //todo: default HTTPS settings

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/AJP13Connector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/AJP13Connector.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/AJP13Connector.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/AJP13Connector.java Sat Jun  2 01:10:16 2007
@@ -21,14 +21,15 @@
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.jetty6.JettyContainer;
 import org.apache.geronimo.management.geronimo.WebManager;
+import org.apache.geronimo.system.threads.ThreadPool;
+import org.mortbay.jetty.ajp.Ajp13SocketConnector;
 
 /**
  * @version $Rev$ $Date$
  */
 public class AJP13Connector extends JettyConnector {
-    public AJP13Connector(JettyContainer container) {
-        //throw new UnsupportedOperationException("No AJP13Connector for jetty6
-        //TODO:there is no ajp13 connector, but just ignore this for now
+    public AJP13Connector(JettyContainer container, ThreadPool threadPool) {
+        super(container, new Ajp13SocketConnector(), threadPool, "AJP13Connector");
     }
 
     public String getProtocol() {
@@ -39,11 +40,19 @@
         return -1;
     }
 
+    public void setRedirectPort(int port) {
+        Ajp13SocketConnector ajpListener = (Ajp13SocketConnector) listener;
+        ajpListener.setConfidentialPort(port);
+        ajpListener.setIntegralPort(port);
+        ajpListener.setIntegralScheme("https");
+        ajpListener.setConfidentialScheme("https");
+    }
+
     public static final GBeanInfo GBEAN_INFO;
 
     static {
         GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty Connector AJP13", AJP13Connector.class, JettyConnector.GBEAN_INFO);
-        infoFactory.setConstructor(new String[]{"JettyContainer"});
+        infoFactory.setConstructor(new String[]{"JettyContainer", "ThreadPool"});
         GBEAN_INFO = infoFactory.getBeanInfo();
     }
 

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jetty6.connector;
+
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.UnrecoverableKeyException;
+import java.security.NoSuchProviderException;
+import java.security.KeyManagementException;
+import java.security.cert.CertificateException;
+import java.io.IOException;
+
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLContext;
+
+import org.mortbay.jetty.security.SslSocketConnector;
+import org.mortbay.jetty.security.SslSelectChannelConnector;
+import org.apache.geronimo.management.geronimo.KeystoreManager;
+
+/**
+ * SSL listener that hooks into the Geronimo keystore infrastructure.
+ *
+ * @version $Rev$ $Date$
+ */
+public class GeronimoSelectChannelSSLListener extends SslSelectChannelConnector {
+    private KeystoreManager manager;
+    private String keyStore;
+    private String trustStore;
+    private String keyAlias;
+
+    public GeronimoSelectChannelSSLListener(KeystoreManager manager) {
+        this.manager = manager;
+    }
+
+    protected SSLContext createSSLContext() throws Exception {
+        return manager.createSSLContext(null, getProtocol(), getSslKeyManagerFactoryAlgorithm(), keyStore, keyAlias, trustStore, SslSocketConnector.class.getClassLoader());
+    }
+
+    public String getKeyStore() {
+        return keyStore;
+    }
+
+    public void setKeyStore(String keyStore) {
+        this.keyStore = keyStore;
+    }
+
+    public String getTrustStore() {
+        return trustStore;
+    }
+
+    public void setTrustStore(String trustStore) {
+        this.trustStore = trustStore;
+    }
+
+    public String getKeyAlias() {
+        return keyAlias;
+    }
+
+    public void setKeyAlias(String keyAlias) {
+        this.keyAlias = keyAlias;
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSelectChannelSSLListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,67 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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.jetty6.connector;
+
+import org.mortbay.jetty.security.SslSocketConnector;
+import org.apache.geronimo.management.geronimo.KeystoreManager;
+
+import javax.net.ssl.SSLServerSocketFactory;
+
+/**
+ * SSL listener that hooks into the Geronimo keystore infrastructure.
+ *
+ * @version $Rev$ $Date$
+ */
+public class GeronimoSocketSSLListener extends SslSocketConnector {
+    private KeystoreManager manager;
+    private String keyStore;
+    private String trustStore;
+    private String keyAlias;
+
+    public GeronimoSocketSSLListener(KeystoreManager manager) {
+        this.manager = manager;
+    }
+
+    protected SSLServerSocketFactory createFactory() throws Exception {
+        // we need the server factory version.
+        return manager.createSSLServerFactory(null, getProtocol(), getSslKeyManagerFactoryAlgorithm(), keyStore, keyAlias, trustStore, SslSocketConnector.class.getClassLoader());
+    }
+
+    public String getKeyStore() {
+        return keyStore;
+    }
+
+    public void setKeyStore(String keyStore) {
+        this.keyStore = keyStore;
+    }
+
+    public String getTrustStore() {
+        return trustStore;
+    }
+
+    public void setTrustStore(String trustStore) {
+        this.trustStore = trustStore;
+    }
+
+    public String getKeyAlias() {
+        return keyAlias;
+    }
+
+    public void setKeyAlias(String keyAlias) {
+        this.keyAlias = keyAlias;
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/GeronimoSocketSSLListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jetty6.connector;
+
+import org.apache.geronimo.jetty6.JettyContainer;
+import org.apache.geronimo.management.geronimo.WebManager;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.system.threads.ThreadPool;
+import org.mortbay.jetty.nio.BlockingChannelConnector;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class HTTPBlockingConnector extends JettyConnector {
+    public HTTPBlockingConnector(JettyContainer container, ThreadPool threadPool) {
+        super(container, new BlockingChannelConnector(), threadPool, "HTTPBlockingConnector");
+    }
+
+    public String getProtocol() {
+        return WebManager.PROTOCOL_HTTP;
+    }
+
+    public int getDefaultPort() {
+        return 80;
+    }
+
+    public void setRedirectPort(int port) {
+        BlockingChannelConnector connector = (BlockingChannelConnector) listener;
+        connector.setConfidentialPort(port);
+        connector.setIntegralPort(port);
+        connector.setIntegralScheme("https");
+        connector.setConfidentialScheme("https");
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty Blocking Channel Connector HTTP", HTTPBlockingConnector.class, JettyConnector.GBEAN_INFO);
+        infoFactory.setConstructor(new String[]{"JettyContainer", "ThreadPool"});
+        GBEAN_INFO = infoFactory.getBeanInfo();
+    }
+
+    public static GBeanInfo getGBeanInfo() {
+        return GBEAN_INFO;
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPBlockingConnector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,173 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jetty6.connector;
+
+import javax.net.ssl.KeyManagerFactory;
+
+import org.apache.geronimo.jetty6.JettySecureConnector;
+import org.apache.geronimo.jetty6.JettyContainer;
+import org.apache.geronimo.management.geronimo.KeystoreManager;
+import org.apache.geronimo.management.geronimo.WebManager;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.system.threads.ThreadPool;
+import org.mortbay.jetty.bio.SocketConnector;
+
+/**
+ * Implementation of a HTTPS connector based on Jetty's SslConnector (which uses pure JSSE).
+ *
+ * @version $Rev$ $Date$
+ */
+public class HTTPSSelectChannelConnector extends JettyConnector implements JettySecureConnector {
+    private final GeronimoSelectChannelSSLListener https;
+    private String algorithm;
+
+    public HTTPSSelectChannelConnector(JettyContainer container, ThreadPool threadPool, KeystoreManager keystoreManager) {
+        super(container, new GeronimoSelectChannelSSLListener(keystoreManager), threadPool, "HTTPSSelectChannelConnector");
+        https = (GeronimoSelectChannelSSLListener) listener;
+    }
+
+    public int getDefaultPort() {
+        return 443;
+    }
+
+    public String getProtocol() {
+        return WebManager.PROTOCOL_HTTPS;
+    }
+
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    /**
+     * Algorithm to use.
+     * As different JVMs have different implementations available, the default algorithm can be used by supplying the value "Default".
+     *
+     * @param algorithm the algorithm to use, or "Default" to use the default from {@link javax.net.ssl.KeyManagerFactory#getDefaultAlgorithm()}
+     */
+    public void setAlgorithm(String algorithm) {
+        // cache the value so the null
+        this.algorithm = algorithm;
+        if ("default".equalsIgnoreCase(algorithm)) {
+            algorithm = KeyManagerFactory.getDefaultAlgorithm();
+        }
+        https.setSslKeyManagerFactoryAlgorithm(algorithm);
+    }
+
+    public String getSecureProtocol() {
+        return https.getProtocol();
+    }
+
+    public void setSecureProtocol(String protocol) {
+        https.setProtocol(protocol);
+    }
+
+    public void setClientAuthRequired(boolean needClientAuth) {
+        https.setNeedClientAuth(needClientAuth);
+    }
+
+    public boolean isClientAuthRequired() {
+        return https.getNeedClientAuth();
+    }
+
+    public void setClientAuthRequested(boolean wantClientAuth) {
+        https.setWantClientAuth(wantClientAuth);
+    }
+
+    public boolean isClientAuthRequested() {
+        return https.getWantClientAuth();
+    }
+
+    public void setKeyStore(String keyStore) {
+        https.setKeyStore(keyStore);
+    }
+
+    public String getKeyStore() {
+        return https.getKeyStore();
+    }
+
+    public void setTrustStore(String trustStore) {
+        https.setTrustStore(trustStore);
+    }
+
+    public String getTrustStore() {
+        return https.getTrustStore();
+    }
+
+    public void setKeyAlias(String keyAlias) {
+        https.setKeyAlias(keyAlias);
+    }
+
+    public String getKeyAlias() {
+        return https.getKeyAlias();
+    }
+
+    //TODO does this make sense???
+    public void setRedirectPort(int port) {
+        SocketConnector socketListener = (SocketConnector) listener;
+        socketListener.setConfidentialPort(port);
+        socketListener.setIntegralPort(port);
+        socketListener.setIntegralScheme("https");
+        socketListener.setConfidentialScheme("https");
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty Select Channel Connector HTTPS", HTTPSSelectChannelConnector.class, JettyConnector.GBEAN_INFO);
+        infoFactory.addAttribute("algorithm", String.class, true, true);
+        infoFactory.addAttribute("secureProtocol", String.class, true, true);
+        infoFactory.addAttribute("keyStore", String.class, true, true);
+        infoFactory.addAttribute("keyAlias", String.class, true, true);
+        infoFactory.addAttribute("trustStore", String.class, true, true);
+        infoFactory.addAttribute("clientAuthRequired", boolean.class, true, true);
+        infoFactory.addAttribute("clientAuthRequested", boolean.class, true, true);
+        infoFactory.addReference("KeystoreManager", KeystoreManager.class, NameFactory.GERONIMO_SERVICE);
+        infoFactory.addInterface(JettySecureConnector.class);
+        infoFactory.setConstructor(new String[]{"JettyContainer", "ThreadPool", "KeystoreManager"});
+        GBEAN_INFO = infoFactory.getBeanInfo();
+    }
+
+    public static GBeanInfo getGBeanInfo() {
+        return GBEAN_INFO;
+    }
+
+    // ================= NO LONGER USED!!! =====================
+    // todo: remove these from the SSL interface
+
+    public String getKeystoreFileName() {
+        return null;
+    }
+
+    public void setKeystoreFileName(String name) {
+    }
+
+    public void setKeystorePassword(String password) {
+    }
+
+    public String getKeystoreType() {
+        return null;
+    }
+
+    public void setKeystoreType(String type) {
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSelectChannelConnector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,169 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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.jetty6.connector;
+
+import javax.net.ssl.KeyManagerFactory;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.jetty6.JettyContainer;
+import org.apache.geronimo.jetty6.JettySecureConnector;
+import org.apache.geronimo.management.geronimo.KeystoreManager;
+import org.apache.geronimo.management.geronimo.WebManager;
+import org.apache.geronimo.system.threads.ThreadPool;
+import org.mortbay.jetty.bio.SocketConnector;
+
+/**
+ * Implementation of a HTTPS connector based on Jetty's SslConnector (which uses pure JSSE).
+ *
+ * @version $Rev$ $Date$
+ */
+public class HTTPSSocketConnector extends JettyConnector implements JettySecureConnector {
+    private final GeronimoSocketSSLListener https;
+    private String algorithm;
+
+    public HTTPSSocketConnector(JettyContainer container, ThreadPool threadPool, KeystoreManager keystoreManager) {
+        super(container, new GeronimoSocketSSLListener(keystoreManager), threadPool, "HTTPSSocketConnector");
+        https = (GeronimoSocketSSLListener) listener;
+    }
+
+    public int getDefaultPort() {
+        return 443;
+    }
+
+    public String getProtocol() {
+        return WebManager.PROTOCOL_HTTPS;
+    }
+
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    /**
+     * Algorithm to use.
+     * As different JVMs have different implementations available, the default algorithm can be used by supplying the value "Default".
+     *
+     * @param algorithm the algorithm to use, or "Default" to use the default from {@link javax.net.ssl.KeyManagerFactory#getDefaultAlgorithm()}
+     */
+    public void setAlgorithm(String algorithm) {
+        // cache the value so the null
+        this.algorithm = algorithm;
+        if ("default".equalsIgnoreCase(algorithm)) {
+            algorithm = KeyManagerFactory.getDefaultAlgorithm();
+        }
+        https.setSslKeyManagerFactoryAlgorithm(algorithm);
+    }
+
+    public String getSecureProtocol() {
+        return https.getProtocol();
+    }
+
+    public void setSecureProtocol(String protocol) {
+        https.setProtocol(protocol);
+    }
+
+    public void setClientAuthRequired(boolean needClientAuth) {
+        https.setNeedClientAuth(needClientAuth);
+    }
+
+    public boolean isClientAuthRequired() {
+        return https.getNeedClientAuth();
+    }
+
+    public void setClientAuthRequested(boolean wantClientAuth) {
+        https.setWantClientAuth(wantClientAuth);
+    }
+
+    public boolean isClientAuthRequested() {
+        return https.getWantClientAuth();
+    }
+
+    public void setKeyStore(String keyStore) {
+        https.setKeyStore(keyStore);
+    }
+
+    public String getKeyStore() {
+        return https.getKeyStore();
+    }
+
+    public void setTrustStore(String trustStore) {
+        https.setTrustStore(trustStore);
+    }
+
+    public String getTrustStore() {
+        return https.getTrustStore();
+    }
+
+    public void setKeyAlias(String keyAlias) {
+        https.setKeyAlias(keyAlias);
+    }
+
+    public String getKeyAlias() {
+        return https.getKeyAlias();
+    }
+    
+    //TODO does this make sense???
+    public void setRedirectPort(int port) {
+        SocketConnector socketListener = (SocketConnector) listener;
+        socketListener.setConfidentialPort(port);
+        socketListener.setIntegralPort(port);
+        socketListener.setIntegralScheme("https");
+        socketListener.setConfidentialScheme("https");
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty Connector HTTPS", HTTPSSocketConnector.class, JettyConnector.GBEAN_INFO);
+        infoFactory.addAttribute("algorithm", String.class, true, true);
+        infoFactory.addAttribute("secureProtocol", String.class, true, true);
+        infoFactory.addAttribute("keyStore", String.class, true, true);
+        infoFactory.addAttribute("keyAlias", String.class, true, true);
+        infoFactory.addAttribute("trustStore", String.class, true, true);
+        infoFactory.addAttribute("clientAuthRequired", boolean.class, true, true);
+        infoFactory.addAttribute("clientAuthRequested", boolean.class, true, true);
+        infoFactory.addReference("KeystoreManager", KeystoreManager.class, NameFactory.GERONIMO_SERVICE);
+        infoFactory.addInterface(JettySecureConnector.class);
+        infoFactory.setConstructor(new String[]{"JettyContainer", "ThreadPool", "KeystoreManager"});
+        GBEAN_INFO = infoFactory.getBeanInfo();
+    }
+
+    public static GBeanInfo getGBeanInfo() {
+        return GBEAN_INFO;
+    }
+
+    // ================= NO LONGER USED!!! =====================
+    // todo: remove these from the SSL interface
+
+    public String getKeystoreFileName() {
+        return null;
+    }
+
+    public void setKeystoreFileName(String name) {
+    }
+
+    public void setKeystorePassword(String password) {
+    }
+
+    public String getKeystoreType() {
+        return null;
+    }
+
+    public void setKeystoreType(String type) {
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSSocketConnector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jetty6.connector;
+
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.jetty6.JettyContainer;
+import org.apache.geronimo.management.geronimo.WebManager;
+import org.apache.geronimo.system.threads.ThreadPool;
+import org.mortbay.jetty.nio.SelectChannelConnector;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class HTTPSelectChannelConnector extends JettyConnector {
+    public HTTPSelectChannelConnector(JettyContainer container, ThreadPool threadPool) {
+        super(container, new SelectChannelConnector(), threadPool, "HTTPSelectChannelConnector");
+    }
+
+    public String getProtocol() {
+        return WebManager.PROTOCOL_HTTP;
+    }
+
+    public int getDefaultPort() {
+        return 80;
+    }
+
+    public void setRedirectPort(int port) {
+        SelectChannelConnector connector = (SelectChannelConnector) listener;
+        connector.setConfidentialPort(port);
+        connector.setIntegralPort(port);
+        connector.setIntegralScheme("https");
+        connector.setConfidentialScheme("https");
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty SelectChannel Connector HTTP", HTTPSelectChannelConnector.class, JettyConnector.GBEAN_INFO);
+        infoFactory.setConstructor(new String[]{"JettyContainer", "ThreadPool"});
+        GBEAN_INFO = infoFactory.getBeanInfo();
+    }
+
+    public static GBeanInfo getGBeanInfo() {
+        return GBEAN_INFO;
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSelectChannelConnector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,62 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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.jetty6.connector;
+
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.jetty6.JettyContainer;
+import org.apache.geronimo.management.geronimo.WebManager;
+import org.apache.geronimo.system.threads.ThreadPool;
+import org.mortbay.jetty.bio.SocketConnector;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class HTTPSocketConnector extends JettyConnector {
+    public HTTPSocketConnector(JettyContainer container, ThreadPool threadPool) {
+        super(container, new SocketConnector(), threadPool, "HTTPSocketConnector");
+    }
+
+    public String getProtocol() {
+        return WebManager.PROTOCOL_HTTP;
+    }
+
+    public int getDefaultPort() {
+        return 80;
+    }
+
+    public void setRedirectPort(int port) {
+        SocketConnector socketListener = (SocketConnector) listener;
+        socketListener.setConfidentialPort(port);
+        socketListener.setIntegralPort(port);
+        socketListener.setIntegralScheme("https");
+        socketListener.setConfidentialScheme("https");
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty BIO Connector HTTP", HTTPSocketConnector.class, JettyConnector.GBEAN_INFO);
+        infoFactory.setConstructor(new String[]{"JettyContainer", "ThreadPool"});
+        GBEAN_INFO = infoFactory.getBeanInfo();
+    }
+
+    public static GBeanInfo getGBeanInfo() {
+        return GBEAN_INFO;
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/HTTPSocketConnector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java Sat Jun  2 01:10:16 2007
@@ -27,10 +27,8 @@
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 import org.apache.geronimo.jetty6.JettyContainer;
 import org.apache.geronimo.jetty6.JettyWebConnector;
+import org.apache.geronimo.system.threads.ThreadPool;
 import org.mortbay.jetty.AbstractConnector;
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.bio.SocketConnector;
-import org.mortbay.jetty.nio.SelectChannelConnector;
 
 /**
  * Base class for GBeans for Jetty network connectors (HTTP, HTTPS, AJP, etc.).
@@ -40,7 +38,7 @@
 public abstract class JettyConnector implements GBeanLifecycle, JettyWebConnector {
     public final static String CONNECTOR_CONTAINER_REFERENCE = "JettyContainer";
     private final JettyContainer container;
-    protected final Connector listener;
+    protected final AbstractConnector listener;
     private String connectHost;
 
     /**
@@ -51,14 +49,18 @@
         listener = null;
     }
 
-    public JettyConnector(JettyContainer container) {
+    public JettyConnector(JettyContainer container, ThreadPool threadPool) {
         this.container = container;
         this.listener = null;
     }
 
-    public JettyConnector(JettyContainer container, Connector listener) {
+    public JettyConnector(JettyContainer container, AbstractConnector listener, ThreadPool threadPool, String name) {
         this.container = container;
         this.listener = listener;
+        if (threadPool != null) {
+            JettyThreadPool jettyThreadPool = new JettyThreadPool(threadPool, name);
+            listener.setThreadPool(jettyThreadPool);
+        }
     }
 
     //TODO: support the jetty6 specific methods
@@ -108,11 +110,11 @@
     }
 
     public int getMaxIdleTimeMs() {
-        return ((AbstractConnector) listener).getMaxIdleTime();
+        return listener.getMaxIdleTime();
     }
 
     public void setMaxIdleTimeMs(int idleTime) {
-        ((AbstractConnector) listener).setMaxIdleTime(idleTime);
+        listener.setMaxIdleTime(idleTime);
     }
 
     public int getBufferSizeBytes() {
@@ -126,11 +128,11 @@
     }
 
     public int getAcceptQueueSize() {
-        return ((AbstractConnector) listener).getAcceptQueueSize();
+        return listener.getAcceptQueueSize();
     }
 
     public void setAcceptQueueSize(int size) {
-        ((AbstractConnector) listener).setAcceptQueueSize(size);
+        listener.setAcceptQueueSize(size);
     }
 
     public int getLingerMillis() {
@@ -138,7 +140,7 @@
     }
 
     public void setLingerMillis(int millis) {
-        ((AbstractConnector) listener).setSoLingerTime(millis);
+        listener.setSoLingerTime(millis);
     }
 
     public boolean isTcpNoDelay() {
@@ -151,12 +153,12 @@
 
     public void setMaxThreads(int maxThreads) {
         //TODO: in jetty6 connectors have a number of acceptor threads
-        ((AbstractConnector) listener).setAcceptors(maxThreads);
+        listener.setAcceptors(maxThreads);
     }
 
     public int getMaxThreads() {
         //TODO: confirm that this is reasonable
-        return ((AbstractConnector) listener).getAcceptors();
+        return listener.getAcceptors();
     }
 
     public int getRedirectPort() {
@@ -173,31 +175,7 @@
 
 
     public void setRedirectPort(int port) {
-        if (listener instanceof SocketConnector) {
-            SocketConnector socketListener = (SocketConnector) listener;
-            socketListener.setConfidentialPort(port);
-            socketListener.setIntegralPort(port);
-            socketListener.setIntegralScheme("https");
-            socketListener.setConfidentialScheme("https");
-        } else if (listener instanceof SelectChannelConnector) {
-            SelectChannelConnector connector = (SelectChannelConnector) listener;
-            connector.setConfidentialPort(port);
-            connector.setIntegralPort(port);
-            connector.setIntegralScheme("https");
-            connector.setConfidentialScheme("https");
-        }
-        /*
-                 * don't have one of these yet
-                else if(listener instanceof AJP13Listener) {
-            AJP13Listener ajpListener = (AJP13Listener) listener;
-            ajpListener.setConfidentialPort(port);
-            ajpListener.setIntegralPort(port);
-            ajpListener.setIntegralScheme("https");
-            ajpListener.setConfidentialScheme("https");
-        */
-        else {
-            throw new UnsupportedOperationException(listener == null ? "No Listener" : listener.getClass().getName()); //todo: can this happen?
-        }
+        throw new UnsupportedOperationException("No redirect port on " + this.getClass().getName());
     }
 
     public abstract String getProtocol();
@@ -236,12 +214,13 @@
     static {
         GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty HTTP Connector", JettyConnector.class);
         infoFactory.addReference(CONNECTOR_CONTAINER_REFERENCE, JettyContainer.class, NameFactory.GERONIMO_SERVICE);
+        infoFactory.addReference("ThreadPool", ThreadPool.class, NameFactory.GERONIMO_SERVICE);
         // removed 'minThreads' from persistent and manageable String[]
         // removed 'tcpNoDelay' from persistent String[]
         // added 'protocol' to persistent and manageable String[]
         infoFactory.addInterface(JettyWebConnector.class, new String[]{"host", "port", "minThreads", "maxThreads", "bufferSizeBytes", "acceptQueueSize", "lingerMillis", "protocol", "redirectPort", "connectUrl", "maxIdleTimeMs"},
                 new String[]{"host", "port", "redirectPort", "maxThreads", "minThreads", "protocol"});
-        infoFactory.setConstructor(new String[]{"JettyContainer"});
+        infoFactory.setConstructor(new String[]{"JettyContainer", "ThreadPool"});
         GBEAN_INFO = infoFactory.getBeanInfo();
     }
 }

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jetty6.connector;
+
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.system.threads.ThreadPool;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class JettyThreadPool implements org.mortbay.thread.ThreadPool {
+
+    private static final Log log = LogFactory.getLog(JettyThreadPool.class);
+    private final ThreadPool executor;
+    private final String name;
+
+
+    public JettyThreadPool(ThreadPool executor, String name) {
+        this.executor = executor;
+        this.name = name;
+    }
+
+    public boolean dispatch(Runnable runnable) {
+        try {
+            executor.execute(name, runnable);
+            return true;
+        } catch (RejectedExecutionException e) {
+            log.warn(e);
+            return false;
+        } catch (InterruptedException e) {
+            log.warn(e);
+            return false;
+        }
+    }
+
+    public void join() throws InterruptedException {
+        //umm, this is doubtful
+        executor.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
+    }
+
+    public int getThreads() {
+        return executor.getPoolSize();
+    }
+
+    public int getIdleThreads() {
+        return executor.getMaximumPoolSize() - executor.getPoolSize();
+    }
+
+    public boolean isLowOnThreads() {
+        return executor.getPoolSize() >= executor.getMaximumPoolSize();
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyThreadPool.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/resources/META-INF/geronimo-dependency.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/resources/META-INF/geronimo-dependency.xml?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/resources/META-INF/geronimo-dependency.xml (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/resources/META-INF/geronimo-dependency.xml Sat Jun  2 01:10:16 2007
@@ -22,6 +22,14 @@
     </dep:dependency>
     <dep:dependency>
         <dep:groupId>org.mortbay.jetty</dep:groupId>
+        <dep:artifactId>jetty-ajp</dep:artifactId>
+    </dep:dependency>
+    <dep:dependency>
+        <dep:groupId>org.mortbay.jetty</dep:groupId>
+        <dep:artifactId>jetty-sslengine</dep:artifactId>
+    </dep:dependency>
+    <dep:dependency>
+        <dep:groupId>org.mortbay.jetty</dep:groupId>
         <dep:artifactId>jetty-util</dep:artifactId>
     </dep:dependency>
     <dep:dependency>

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java Sat Jun  2 01:10:16 2007
@@ -29,7 +29,7 @@
 
 import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator;
 import org.apache.geronimo.connector.outbound.connectiontracking.GeronimoTransactionListener;
-import org.apache.geronimo.jetty6.connector.HTTPConnector;
+import org.apache.geronimo.jetty6.connector.HTTPSelectChannelConnector;
 import org.apache.geronimo.security.SecurityServiceImpl;
 import org.apache.geronimo.security.deploy.DefaultPrincipal;
 import org.apache.geronimo.security.deploy.PrincipalInfo;
@@ -56,7 +56,7 @@
 public class AbstractWebModuleTest extends TestSupport {
     protected ClassLoader cl;
     protected final static String securityRealmName = "demo-properties-realm";
-    private HTTPConnector connector;
+    private HTTPSelectChannelConnector connector;
     protected JettyContainerImpl container;
     private TransactionManager transactionManager;
     private ConnectionTrackingCoordinator connectionTrackingCoordinator;
@@ -188,7 +188,7 @@
 
         container = new JettyContainerImpl("test:name=JettyContainer", null);
         container.doStart();
-        connector = new HTTPConnector(container);
+        connector = new HTTPSelectChannelConnector(container, null);
         connector.setPort(5678);
         connector.setMaxThreads(50);
 //        connector.setMinThreads(10);

Added: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java?view=auto&rev=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java (added)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java Sat Jun  2 01:10:16 2007
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jetty6.connector;
+
+import org.apache.geronimo.gbean.GBeanInfo;
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class ConnectorGBeanTest extends TestCase {
+
+    public void testGBeans() throws Exception {
+        GBeanInfo gBeanInfo = HTTPBlockingConnector.getGBeanInfo();
+        gBeanInfo = HTTPSelectChannelConnector.getGBeanInfo();
+        gBeanInfo = HTTPSocketConnector.getGBeanInfo();
+        gBeanInfo = HTTPSSelectChannelConnector.getGBeanInfo();
+        gBeanInfo = HTTPSSocketConnector.getGBeanInfo();
+    }
+}

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/ConnectorGBeanTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/HTTPConnectorTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/HTTPConnectorTest.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/HTTPConnectorTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/connector/HTTPConnectorTest.java Sat Jun  2 01:10:16 2007
@@ -25,7 +25,7 @@
  * @version $Rev$ $Date$
  */
 public class HTTPConnectorTest extends TestCase {
-    private HTTPConnector connector;
+    private HTTPSocketConnector connector;
 
     public void testAddress() throws UnknownHostException {
         connector.setHost("localhost");
@@ -35,6 +35,6 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        connector = new HTTPConnector(null);
+        connector = new HTTPSocketConnector(null, null);
     }
 }

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/test/resources/services/local.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/test/resources/services/local.xml?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/test/resources/services/local.xml (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/test/resources/services/local.xml Sat Jun  2 01:10:16 2007
@@ -18,7 +18,7 @@
     <gbean class="org.apache.geronimo.jetty6.JettyContainerImpl" objectName="geronimo.web:type=WebContainer,container=Jetty">
     </gbean>
 
-    <gbean class="org.apache.geronimo.jetty6.connector.HTTPConnector" objectName="geronimo.web:type=WebConnector,container=Jetty,port=8080">
+    <gbean class="org.apache.geronimo.jetty6.connector.HTTPSocketConnector" objectName="geronimo.web:type=WebConnector,container=Jetty,port=8080">
         <default attribute="Port">5678</default>
         <endpoint name="JettyContainer">
             <pattern><gbean-name>geronimo.web:type=WebContainer,container=Jetty</gbean-name></pattern>

Modified: geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/KeystoreManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/KeystoreManager.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/KeystoreManager.java (original)
+++ geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/geronimo/KeystoreManager.java Sat Jun  2 01:10:16 2007
@@ -18,6 +18,7 @@
 
 import javax.net.ssl.SSLServerSocketFactory;
 import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.SSLContext;
 
 /**
  * Management interface for working with keystores.  Mostly this is used to
@@ -130,4 +131,6 @@
      * keystore is unlocked and contains at least one trust certificate.
      */
     public KeystoreInstance[] getUnlockedTrustStores();
+
+    SSLContext createSSLContext(String provider, String protocol, String algorithm, String keyStore, String keyAlias, String trustStore, ClassLoader loader) throws KeystoreException;
 }

Modified: geronimo/server/trunk/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java (original)
+++ geronimo/server/trunk/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java Sat Jun  2 01:10:16 2007
@@ -43,6 +43,9 @@
 import java.util.Vector;
 import javax.net.ssl.SSLServerSocketFactory;
 import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLContext;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.geronimo.gbean.AbstractName;
@@ -290,6 +293,40 @@
      *                     unlocked.
      */
     public SSLServerSocketFactory createSSLServerFactory(String provider, String protocol, String algorithm, String keyStore, String keyAlias, String trustStore, ClassLoader loader) throws KeystoreException {
+        SSLContext sslContext = createSSLContext(provider, protocol, algorithm, keyStore, keyAlias, trustStore, loader);
+        // OMG this hurts, but it causes ClassCastExceptions elsewhere unless done this way!
+        try {
+            Object result = sslContext.getClass().getMethod("getServerSocketFactory", new Class[0]).invoke(sslContext, new Object[0]);
+            return (SSLServerSocketFactory) result;
+        } catch (Exception e) {
+            throw new KeystoreException("Unable to create SSL Server Factory", e);
+        }
+    }
+
+    /**
+     * Gets a ServerSocketFactory using one Keystore to access the private key
+     * and another to provide the list of trusted certificate authorities.
+     * @param provider The SSL provider to use, or null for the default
+     * @param protocol The SSL protocol to use
+     * @param algorithm The SSL algorithm to use
+     * @param keyStore The key keystore name as provided by listKeystores.  The
+     *                 KeystoreInstance for this keystore must be unlocked.
+     * @param keyAlias The name of the private key in the keystore.  The
+     *                 KeystoreInstance for this keystore must have unlocked
+     *                 this key.
+     * @param trustStore The trust keystore name as provided by listKeystores.
+     *                   The KeystoreInstance for this keystore must have
+     *                   unlocked this key.
+     * @param loader     The class loader used to resolve factory classes.
+     *
+     * @return SSLContext using the security info provided
+     * @throws KeystoreIsLocked Occurs when the requested key keystore cannot
+     *                          be used because it has not been unlocked.
+     * @throws KeyIsLocked Occurs when the requested private key in the key
+     *                     keystore cannot be used because it has not been
+     *                     unlocked.
+     */
+    public SSLContext createSSLContext(String provider, String protocol, String algorithm, String keyStore, String keyAlias, String trustStore, ClassLoader loader) throws KeystoreException {
         KeystoreInstance keyInstance = getKeystore(keyStore);
         if(keyInstance.isKeystoreLocked()) {
             throw new KeystoreIsLocked("Keystore '"+keyStore+"' is locked; please use the keystore page in the admin console to unlock it");
@@ -312,10 +349,9 @@
             cls.getMethod("init", new Class[]{kmc, tmc, src}).invoke(ctx, new Object[]{keyInstance.getKeyManager(algorithm, keyAlias, null),
                                                                             trustInstance == null ? null : trustInstance.getTrustManager(algorithm, null),
                                                                             new java.security.SecureRandom()});
-            Object result = cls.getMethod("getServerSocketFactory", new Class[0]).invoke(ctx, new Object[0]);
-            return (SSLServerSocketFactory) result;
+            return (SSLContext) ctx;
         } catch (Exception e) {
-            throw new KeystoreException("Unable to create SSL Server Factory", e);
+            throw new KeystoreException("Unable to create SSL Context", e);
         }
     }
 

Modified: geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/threads/ThreadPool.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/threads/ThreadPool.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/threads/ThreadPool.java (original)
+++ geronimo/server/trunk/modules/geronimo-system/src/main/java/org/apache/geronimo/system/threads/ThreadPool.java Sat Jun  2 01:10:16 2007
@@ -16,16 +16,25 @@
  */
 package org.apache.geronimo.system.threads;
 
+import java.util.concurrent.TimeUnit;
+
 /**
  * Management interface for thread pools
  *
  * @version $Rev$ $Date$
  */
 public interface ThreadPool {
+
+    int getPoolSize();
+
     /**
      * Gets the maximum number of threads allowed for this thread pool
      */
-    int getPoolSize();
+    int getMaximumPoolSize();
+
+    int getActiveCount();
+
+    boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException;
 
     /**
      * Executes work on behalf of a named client.  This helps the thread pool

Modified: geronimo/server/trunk/modules/geronimo-system/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-system/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/modules/geronimo-system/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-system/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java Sat Jun  2 01:10:16 2007
@@ -25,6 +25,8 @@
 import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
+import java.util.concurrent.TimeUnit;
+
 import junit.framework.TestCase;
 import org.apache.geronimo.gbean.AbstractName;
 import org.apache.geronimo.kernel.config.Configuration;
@@ -65,6 +67,18 @@
                 new BasicServerInfo("."), new ThreadPool() {
             public int getPoolSize() {
                 return 0;
+            }
+
+            public int getMaximumPoolSize() {
+                return 0;
+            }
+
+            public int getActiveCount() {
+                return 0;
+            }
+
+            public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
+                return false;
             }
 
             public void execute(String consumerName, Runnable runnable) {

Modified: geronimo/server/trunk/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/pom.xml?view=diff&rev=543715&r1=543714&r2=543715
==============================================================================
--- geronimo/server/trunk/pom.xml (original)
+++ geronimo/server/trunk/pom.xml Sat Jun  2 01:10:16 2007
@@ -1011,6 +1011,18 @@
 
             <dependency>
                 <groupId>org.mortbay.jetty</groupId>
+                <artifactId>jetty-ajp</artifactId>
+                <version>6.1-SNAPSHOT</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>jetty-sslengine</artifactId>
+                <version>6.1-SNAPSHOT</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.mortbay.jetty</groupId>
                 <artifactId>jetty-util</artifactId>
                 <version>6.1-SNAPSHOT</version>
             </dependency>



Mime
View raw message