[pkg-java] r2866 - in trunk/eclipse/debian: . patches

Stephan Michels tashiro-guest at alioth.debian.org
Sat Dec 16 11:27:07 CET 2006


Author: tashiro-guest
Date: 2006-12-16 11:27:06 +0100 (Sat, 16 Dec 2006)
New Revision: 2866

Modified:
   trunk/eclipse/debian/changelog
   trunk/eclipse/debian/patches/eclipse-tomcat55.dpatch
Log:
debian/patches/eclipse-tomcat55-dpatch: link to mx4j-jmx.jar
rather then to jmx.jar.


Modified: trunk/eclipse/debian/changelog
===================================================================
--- trunk/eclipse/debian/changelog	2006-12-15 13:05:43 UTC (rev 2865)
+++ trunk/eclipse/debian/changelog	2006-12-16 10:27:06 UTC (rev 2866)
@@ -1,3 +1,11 @@
+eclipse (3.2.1-3) UNRELEASED; urgency=low
+
+  [ Vladimír Lapáček ]
+  * debian/patches/eclipse-tomcat55-dpatch: link to mx4j-jmx.jar
+    rather then to jmx.jar. 
+
+ -- Stephan Michels <stephan at apache.org>  Sat, 16 Dec 2006 10:02:05 +0100
+
 eclipse (3.2.1-2) UNRELEASED; urgency=low
 
   [ Matthias Klose ]

Modified: trunk/eclipse/debian/patches/eclipse-tomcat55.dpatch
===================================================================
--- trunk/eclipse/debian/patches/eclipse-tomcat55.dpatch	2006-12-15 13:05:43 UTC (rev 2865)
+++ trunk/eclipse/debian/patches/eclipse-tomcat55.dpatch	2006-12-16 10:27:06 UTC (rev 2866)
@@ -20,14 +20,21 @@
 exit 0
 
 @DPATCH@
-
-Index: source-tree/.classpath
-===================================================================
-RCS file: /cvsroot/eclipse/org.eclipse.tomcat/.classpath,v
-retrieving revision 1.21
-diff -u -r1.21 .classpath
---- source-tree/plugins/org.eclipse.tomcat/.classpath	9 May 2006 18:51:41 -0000	1.21
-+++ source-tree/plugins/org.eclipse.tomcat/.classpath	4 Jul 2006 18:42:40 -0000
+diff -r -u source-tree.orig/plugins/org.eclipse.tomcat/build.properties source-tree/plugins/org.eclipse.tomcat/build.properties
+--- source-tree.orig/plugins/org.eclipse.tomcat/build.properties	2006-12-16 09:53:31.000000000 +0100
++++ source-tree/plugins/org.eclipse.tomcat/build.properties	2006-12-16 10:04:09.000000000 +0100
+@@ -11,7 +11,7 @@
+ bin.includes = conf/,\
+                webapps/,\
+                plugin.xml,\
+-               *.jar,\
++               lib/*.jar,\
+                plugin.properties,\
+                preferences.ini,\
+                about.html,\
+diff -r -u source-tree.orig/plugins/org.eclipse.tomcat/.classpath source-tree/plugins/org.eclipse.tomcat/.classpath
+--- source-tree.orig/plugins/org.eclipse.tomcat/.classpath	2006-12-16 09:53:31.000000000 +0100
++++ source-tree/plugins/org.eclipse.tomcat/.classpath	2006-12-16 10:04:09.000000000 +0100
 @@ -1,28 +1,27 @@
  <?xml version="1.0" encoding="UTF-8"?>
  <classpath>
@@ -78,217 +85,393 @@
  	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
  	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
  	<classpathentry kind="output" path="bin"/>
-Index: source-tree/build.properties
-===================================================================
-RCS file: /cvsroot/eclipse/org.eclipse.tomcat/build.properties,v
-retrieving revision 1.16
-diff -u -r1.16 build.properties
---- source-tree/plugins/org.eclipse.tomcat/build.properties	10 May 2006 17:51:19 -0000	1.16
-+++ source-tree/plugins/org.eclipse.tomcat/build.properties	4 Jul 2006 18:42:40 -0000
-@@ -11,7 +11,7 @@
- bin.includes = conf/,\
-                webapps/,\
-                plugin.xml,\
--               *.jar,\
-+               lib/*.jar,\
-                plugin.properties,\
-                preferences.ini,\
-                about.html,\
-Index: source-tree/src/org/eclipse/tomcat/internal/TomcatPlugin.java
-===================================================================
-RCS file: /cvsroot/eclipse/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatPlugin.java,v
-retrieving revision 1.24
-diff -u -r1.24 TomcatPlugin.java
---- source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatPlugin.java	23 May 2005 03:58:20 -0000	1.24
-+++ source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatPlugin.java	4 Jul 2006 18:42:41 -0000
-@@ -24,13 +24,16 @@
- 	public final static String PREF_ACCEPT_COUNT = "acceptCount"; //$NON-NLS-1$
- 	public final static String PREF_MAX_PROCESSORS = "maxProcessors"; //$NON-NLS-1$
- 	public final static String PREF_MIN_PROCESSORS = "minProcessors"; //$NON-NLS-1$
-+	public final static String DISABLE_UPLOAD_TIMEOUT = "disableUploadTimeout"; //$NON-NLS-1$
+diff -r -u source-tree.orig/plugins/org.eclipse.tomcat/META-INF/MANIFEST.MF source-tree/plugins/org.eclipse.tomcat/META-INF/MANIFEST.MF
+--- source-tree.orig/plugins/org.eclipse.tomcat/META-INF/MANIFEST.MF	2006-12-16 09:53:31.000000000 +0100
++++ source-tree/plugins/org.eclipse.tomcat/META-INF/MANIFEST.MF	2006-12-16 10:04:09.000000000 +0100
+@@ -2,30 +2,30 @@
+ Bundle-ManifestVersion: 2
+ Bundle-Name: %pluginName
+ Bundle-SymbolicName: org.eclipse.tomcat; singleton:=true
+-Bundle-Version: 4.1.130.qualifier
++Bundle-Version: 5.5.17.qualifier
+ Bundle-ClassPath: tomcatwrapper.jar,
+- catalina.jar,
+- bootstrap.jar,
+- commons-beanutils.jar,
+- commons-collections.jar,
+- commons-digester.jar,
+- commons-logging-api.jar,
+- commons-modeler.jar,
+- jakarta-regexp-1.3.jar,
+- jasper-compiler.jar,
+- jasper-runtime.jar,
+- mx4j-jmx.jar,
+- naming-common.jar,
+- naming-factory.jar,
+- naming-resources.jar,
+- servlet.jar,
+- servlets-common.jar,
+- servlets-default.jar,
+- servlets-invoker.jar,
+- servlets-manager.jar,
+- tomcat-coyote.jar,
+- tomcat-http11.jar,
+- tomcat-util.jar
++ lib/catalina.jar,
++ lib/catalina-optional.jar,
++ lib/commons-beanutils.jar,
++ lib/commons-collections.jar,
++ lib/commons-digester.jar,
++ lib/commons-digester-rss.jar,
++ lib/commons-el.jar,
++ lib/commons-logging-api.jar,
++ lib/commons-modeler.jar,
++ lib/jasper-compiler.jar,
++ lib/jasper-runtime.jar,
++ lib/mx4j-jmx.jar,
++ lib/jsp-api.jar,
++ lib/naming-factory.jar,
++ lib/naming-resources.jar,
++ lib/regexp.jar,
++ lib/servlet-api.jar,
++ lib/servlets-default.jar,
++ lib/tomcat-coyote.jar,
++ lib/tomcat-http.jar,
++ lib/tomcat-util.jar,
++ lib/servlets-invoker.jar
+ Bundle-Activator: org.eclipse.tomcat.internal.TomcatPlugin
+ Bundle-Vendor: %providerName
+ Bundle-Localization: plugin
+@@ -33,6 +33,74 @@
+  org.apache.ant;bundle-version="[1.6.5,1.7.0)";resolution:=optional,
+  org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)"
+ Eclipse-LazyStart: true
+-Export-Package: org.eclipse.tomcat.internal;x-internal:=true,
++Eclipse-BuddyPolicy: global
++Export-Package: javax.management;x-internal:=true,
++ javax.management.loading;x-internal:=true,
++ javax.management.modelmbean;x-internal:=true,
++ javax.management.monitor;x-internal:=true,
++ javax.management.openmbean;x-internal:=true,
++ javax.management.relation;x-internal:=true,
++ javax.management.timer;x-internal:=true,
++ javax.servlet;x-internal:=true,
++ javax.servlet.http;x-internal:=true,
++ javax.servlet.jsp;x-internal:=true,
++ javax.servlet.jsp.tagext;x-internal:=true,
++ mx4j;x-internal:=true,
++ mx4j.loading;x-internal:=true,
++ mx4j.log;x-internal:=true,
++ mx4j.persist;x-internal:=true,
++ mx4j.server;x-internal:=true,
++ mx4j.server.interceptor;x-internal:=true,
++ mx4j.timer;x-internal:=true,
++ mx4j.util;x-internal:=true,
++ org.apache.catalina;x-internal:=true,
++ org.apache.catalina.connector;x-internal:=true,
++ org.apache.catalina.core;x-internal:=true,
++ org.apache.catalina.realm;x-internal:=true,
++ org.apache.catalina.servlets;x-internal:=true,
++ org.apache.commons.beanutils;x-internal:=true,
++ org.apache.commons.beanutils.converters;x-internal:=true,
++ org.apache.commons.beanutils.locale;x-internal:=true,
++ org.apache.commons.beanutils.locale.converters;x-internal:=true,
++ org.apache.commons.collections;x-internal:=true,
++ org.apache.commons.collections.comparators;x-internal:=true,
++ org.apache.commons.collections.iterators;x-internal:=true,
++ org.apache.commons.digester;x-internal:=true,
++ org.apache.commons.digester.rss;x-internal:=true,
++ org.apache.commons.digester.xmlrules;x-internal:=true,
++ org.apache.commons.logging;x-internal:=true,
++ org.apache.commons.logging.impl;x-internal:=true,
++ org.apache.commons.modeler;x-internal:=true,
++ org.apache.commons.modeler.ant;x-internal:=true,
++ org.apache.commons.modeler.mbeans;x-internal:=true,
++ org.apache.commons.modeler.modules;x-internal:=true,
++ org.apache.commons.modeler.util;x-internal:=true,
++ org.apache.coyote;x-internal:=true,
++ org.apache.coyote.http11;x-internal:=true,
++ org.apache.coyote.http11.filters;x-internal:=true,
++ org.apache.coyote.memory;x-internal:=true,
++ org.apache.jasper;x-internal:=true,
++ org.apache.jasper.compiler;x-internal:=true,
++ org.apache.jasper.runtime;x-internal:=true,
++ org.apache.jasper.servlet;x-internal:=true,
++ org.apache.jasper.util;x-internal:=true,
++ org.apache.jasper.xmlparser;x-internal:=true,
++ org.apache.naming;x-internal:=true,
++ org.apache.naming.factory;x-internal:=true,
++ org.apache.naming.java;x-internal:=true,
++ org.apache.naming.resources;x-internal:=true,
++ org.apache.regexp;x-internal:=true,
++ org.apache.tomcat.util;x-internal:=true,
++ org.apache.tomcat.util.buf;x-internal:=true,
++ org.apache.tomcat.util.collections;x-internal:=true,
++ org.apache.tomcat.util.http;x-internal:=true,
++ org.apache.tomcat.util.http.mapper;x-internal:=true,
++ org.apache.tomcat.util.log;x-internal:=true,
++ org.apache.tomcat.util.net;x-internal:=true,
++ org.apache.tomcat.util.net.jsse;x-internal:=true,
++ org.apache.tomcat.util.res;x-internal:=true,
++ org.apache.tomcat.util.threads;x-internal:=true,
++ org.eclipse.tomcat.internal;x-internal:=true,
++ org.eclipse.tomcat.internal;x-internal:=true,
+  org.eclipse.tomcat.internal.extensions;x-internal:=true
+ Bundle-RequiredExecutionEnvironment: J2SE-1.4
+diff -r -u source-tree.orig/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java
+--- source-tree.orig/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java	2006-12-16 09:53:31.000000000 +0100
++++ source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java	2006-12-16 10:04:09.000000000 +0100
+@@ -69,15 +69,27 @@
+ package org.eclipse.tomcat.internal;
  
- 	public final static String PREF_SSL_PORT = "sslPort"; //$NON-NLS-1$
- 	public final static String PREF_SSL_PROTOCOL = "sslProtocol"; //$NON-NLS-1$
-+	public final static String PREF_SSL_PROTOCOLS = "sslProtocols"; //$NON-NLS-1$
- 	public final static String PREF_SSL_SCHEME = "sslScheme"; //$NON-NLS-1$
- 	public final static String PREF_SSL_ALGORITHM = "sslAlgorithm"; //$NON-NLS-1$
- 	public final static String PREF_KEY_STORE_FILE = "keyStoreFile"; //$NON-NLS-1$
- 	public final static String PREF_KEY_STORE_PASSWORD = "keyStorePassword"; //$NON-NLS-1$
-+	public final static String PREF_CLIENT_AUTHENTICATION = "clientauth"; //$NON-NLS-1$
- 	
- 	private static TomcatPlugin plugin;
- //	private static BundleContext bundleContext;
-Index: source-tree/src/org/eclipse/tomcat/internal/TomcatAppServer.java
-===================================================================
-RCS file: /cvsroot/eclipse/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatAppServer.java,v
-retrieving revision 1.46
-diff -u -r1.46 TomcatAppServer.java
---- source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatAppServer.java	17 Apr 2006 15:24:57 -0000	1.46
-+++ source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatAppServer.java	4 Jul 2006 18:42:41 -0000
-@@ -1,604 +1,650 @@
--/*******************************************************************************
-- * Copyright (c) 2000, 2006 IBM Corporation and others.
-- * All rights reserved. This program and the accompanying materials
-- * are made available under the terms of the Eclipse Public License v1.0
-- * which accompanies this distribution, and is available at
-- * http://www.eclipse.org/legal/epl-v10.html
-- *
-- * Contributors:
-- *     IBM Corporation - initial API and implementation
-- *******************************************************************************/
--package org.eclipse.tomcat.internal;
+ 
+-import java.io.*;
+-import java.util.*;
 -
--import java.io.ByteArrayOutputStream;
--import java.io.PrintStream;
--import java.net.InetAddress;
--import java.net.URL;
--import java.net.UnknownHostException;
--import java.util.ArrayList;
+-import javax.servlet.*;
+-import javax.servlet.http.*;
 -
+-import org.apache.catalina.*;
+-import org.apache.catalina.util.*;
+-import org.apache.catalina.valves.*;
++import java.io.IOException;
++import java.io.PrintWriter;
++import java.io.StringWriter;
++import java.io.Writer;
++import java.util.Locale;
++
++import javax.servlet.ServletException;
++import javax.servlet.ServletRequest;
++import javax.servlet.ServletResponse;
++import javax.servlet.http.HttpServletResponse;
++
++import mx4j.log.Logger;
++
++import org.apache.catalina.Globals;
++import org.apache.catalina.Valve;
++import org.apache.catalina.connector.Request;
++import org.apache.catalina.connector.Response;
++import org.apache.catalina.util.RequestUtil;
++import org.apache.catalina.util.StringManager;
++import org.apache.catalina.valves.Constants;
++import org.apache.catalina.valves.ValveBase;
+ import org.eclipse.core.runtime.Platform;
+ 
+ 
+@@ -145,12 +157,12 @@
+      * @exception IOException if an input/output error occurs
+      * @exception ServletException if a servlet error occurs
+      */
+-    public void invoke(Request request, Response response,
+-                       ValveContext context)
++    public void invoke(Request request, Response response)
+         throws IOException, ServletException {
+ 
+         // Perform the request
+-        context.invokeNext(request, response);
++        Valve nextValve = getNext();
++        nextValve.invoke(request, response);
+ 
+         ServletRequest sreq = (ServletRequest) request;
+         Throwable throwable = 
+@@ -220,14 +232,11 @@
+         throws IOException {
+ 
+         // Do nothing on non-HTTP responses
+-        if (!(response instanceof HttpResponse))
+-            return;
+-        HttpResponse hresponse = (HttpResponse) response;
+         if (!(response instanceof HttpServletResponse))
+             return;
+         HttpServletResponse hres = (HttpServletResponse) response;
+-        int statusCode = hresponse.getStatus();
+-        String message = RequestUtil.filter(hresponse.getMessage());
++        int statusCode = response.getStatus();
++        String message = RequestUtil.filter(response.getMessage());
+         if (message == null)
+             message = ""; //$NON-NLS-1$
+ 
+@@ -373,9 +382,9 @@
+      */
+     protected void log(String message) {
+ 
+-        Logger logger = container.getLogger();
++        Logger logger = (Logger) container.getLogger();
+         if (logger != null)
+-            logger.log(this.toString() + ": " + message); //$NON-NLS-1$
++            logger.info(this.toString() + ": " + message); //$NON-NLS-1$
+         else
+             System.out.println(this.toString() + ": " + message); //$NON-NLS-1$
+ 
+@@ -390,9 +399,9 @@
+      */
+     protected void log(String message, Throwable throwable) {
+ 
+-        Logger logger = container.getLogger();
++        Logger logger = (Logger) container.getLogger();
+         if (logger != null)
+-            logger.log(this.toString() + ": " + message, throwable); //$NON-NLS-1$
++            logger.info(this.toString() + ": " + message, throwable); //$NON-NLS-1$
+         else {
+             System.out.println(this.toString() + ": " + message); //$NON-NLS-1$
+             throwable.printStackTrace(System.out);
+diff -r -u source-tree.orig/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatAppServer.java source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatAppServer.java
+--- source-tree.orig/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatAppServer.java	2006-12-16 09:53:31.000000000 +0100
++++ source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatAppServer.java	2006-12-16 10:06:32.000000000 +0100
+@@ -4,7 +4,7 @@
+  * are made available under the terms of the Eclipse Public License v1.0
+  * which accompanies this distribution, and is available at
+  * http://www.eclipse.org/legal/epl-v10.html
+- *
++ * 
+  * Contributors:
+  *     IBM Corporation - initial API and implementation
+  *******************************************************************************/
+@@ -17,23 +17,24 @@
+ import java.net.UnknownHostException;
+ import java.util.ArrayList;
+ 
 -import org.apache.catalina.Connector;
--import org.apache.catalina.Context;
--import org.apache.catalina.Engine;
--import org.apache.catalina.Host;
--import org.apache.catalina.LifecycleEvent;
--import org.apache.catalina.LifecycleException;
--import org.apache.catalina.LifecycleListener;
--import org.apache.catalina.Realm;
--import org.apache.catalina.core.StandardContext;
--import org.apache.catalina.core.StandardHost;
++import mx4j.log.FileLogger;
++
+ import org.apache.catalina.Context;
+ import org.apache.catalina.Engine;
+ import org.apache.catalina.Host;
++import org.apache.catalina.Lifecycle;
+ import org.apache.catalina.LifecycleEvent;
+ import org.apache.catalina.LifecycleException;
+ import org.apache.catalina.LifecycleListener;
+ import org.apache.catalina.Realm;
++import org.apache.catalina.connector.Connector;
+ import org.apache.catalina.core.StandardContext;
+ import org.apache.catalina.core.StandardHost;
 -import org.apache.catalina.logger.FileLogger;
--import org.apache.catalina.realm.MemoryRealm;
--import org.apache.catalina.startup.Embedded;
+ import org.apache.catalina.realm.MemoryRealm;
+ import org.apache.catalina.startup.Embedded;
 -import org.apache.coyote.tomcat4.CoyoteConnector;
 -import org.apache.coyote.tomcat4.CoyoteServerSocketFactory;
--import org.eclipse.core.runtime.CoreException;
++import org.apache.coyote.http11.Http11Protocol;
++import org.apache.tomcat.util.net.jsse.JSSEImplementation;
+ import org.eclipse.core.runtime.CoreException;
 -import org.eclipse.core.runtime.FileLocator;
--import org.eclipse.core.runtime.IConfigurationElement;
--import org.eclipse.core.runtime.IExtension;
--import org.eclipse.core.runtime.IExtensionPoint;
--import org.eclipse.core.runtime.IExtensionRegistry;
--import org.eclipse.core.runtime.IPath;
--import org.eclipse.core.runtime.IStatus;
--import org.eclipse.core.runtime.Platform;
--import org.eclipse.core.runtime.Preferences;
--import org.eclipse.core.runtime.Status;
--import org.eclipse.help.internal.appserver.IWebappServer;
--import org.eclipse.osgi.util.NLS;
--import org.eclipse.tomcat.internal.extensions.IRealmFactory;
--
--/**
-- * Single engine, single host, single connector Tomcat Application Server.
-- */
--public class TomcatAppServer implements IWebappServer {
--    /**
--     * Specify this reserved value for the SSL port # to indicate that SSL
--     * should not be used
--     */
--    public final static int SSL_DISABLED = -1;
--
--    private String hostAddress;
--
--    private int port;
--
--    private int sslPort = SSL_DISABLED;
--
--    // false until an attempt to start Tomcat
--    private boolean isStarted = false;
--
--    // true after started without problems
--    private boolean running = false;
--
--    private Embedded embedded = null;
--
--    private Engine engine = null;
--
--    private Host host = null;
--
--    private Connector httpConnector = null;
--    private Connector sslConnector = null;
--    // Con
--    private ArrayList contexts = new ArrayList();
--
--    /**
--     * Constructs this class, but does not instantiates or start Tomcat classes
--     * until webapp are added.
--     */
--    public TomcatAppServer() {
--    }
--
--    /**
--     * @see org.eclipse.help.internal.appserver.IWebappServer#start(int,
--     *      java.lang.String)
--     */
--    public synchronized void start(int port, String hostAddress) throws CoreException {
+ import org.eclipse.core.runtime.IConfigurationElement;
+ import org.eclipse.core.runtime.IExtension;
+ import org.eclipse.core.runtime.IExtensionPoint;
+@@ -56,6 +57,8 @@
+      * should not be used
+      */
+     public final static int SSL_DISABLED = -1;
++    
++    private final static String NULL = null;
+ 
+     private String hostAddress;
+ 
+@@ -76,7 +79,9 @@
+     private Host host = null;
+ 
+     private Connector httpConnector = null;
++    private boolean hasConnection = false; 
+     private Connector sslConnector = null;
++    private boolean hasSSLConnection = false;
+     // Con
+     private ArrayList contexts = new ArrayList();
+ 
+@@ -92,24 +97,34 @@
+      *      java.lang.String)
+      */
+     public synchronized void start(int port, String hostAddress) throws CoreException {
 -        this.hostAddress = hostAddress;
--        this.port = port;
++        // if null passed for hostAddress, use local host
++        if (hostAddress == null) {
++            this.hostAddress = "127.0.0.1"; //$NON-NLS-1$
++        } else {
++        	this.hostAddress = hostAddress;
++        }
++        InetAddress iAddress = null;
++        
++        //Defaults to LOCALHOST
++        try{
++              iAddress = InetAddress.getByName(this.hostAddress);
++        } catch (UnknownHostException uhe) {
++                // will default to all interfaces
++         }
++        
++        String hostname = iAddress.getHostName();
++        
+         this.port = port;
 -
--        if (isStarted) {
--            return;
--        }
--        isStarted = true;
--        try {
+         if (isStarted) {
+             return;
+         }
+         isStarted = true;
+         try {
 -            FileLogger logger = new FileLogger();
 -            logger.setDirectory(TomcatPlugin.getDefault().getStateLocation()
 -                    .toOSString());
 -            embedded = new Embedded(logger, new MemoryRealm());
 -            embedded.setDebug(0);
 -            embedded.setLogger(logger);
--            URL installURL = TomcatPlugin.getDefault().getBundle()
--                    .getEntry("/"); //$NON-NLS-1$
++            embedded = new Embedded(new MemoryRealm());
+             URL installURL = TomcatPlugin.getDefault().getBundle()
+                     .getEntry("/"); //$NON-NLS-1$
 -            URL resolvedURL = FileLocator.resolve(installURL);
 -            String home = FileLocator.toFileURL(resolvedURL).getFile();
--            System.setProperty("catalina.home", home); //$NON-NLS-1$
--            String base = home;
--            System.setProperty("catalina.base", base); //$NON-NLS-1$
++            URL resolvedURL = Platform.resolve(installURL);
++            String home = Platform.asLocalURL(resolvedURL).getFile();
+             System.setProperty("catalina.home", home); //$NON-NLS-1$
+             String base = home;
+             System.setProperty("catalina.base", base); //$NON-NLS-1$
+@@ -120,14 +135,21 @@
+                 Realm realm = getRealm();
+                 embedded.setRealm(realm);
+             }
 -
--            // Set up realm if one found
--            if (TomcatPlugin.getDefault().getPluginPreferences().getInt(
--                    TomcatPlugin.PREF_SSL_PORT) >= 0) {
--                Realm realm = getRealm();
--                embedded.setRealm(realm);
--            }
--
--            // start now, and then add all the contexts..
--            embedded.start();
--
--            // Create a very basic container hierarchy
--            engine = embedded.createEngine();
--
++            //the embedded application is now started by using embedded.start()
++            embedded.addLifecycleListener(new LifecycleListener(){
++	                public void lifecycleEvent(LifecycleEvent event) {
++	                    if (Lifecycle.START_EVENT.equals(event.getType())) 
++	                        running = true;
++	                }
++    	
++            });
+             // start now, and then add all the contexts..
+             embedded.start();
+ 
+             // Create a very basic container hierarchy
+             engine = embedded.createEngine();
+ 
 -            host = embedded.createHost("localhost", home + "/webapps"); //$NON-NLS-1$ //$NON-NLS-2$
++            host = embedded.createHost(hostname, home + "webapps"); //$NON-NLS-1$
+ 
+             // all request go to our only host
+             engine.setDefaultHost(host.getName());
+@@ -136,8 +158,9 @@
+                 ((StandardHost) host)
+                         .setErrorReportValveClass("org.eclipse.tomcat.internal.EclipseErrorReportValve"); //$NON-NLS-1$
+             }
++            
+             engine.addChild(host);
 -
--            // all request go to our only host
--            engine.setDefaultHost(host.getName());
--
--            if (host instanceof StandardHost) {
--                ((StandardHost) host)
--                        .setErrorReportValveClass("org.eclipse.tomcat.internal.EclipseErrorReportValve"); //$NON-NLS-1$
--            }
--            engine.addChild(host);
--
--            // Install the assembled container hierarchy
--            PrintStream sysOut = System.out;
--            // reassign standard output to prevent Tomcat from writing
--            // its version message there.
--            System.setOut(new PrintStream(new ByteArrayOutputStream()));
--            try {
--                embedded.addEngine(engine);
--            } finally {
--                System.setOut(sysOut);
--            }
--
--            // Root context
++            
+             // Install the assembled container hierarchy
+             PrintStream sysOut = System.out;
+             // reassign standard output to prevent Tomcat from writing
+@@ -150,7 +173,7 @@
+             }
+ 
+             // Root context
 -            Context root = embedded.createContext("", home + "/webapps/ROOT"); //$NON-NLS-1$ //$NON-NLS-2$
--            // this line should be replaced once tomcat provides support
--            // for setting the working directory
--            if (root instanceof StandardContext) {
--                ((StandardContext) root)
--                        .setWorkDir(getWorkingDirectory("ROOT")); //$NON-NLS-1$
--            }
--            root.setLoader(embedded.createLoader(this.getClass()
--                    .getClassLoader()));
++            Context root = embedded.createContext("", home + "webapps/ROOT"); //$NON-NLS-1$ //$NON-NLS-2$
+             // this line should be replaced once tomcat provides support
+             // for setting the working directory
+             if (root instanceof StandardContext) {
+@@ -159,20 +182,13 @@
+             }
+             root.setLoader(embedded.createLoader(this.getClass()
+                     .getClassLoader()));
 -            contexts.add(root);
--            host.addChild(root);
++            
+             host.addChild(root);
 -
 -            InetAddress iAddress = null;
 -            if (this.hostAddress != null) {
@@ -298,20 +481,19 @@
 -                    // will default to all interfaces
 -                }
 -            }
--            updateSslPort(iAddress);
--            if (this.port == 0) {
++            contexts.add(root);
++ 
+             updateSslPort(iAddress);
+             if (this.port == 0) {
 -                this.port = SocketUtil.findUnusedLocalPort(iAddress); 
--                if (this.port == -1) {
--                    throw new CoreException(
--                            new Status(
--                                    IStatus.ERROR,
--                                    TomcatPlugin.PLUGIN_ID,
--                                    IStatus.OK,
--                                    TomcatResources.TomcatAppServer_start_CannotObtainPort, 
--                                    null));
--                }
--            }
--
++                this.port = SocketUtil.findUnusedLocalPort(iAddress);
+                 if (this.port == -1) {
+                     throw new CoreException(
+                             new Status(
+@@ -184,51 +200,55 @@
+                 }
+             }
+ 
 -            // Create Connector
 -            Connector connector = embedded.createConnector(null, this.port,
 -                    false);
@@ -346,7 +528,45 @@
 -                    connectorImpl.setConnectionTimeout(20000);
 -                    connectorImpl.setUseURIValidationHack(false);
 -                    connectorImpl.setDisableUploadTimeout(true);
--                }
++             // Create Connector
++            Connector connector = embedded.createConnector(iAddress.getHostAddress(), this.port,false);;
++
++            Preferences pref = TomcatPlugin.getDefault()
++                    .getPluginPreferences();
++            /**
++             * To extend additional properties, make use of org.apache.tomcat.util.IntrospectionUtils
++             * A Connector will initialize a protocolhandler defaults to org.apache.coyote.http11.Http11Protocol
++             * format : connector.setProperty("STRING_PROP_NAME","STRING_PROP_VALUE");
++             *  
++             */
++
++            int acceptCount = pref.getInt(TomcatPlugin.PREF_ACCEPT_COUNT);
++            if (acceptCount > 0) {
++                connector.setProperty("backlog",""+acceptCount); //$NON-NLS-1$ //$NON-NLS-2$
++            }
++
++            int maxProcessors = pref
++                    .getInt(TomcatPlugin.PREF_MAX_PROCESSORS);
++            if (maxProcessors > 0) {
++            	connector.setProperty("maxThreads",""+maxProcessors); //$NON-NLS-1$ //$NON-NLS-2$
++            }
++            
++            int minProcessors = pref
++                    .getInt(TomcatPlugin.PREF_MIN_PROCESSORS);
++            if (minProcessors > 0) {
++            	connector.setProperty("minSpareThreads",""+minProcessors); //$NON-NLS-1$ //$NON-NLS-2$
++            }
++            
++            if (this.sslPort > 0) {
++                connector.setRedirectPort(this.sslPort);
++                connector.setEnableLookups(true);
++                connector.setProperty("soTimeout",""+20000); //$NON-NLS-1$ //$NON-NLS-2$
++                //connector.setUseURIValidationHack(false); no longer available
++                connector.setUseBodyEncodingForURI(false);
++                String disableUploadTimeout = pref.getString(TomcatPlugin.DISABLE_UPLOAD_TIMEOUT);
++                if ((disableUploadTimeout != null) && (!("".equals(disableUploadTimeout.trim())))) { //$NON-NLS-1$
++                    connector.setProperty("disableUploadTimeout", disableUploadTimeout); //$NON-NLS-1$
+                 }
 -                // connectorImpl.setDebug(0);
 -                // If there is problem in embedded.addConnector()
 -                // there is no exception, so add a listener
@@ -356,87 +576,52 @@
 -                            running = true;
 -                    }
 -                });
--            }
--
--            // add Connector to Tomcat
--            PrintStream sysErr = System.err;
--            // reassign standard error to prevent Coyote from writing
--            // its version message there.
--            System.setErr(new PrintStream(new ByteArrayOutputStream()));
--            try {
+             }
++            // connectorImpl.setDebug(0);
++            // If there is problem in embedded.addConnector()
++            // there is no exception, so add a listener
++            connector.addLifecycleListener(new LifecycleListener() {
++                public void lifecycleEvent(LifecycleEvent event) {
++                    if (Lifecycle.START_EVENT.equals(event.getType())) 
++                        hasConnection = true;
++                }
++            });
+ 
+             // add Connector to Tomcat
+             PrintStream sysErr = System.err;
+@@ -236,21 +256,16 @@
+             // its version message there.
+             System.setErr(new PrintStream(new ByteArrayOutputStream()));
+             try {
 -                embedded.addConnector(connector);
 -                httpConnector = connector;
--            } finally {
--                System.setErr(sysErr);
--            }
++            	this.httpConnector = connector;
++                embedded.addConnector(this.httpConnector);
++                httpConnector.start();
+             } finally {
+                 System.setErr(sysErr);
+             }
 -
--            if (this.sslPort > 0) {
--                createSSLConnector(iAddress, this.sslPort);
--            }
--
+             if (this.sslPort > 0) {
+                 createSSLConnector(iAddress, this.sslPort);
+             }
+ 
 -            // if null passed for hostAddress, use local host
 -            if (this.hostAddress == null) {
 -                this.hostAddress = "127.0.0.1"; //$NON-NLS-1$
 -            }
 -
--            // running = true;
--            TomcatPlugin.getDefault().setAppserver(this);
--
--        } catch (Exception exc) {
--            TomcatPlugin
--                    .logError(
--                            "Exception occurred starting the embedded application server.", //$NON-NLS-1$
--                            exc);
--            if (exc instanceof CoreException) {
--                throw (CoreException) exc;
--            }
--            throw new CoreException(new Status(IStatus.ERROR,
--            		TomcatPlugin.PLUGIN_ID, IStatus.OK,
--            		TomcatResources.TomcatAppServer_start, 
--            		exc));
--        }
--        if (!running) {
--            throw new CoreException(new Status(IStatus.ERROR,
--                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
--                    TomcatResources.TomcatAppServer_start, null)); 
--        }
--    }
--
--    /**
--     * Update {@link sslPort} to refer an appropriate port. If the user set
--     * sslPort to 0, an arbitrary free port will be used.
--     * 
--     * @param iAddress
--     *            {@link InetAddress} object representing the machine hosting
--     *            the help system
--     * @return port number of use for the SSL connection
--     * @throws CoreException
--     */
--    private int updateSslPort(InetAddress iAddress) throws CoreException {
--        this.sslPort = TomcatPlugin.getDefault().getPluginPreferences().getInt(
--                TomcatPlugin.PREF_SSL_PORT);
--        if (this.sslPort == 0) {
--            this.sslPort = SocketUtil.findUnusedLocalPort(iAddress); 
--            if (this.sslPort == -1) {
--                throw new CoreException(new Status(IStatus.ERROR,
--                        TomcatPlugin.PLUGIN_ID, IStatus.OK,
--                        TomcatResources.TomcatAppServer_start_CannotObtainPort, 
--                        null));
--            }
--        }
--        return this.sslPort;
--    }
--
--    /**
--     * @param iAddress
--     *            InetAddress representing the machine hosting the help system.
--     * @param sslport
--     *            port # to use for the SSL connection
--     * @throws CoreException
--     */
--    private void createSSLConnector(InetAddress iAddress, int sslport)
+             // running = true;
+             TomcatPlugin.getDefault().setAppserver(this);
+ 
+@@ -307,82 +322,115 @@
+      * @throws CoreException
+      */
+     private void createSSLConnector(InetAddress iAddress, int sslport)
 -            throws CoreException {
--        // Create Connector
++            throws CoreException {  	
++       
+         // Create Connector
 -        this.sslConnector = embedded.createConnector(null, sslport, false);
 -        // Override defaults on CoyoteConnector
 -        if (this.sslConnector instanceof CoyoteConnector) {
@@ -500,7 +685,9 @@
 -                }
 -            });
 -        }
--
++    	//Defaults to local if IAddress is null
++        Connector connector = embedded.createConnector(iAddress.getHostAddress(), this.port,false);
+ 
 -        // add Connector to Tomcat
 -        PrintStream sysErr = System.err;
 -        // reassign standard error to prevent Coyote from writing
@@ -510,1112 +697,164 @@
 -            embedded.addConnector(this.sslConnector);
 -        } finally {
 -            System.setErr(sysErr);
--        }
--    }
++        //--------------------create the Protocol-----------------------//
++        Preferences pref = TomcatPlugin.getDefault().getPluginPreferences();
++        /**
++         * To extend additional properties, make use of org.apache.tomcat.util.IntrospectionUtils
++         * A Connector will initialize a protocolhandler which initialize a SSLImplementation which initialize
++         * a ServerSocketFactory
++         * format : connector.setProperty("STRING_PROP_NAME","STRING_PROP_VALUE");
++         *  
++         */
++        //----------------configure connector -------------------------------//
++        // by looking at the code, it seems like the protocol go in first
++	   	String protocol = pref.getString(TomcatPlugin.PREF_SSL_PROTOCOL);
++	    if ((protocol != null) && (!("".equals(protocol.trim())))) { //$NON-NLS-1$
++	        connector.setProperty("protocol",protocol); //$NON-NLS-1$
++	    }
++	   	String protocols = pref.getString(TomcatPlugin.PREF_SSL_PROTOCOLS);
++	    if ((protocols != null) && (!("".equals(protocols.trim())))) { //$NON-NLS-1$
++	        connector.setProperty("protocols",protocols); //$NON-NLS-1$
++	    }
++        String protocolClassName = Http11Protocol.class.getName(); 
++        connector.setProtocol(protocolClassName);
++        
++        String JSSEImplementationName = JSSEImplementation.class.getName();
++        connector.setProperty("sslImplementation",JSSEImplementationName); //$NON-NLS-1$
++        
++        String disableUploadTimeout = pref.getString(TomcatPlugin.DISABLE_UPLOAD_TIMEOUT);
++        if ((disableUploadTimeout != null) && (!("".equals(disableUploadTimeout.trim())))) { //$NON-NLS-1$
++            connector.setProperty("disableUploadTimeout", disableUploadTimeout); //$NON-NLS-1$
++        }
++        
++        String algorithm = pref.getString(TomcatPlugin.PREF_SSL_ALGORITHM);
++        if ((algorithm != null) && (!("".equals(algorithm.trim())))) { //$NON-NLS-1$
++            connector.setProperty("algorithm", algorithm); //$NON-NLS-1$
++        }
++        int maxProcessors = pref.getInt(TomcatPlugin.PREF_MAX_PROCESSORS);
++        if (maxProcessors > 0) {
++            //connector.setMaxProcessors(maxProcessors);
++        	connector.setProperty("maxThreads",""+maxProcessors); //$NON-NLS-1$ //$NON-NLS-2$
++        }
++        int minProcessors = pref.getInt(TomcatPlugin.PREF_MIN_PROCESSORS);
++        if (minProcessors > 0) {
++            //connector.setMinProcessors(minProcessors);
++        	connector.setProperty("minSpareThreads",""+minProcessors); //$NON-NLS-1$ //$NON-NLS-2$
++        }
++        //this is making use of org.apache.tomcat.util.IntrospectionUtils 
++        connector.setProperty("disableUploadTimeout",""+true);  //$NON-NLS-1$ //$NON-NLS-2$
++	   	String clientauth = pref.getString(TomcatPlugin.PREF_CLIENT_AUTHENTICATION);
++	    if ((clientauth != null) && (!("".equals(clientauth.trim())))) { //$NON-NLS-1$
++	        connector.setProperty("clientauth",clientauth); //$NON-NLS-1$
++	    }
++    
++        int acceptCount = pref.getInt(TomcatPlugin.PREF_ACCEPT_COUNT);
++        if (acceptCount > 0) {
++            connector.setProperty("backlog",""+acceptCount); //$NON-NLS-1$ //$NON-NLS-2$
++        }
++        
++        String keyStoreFile = pref
++        .getString(TomcatPlugin.PREF_KEY_STORE_FILE);
++		if ((keyStoreFile != null) && (!("".equals(keyStoreFile.trim())))) { //$NON-NLS-1$
++			connector.setProperty("keystore", keyStoreFile); //$NON-NLS-1$
++		}
++        String keyStorePassword = pref
++        .getString(TomcatPlugin.PREF_KEY_STORE_PASSWORD);
++		if ((keyStorePassword != null)
++		        && (!("".equals(keyStorePassword.trim())))) { //$NON-NLS-1$
++			connector.setProperty("keypass", keyStorePassword); //$NON-NLS-1$
++		}
++        //connector.setUseURIValidationHack(false);  --no longer avaliable, hope they fixed the bug
++        connector.setUseBodyEncodingForURI(false);
++        // connector.setSecure(true); ---setting ssLImplementation set secure to true
++        String scheme = pref.getString(TomcatPlugin.PREF_SSL_SCHEME);
++        if ((scheme != null) && (!("".equals(scheme.trim())))) { //$NON-NLS-1$
++            connector.setScheme(scheme);
++        }
++        connector.setEnableLookups(true);
++        
++        //connector.setFactory(factory);  --no longer needed, now handled by SSLImplemenatation
++        // If there is problem in embedded.addConnector()
++        // there is no exception, so add a listener
++        connector.addLifecycleListener(new LifecycleListener() {
++            public void lifecycleEvent(LifecycleEvent event) {
++                if (Lifecycle.START_EVENT.equals(event.getType())||Lifecycle.PERIODIC_EVENT.equals(event.getType()))
++                    hasSSLConnection = true;
++            }
++        });
++	    // add Connector to Tomcat
++	    PrintStream sysErr = (PrintStream) System.err;
++	    // reassign standard error to prevent Coyote from writing
++	    // its version message there.
++	    System.setErr(new PrintStream(new ByteArrayOutputStream()));
++	    try{
++		    sslConnector = connector;
++		    embedded.addConnector(this.sslConnector);
++		    sslConnector.start();
++        } catch(LifecycleException e){
++            TomcatPlugin
++            .logError(
++                    "Exception occurred while establishing secure connection.", //$NON-NLS-1$
++                    e);
+         }
++	    finally {
++                System.setErr(sysErr);
++         }
+     }
+ 
+     /**
+@@ -461,17 +509,16 @@
+      */
+     public synchronized void start(String webappName, IPath path, ClassLoader customLoader)
+             throws CoreException {
 -
--    /**
--     * Creates a {@link Realm}object using the information contained in
--     * extensions of the type org.eclipse.tomcat.realmfactory in the plugin
--     * registry.
--     * 
--     * @return the {@link Realm}object created
--     */
--    private Realm getRealm() {
--        IExtensionRegistry registry = Platform.getExtensionRegistry();
--        IExtensionPoint extensionPoint = registry.getExtensionPoint(
--                TomcatPlugin.PLUGIN_ID, "realmfactory"); //$NON-NLS-1$
--        Realm realm = null;
--        if (extensionPoint != null) {
--            IExtension[] extensions = extensionPoint.getExtensions();
--            if ((extensions != null) && (extensions.length == 1)) {
--                IConfigurationElement[] factoryElements = extensions[0]
--                        .getConfigurationElements();
--                if ((factoryElements != null) && (factoryElements.length == 1)) {
--                    try {
--                        IRealmFactory realmFactory = (IRealmFactory) factoryElements[0]
--                                .createExecutableExtension("class"); //$NON-NLS-1$
--                        realm = realmFactory.createRealm();
--                    } catch (CoreException e) {
--                        logError(
--                                TomcatResources.TomcatAppServer_getRealmFactoryFailed,
--                                e);
--                    }
--                } else {
--                    if ((factoryElements == null)
--                            || (factoryElements.length == 0)) {
--                        logError(TomcatResources.TomcatAppServer_missingFactoryElement);
--                    } else {
--                        logError(TomcatResources.TomcatAppServer_multipleFactoryElements);
--                    }
--                }
--            } else {
--                if ((extensions == null) || (extensions.length == 0)) {
--                    logError(TomcatResources.TomcatAppServer_missingRealmExtension);
--                } else {
--                    logError(TomcatResources.TomcatAppServer_multipleRealmExtensions);
--                }
--            }
--        } else {
--            logError(TomcatResources.TomcatAppServer_missingRealmExtensionPoint);
++    	
+         if (!isStarted) {
+             start(port, hostAddress);
 -        }
--        return realm;
--    }
++         }
+         if (!running) {
+             throw new CoreException(new Status(IStatus.ERROR,
+                     TomcatPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(
+                             TomcatResources.TomcatAppServer_addingWebapp,
+                             webappName, path.toOSString()), null));
+         }
 -
--    /**
--     * Create an error entry in the log
--     * 
--     * @param msg
--     *            error message
--     */
--    private void logError(String msg) {
--        logError(msg, null);
--    }
+         String contextPath = webappName;
+         if (!contextPath.startsWith("/")) { //$NON-NLS-1$
+             contextPath = "/" + contextPath; //$NON-NLS-1$
+@@ -486,7 +533,6 @@
+ 
+             WebAppClassLoader webappLoader = new WebAppClassLoader(customLoader);
+             context.setLoader(embedded.createLoader(webappLoader));
 -
--    /**
--     * Create an error entry in the log
--     * 
--     * @param msg
--     *            error message
--     * @param cause
--     *            {@link Throwable} associated with this error message
--     */
--    private void logError(String msg, Throwable cause) {
--        TomcatPlugin.logError(msg, cause);
--    }
--
--    /**
--     * @see org.eclipse.help.internal.appserver.IWebappServer#start(java.lang.String,
--     *      org.eclipse.core.runtime.IPath, java.lang.ClassLoader)
--     */
--    public synchronized void start(String webappName, IPath path, ClassLoader customLoader)
--            throws CoreException {
--
--        if (!isStarted) {
--            start(port, hostAddress);
--        }
--        if (!running) {
--            throw new CoreException(new Status(IStatus.ERROR,
--                    TomcatPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(
--                            TomcatResources.TomcatAppServer_addingWebapp,
--                            webappName, path.toOSString()), null));
--        }
--
--        String contextPath = webappName;
--        if (!contextPath.startsWith("/")) { //$NON-NLS-1$
--            contextPath = "/" + contextPath; //$NON-NLS-1$
--        }
--        try {
--            Context context = embedded.createContext(contextPath, path
--                    .toOSString());
--            if (context instanceof StandardContext) {
--                ((StandardContext) context)
--                        .setWorkDir(getWorkingDirectory(webappName));
--            }
--
--            WebAppClassLoader webappLoader = new WebAppClassLoader(customLoader);
--            context.setLoader(embedded.createLoader(webappLoader));
--
--            host.addChild(context);
--            contexts.add(context);
--        } catch (Exception exc) {
--            throw new CoreException(new Status(IStatus.ERROR,
--                    TomcatPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(
--                            "TomcatAppServer.addingWebapp", webappName, path //$NON-NLS-1$
--                                    .toOSString()), exc));
--        }
--    }
--
--    /**
--     * @see org.eclipse.help.internal.appserver.IWebappServer#stop(java.lang.String)
--     */
--    public synchronized void stop(String webappName) throws CoreException {
--        if (!running) {
--            return;
--        }
--        Context context = (Context) host.findChild("/" + webappName); //$NON-NLS-1$
--        if (context != null) {
--        	contexts.remove(context);
--            embedded.removeContext(context);
--        }
--    }
--
--    /**
--     * @see org.eclipse.help.internal.appserver.IWebappServer#getHost()
--     */
--    public String getHost() {
--        if (!running) {
--            return null;
--        }
--        return hostAddress;
--    }
--
--    /**
--     * @see org.eclipse.help.internal.appserver.IWebappServer#getPort()
--     */
--    public int getPort() {
--        if (!running) {
--            return 0;
--        }
--        return port;
--    }
--
--    /**
--     * @see org.eclipse.help.internal.appserver.IWebappServer#isRunning()
--     */
--    public boolean isRunning() {
--        return running;
--    }
--
--    /**
--     * @see org.eclipse.help.internal.appserver.IWebappServer#stop()
--     */
--    public synchronized void stop() throws CoreException {
--        if (!running) {
--            return;
--        }
--        running = false;
--        // Remove all contexts
--        for(int i = 0; i< contexts.size(); i++){
--            embedded.removeContext((Context)contexts.get(i));
--           	contexts.remove(contexts.get(i));
--        }
--
--        // Remove the sslConnector, if present.
--        try {
--            if (sslConnector != null) {
--                embedded.removeConnector(this.sslConnector);
--            }
--        } catch (Exception exc) {
--            throw new CoreException(new Status(IStatus.ERROR,
--                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
--                    TomcatResources.TomcatAppServer_sslConnectorRemove, 
--                    exc));
--        }
--
--        // Remove the HTTP Connector, if present.
--        try {
--            if (httpConnector != null) {
--                embedded.removeConnector(this.httpConnector);
--            }
--        } catch (Exception exc) {
--            throw new CoreException(new Status(IStatus.ERROR,
--                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
--                    TomcatResources.TomcatAppServer_httpConnectorRemove, 
--                    exc));
--        }
--
--        // Remove the engine (which should trigger removing the connector)
--        try {
--            embedded.removeEngine(engine);
--        } catch (Exception exc) {
--            throw new CoreException(new Status(IStatus.ERROR,
--                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
--                    TomcatResources.TomcatAppServer_engineRemove, 
--                    exc));
--        }
--        // Shut down this tomcat server (should have nothing left to do)
--        try {
--            embedded.stop();
--        } catch (LifecycleException e) {
--            throw new CoreException(new Status(IStatus.ERROR,
--                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
--                    TomcatResources.TomcatAppServer_embeddedStop, 
--                    e));
--        }
--        isStarted = false;
--    }
--
--    private String getWorkingDirectory(String webApp) {
--        return TomcatPlugin.getDefault().getStateLocation().append(webApp)
--                .toOSString();
--    }
+             host.addChild(context);
+             contexts.add(context);
+         } catch (Exception exc) {
+@@ -601,4 +647,4 @@
+         return TomcatPlugin.getDefault().getStateLocation().append(webApp)
+                 .toOSString();
+     }
 -}
-+/*******************************************************************************
-+ * Copyright (c) 2000, 2006 IBM Corporation and others.
-+ * All rights reserved. This program and the accompanying materials
-+ * are made available under the terms of the Eclipse Public License v1.0
-+ * which accompanies this distribution, and is available at
-+ * http://www.eclipse.org/legal/epl-v10.html
-+ * 
-+ * Contributors:
-+ *     IBM Corporation - initial API and implementation
-+ *******************************************************************************/
-+package org.eclipse.tomcat.internal;
-+
-+import java.io.ByteArrayOutputStream;
-+import java.io.PrintStream;
-+import java.net.InetAddress;
-+import java.net.URL;
-+import java.net.UnknownHostException;
-+import java.util.ArrayList;
-+
-+import mx4j.log.FileLogger;
-+
-+import org.apache.catalina.Context;
-+import org.apache.catalina.Engine;
-+import org.apache.catalina.Host;
-+import org.apache.catalina.Lifecycle;
-+import org.apache.catalina.LifecycleEvent;
-+import org.apache.catalina.LifecycleException;
-+import org.apache.catalina.LifecycleListener;
-+import org.apache.catalina.Realm;
-+import org.apache.catalina.connector.Connector;
-+import org.apache.catalina.core.StandardContext;
-+import org.apache.catalina.core.StandardHost;
-+import org.apache.catalina.realm.MemoryRealm;
-+import org.apache.catalina.startup.Embedded;
-+import org.apache.coyote.http11.Http11Protocol;
-+import org.apache.tomcat.util.net.jsse.JSSEImplementation;
-+import org.eclipse.core.runtime.CoreException;
-+import org.eclipse.core.runtime.IConfigurationElement;
-+import org.eclipse.core.runtime.IExtension;
-+import org.eclipse.core.runtime.IExtensionPoint;
-+import org.eclipse.core.runtime.IExtensionRegistry;
-+import org.eclipse.core.runtime.IPath;
-+import org.eclipse.core.runtime.IStatus;
-+import org.eclipse.core.runtime.Platform;
-+import org.eclipse.core.runtime.Preferences;
-+import org.eclipse.core.runtime.Status;
-+import org.eclipse.help.internal.appserver.IWebappServer;
-+import org.eclipse.osgi.util.NLS;
-+import org.eclipse.tomcat.internal.extensions.IRealmFactory;
-+
-+/**
-+ * Single engine, single host, single connector Tomcat Application Server.
-+ */
-+public class TomcatAppServer implements IWebappServer {
-+    /**
-+     * Specify this reserved value for the SSL port # to indicate that SSL
-+     * should not be used
-+     */
-+    public final static int SSL_DISABLED = -1;
-+    
-+    private final static String NULL = null;
-+
-+    private String hostAddress;
-+
-+    private int port;
-+
-+    private int sslPort = SSL_DISABLED;
-+
-+    // false until an attempt to start Tomcat
-+    private boolean isStarted = false;
-+
-+    // true after started without problems
-+    private boolean running = false;
-+
-+    private Embedded embedded = null;
-+
-+    private Engine engine = null;
-+
-+    private Host host = null;
-+
-+    private Connector httpConnector = null;
-+    private boolean hasConnection = false; 
-+    private Connector sslConnector = null;
-+    private boolean hasSSLConnection = false;
-+    // Con
-+    private ArrayList contexts = new ArrayList();
-+
-+    /**
-+     * Constructs this class, but does not instantiates or start Tomcat classes
-+     * until webapp are added.
-+     */
-+    public TomcatAppServer() {
-+    }
-+
-+    /**
-+     * @see org.eclipse.help.internal.appserver.IWebappServer#start(int,
-+     *      java.lang.String)
-+     */
-+    public synchronized void start(int port, String hostAddress) throws CoreException {
-+        // if null passed for hostAddress, use local host
-+        if (hostAddress == null) {
-+            this.hostAddress = "127.0.0.1"; //$NON-NLS-1$
-+        } else {
-+        	this.hostAddress = hostAddress;
-+        }
-+        InetAddress iAddress = null;
-+        
-+        //Defaults to LOCALHOST
-+        try{
-+              iAddress = InetAddress.getByName(this.hostAddress);
-+        } catch (UnknownHostException uhe) {
-+                // will default to all interfaces
-+         }
-+        
-+        String hostname = iAddress.getHostName();
-+        
-+        this.port = port;
-+        if (isStarted) {
-+            return;
-+        }
-+        isStarted = true;
-+        try {
-+            embedded = new Embedded(new MemoryRealm());
-+            URL installURL = TomcatPlugin.getDefault().getBundle()
-+                    .getEntry("/"); //$NON-NLS-1$
-+            URL resolvedURL = Platform.resolve(installURL);
-+            String home = Platform.asLocalURL(resolvedURL).getFile();
-+            System.setProperty("catalina.home", home); //$NON-NLS-1$
-+            String base = home;
-+            System.setProperty("catalina.base", base); //$NON-NLS-1$
-+
-+            // Set up realm if one found
-+            if (TomcatPlugin.getDefault().getPluginPreferences().getInt(
-+                    TomcatPlugin.PREF_SSL_PORT) >= 0) {
-+                Realm realm = getRealm();
-+                embedded.setRealm(realm);
-+            }
-+            //the embedded application is now started by using embedded.start()
-+            embedded.addLifecycleListener(new LifecycleListener(){
-+	                public void lifecycleEvent(LifecycleEvent event) {
-+	                    if (Lifecycle.START_EVENT.equals(event.getType())) 
-+	                        running = true;
-+	                }
-+    	
-+            });
-+            // start now, and then add all the contexts..
-+            embedded.start();
-+
-+            // Create a very basic container hierarchy
-+            engine = embedded.createEngine();
-+
-+            host = embedded.createHost(hostname, home + "webapps"); //$NON-NLS-1$
-+
-+            // all request go to our only host
-+            engine.setDefaultHost(host.getName());
-+
-+            if (host instanceof StandardHost) {
-+                ((StandardHost) host)
-+                        .setErrorReportValveClass("org.eclipse.tomcat.internal.EclipseErrorReportValve"); //$NON-NLS-1$
-+            }
-+            
-+            engine.addChild(host);
-+            
-+            // Install the assembled container hierarchy
-+            PrintStream sysOut = System.out;
-+            // reassign standard output to prevent Tomcat from writing
-+            // its version message there.
-+            System.setOut(new PrintStream(new ByteArrayOutputStream()));
-+            try {
-+                embedded.addEngine(engine);
-+            } finally {
-+                System.setOut(sysOut);
-+            }
-+
-+            // Root context
-+            Context root = embedded.createContext("", home + "webapps/ROOT"); //$NON-NLS-1$ //$NON-NLS-2$
-+            // this line should be replaced once tomcat provides support
-+            // for setting the working directory
-+            if (root instanceof StandardContext) {
-+                ((StandardContext) root)
-+                        .setWorkDir(getWorkingDirectory("ROOT")); //$NON-NLS-1$
-+            }
-+            root.setLoader(embedded.createLoader(this.getClass()
-+                    .getClassLoader()));
-+            
-+            host.addChild(root);
-+            contexts.add(root);
-+ 
-+            updateSslPort(iAddress);
-+            if (this.port == 0) {
-+                this.port = SocketUtil.findUnusedLocalPort(iAddress);
-+                if (this.port == -1) {
-+                    throw new CoreException(
-+                            new Status(
-+                                    IStatus.ERROR,
-+                                    TomcatPlugin.PLUGIN_ID,
-+                                    IStatus.OK,
-+                                    TomcatResources.TomcatAppServer_start_CannotObtainPort, 
-+                                    null));
-+                }
-+            }
-+
-+             // Create Connector
-+            Connector connector = embedded.createConnector(iAddress.getHostAddress(), this.port,false);;
-+
-+            Preferences pref = TomcatPlugin.getDefault()
-+                    .getPluginPreferences();
-+            /**
-+             * To extend additional properties, make use of org.apache.tomcat.util.IntrospectionUtils
-+             * A Connector will initialize a protocolhandler defaults to org.apache.coyote.http11.Http11Protocol
-+             * format : connector.setProperty("STRING_PROP_NAME","STRING_PROP_VALUE");
-+             *  
-+             */
-+
-+            int acceptCount = pref.getInt(TomcatPlugin.PREF_ACCEPT_COUNT);
-+            if (acceptCount > 0) {
-+                connector.setProperty("backlog",""+acceptCount); //$NON-NLS-1$ //$NON-NLS-2$
-+            }
-+
-+            int maxProcessors = pref
-+                    .getInt(TomcatPlugin.PREF_MAX_PROCESSORS);
-+            if (maxProcessors > 0) {
-+            	connector.setProperty("maxThreads",""+maxProcessors); //$NON-NLS-1$ //$NON-NLS-2$
-+            }
-+            
-+            int minProcessors = pref
-+                    .getInt(TomcatPlugin.PREF_MIN_PROCESSORS);
-+            if (minProcessors > 0) {
-+            	connector.setProperty("minSpareThreads",""+minProcessors); //$NON-NLS-1$ //$NON-NLS-2$
-+            }
-+            
-+            if (this.sslPort > 0) {
-+                connector.setRedirectPort(this.sslPort);
-+                connector.setEnableLookups(true);
-+                connector.setProperty("soTimeout",""+20000); //$NON-NLS-1$ //$NON-NLS-2$
-+                //connector.setUseURIValidationHack(false); no longer available
-+                connector.setUseBodyEncodingForURI(false);
-+                String disableUploadTimeout = pref.getString(TomcatPlugin.DISABLE_UPLOAD_TIMEOUT);
-+                if ((disableUploadTimeout != null) && (!("".equals(disableUploadTimeout.trim())))) { //$NON-NLS-1$
-+                    connector.setProperty("disableUploadTimeout", disableUploadTimeout); //$NON-NLS-1$
-+                }
-+            }
-+            // connectorImpl.setDebug(0);
-+            // If there is problem in embedded.addConnector()
-+            // there is no exception, so add a listener
-+            connector.addLifecycleListener(new LifecycleListener() {
-+                public void lifecycleEvent(LifecycleEvent event) {
-+                    if (Lifecycle.START_EVENT.equals(event.getType())) 
-+                        hasConnection = true;
-+                }
-+            });
-+
-+            // add Connector to Tomcat
-+            PrintStream sysErr = System.err;
-+            // reassign standard error to prevent Coyote from writing
-+            // its version message there.
-+            System.setErr(new PrintStream(new ByteArrayOutputStream()));
-+            try {
-+            	this.httpConnector = connector;
-+                embedded.addConnector(this.httpConnector);
-+                httpConnector.start();
-+            } finally {
-+                System.setErr(sysErr);
-+            }
-+            if (this.sslPort > 0) {
-+                createSSLConnector(iAddress, this.sslPort);
-+            }
-+
-+            // running = true;
-+            TomcatPlugin.getDefault().setAppserver(this);
-+
-+        } catch (Exception exc) {
-+            TomcatPlugin
-+                    .logError(
-+                            "Exception occurred starting the embedded application server.", //$NON-NLS-1$
-+                            exc);
-+            if (exc instanceof CoreException) {
-+                throw (CoreException) exc;
-+            }
-+            throw new CoreException(new Status(IStatus.ERROR,
-+            		TomcatPlugin.PLUGIN_ID, IStatus.OK,
-+            		TomcatResources.TomcatAppServer_start, 
-+            		exc));
-+        }
-+        if (!running) {
-+            throw new CoreException(new Status(IStatus.ERROR,
-+                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
-+                    TomcatResources.TomcatAppServer_start, null)); 
-+        }
-+    }
-+
-+    /**
-+     * Update {@link sslPort} to refer an appropriate port. If the user set
-+     * sslPort to 0, an arbitrary free port will be used.
-+     * 
-+     * @param iAddress
-+     *            {@link InetAddress} object representing the machine hosting
-+     *            the help system
-+     * @return port number of use for the SSL connection
-+     * @throws CoreException
-+     */
-+    private int updateSslPort(InetAddress iAddress) throws CoreException {
-+        this.sslPort = TomcatPlugin.getDefault().getPluginPreferences().getInt(
-+                TomcatPlugin.PREF_SSL_PORT);
-+        if (this.sslPort == 0) {
-+            this.sslPort = SocketUtil.findUnusedLocalPort(iAddress); 
-+            if (this.sslPort == -1) {
-+                throw new CoreException(new Status(IStatus.ERROR,
-+                        TomcatPlugin.PLUGIN_ID, IStatus.OK,
-+                        TomcatResources.TomcatAppServer_start_CannotObtainPort, 
-+                        null));
-+            }
-+        }
-+        return this.sslPort;
-+    }
-+
-+    /**
-+     * @param iAddress
-+     *            InetAddress representing the machine hosting the help system.
-+     * @param sslport
-+     *            port # to use for the SSL connection
-+     * @throws CoreException
-+     */
-+    private void createSSLConnector(InetAddress iAddress, int sslport)
-+            throws CoreException {  	
-+       
-+        // Create Connector
-+    	//Defaults to local if IAddress is null
-+        Connector connector = embedded.createConnector(iAddress.getHostAddress(), this.port,false);
-+
-+        //--------------------create the Protocol-----------------------//
-+        Preferences pref = TomcatPlugin.getDefault().getPluginPreferences();
-+        /**
-+         * To extend additional properties, make use of org.apache.tomcat.util.IntrospectionUtils
-+         * A Connector will initialize a protocolhandler which initialize a SSLImplementation which initialize
-+         * a ServerSocketFactory
-+         * format : connector.setProperty("STRING_PROP_NAME","STRING_PROP_VALUE");
-+         *  
-+         */
-+        //----------------configure connector -------------------------------//
-+        // by looking at the code, it seems like the protocol go in first
-+	   	String protocol = pref.getString(TomcatPlugin.PREF_SSL_PROTOCOL);
-+	    if ((protocol != null) && (!("".equals(protocol.trim())))) { //$NON-NLS-1$
-+	        connector.setProperty("protocol",protocol); //$NON-NLS-1$
-+	    }
-+	   	String protocols = pref.getString(TomcatPlugin.PREF_SSL_PROTOCOLS);
-+	    if ((protocols != null) && (!("".equals(protocols.trim())))) { //$NON-NLS-1$
-+	        connector.setProperty("protocols",protocols); //$NON-NLS-1$
-+	    }
-+        String protocolClassName = Http11Protocol.class.getName(); 
-+        connector.setProtocol(protocolClassName);
-+        
-+        String JSSEImplementationName = JSSEImplementation.class.getName();
-+        connector.setProperty("sslImplementation",JSSEImplementationName); //$NON-NLS-1$
-+        
-+        String disableUploadTimeout = pref.getString(TomcatPlugin.DISABLE_UPLOAD_TIMEOUT);
-+        if ((disableUploadTimeout != null) && (!("".equals(disableUploadTimeout.trim())))) { //$NON-NLS-1$
-+            connector.setProperty("disableUploadTimeout", disableUploadTimeout); //$NON-NLS-1$
-+        }
-+        
-+        String algorithm = pref.getString(TomcatPlugin.PREF_SSL_ALGORITHM);
-+        if ((algorithm != null) && (!("".equals(algorithm.trim())))) { //$NON-NLS-1$
-+            connector.setProperty("algorithm", algorithm); //$NON-NLS-1$
-+        }
-+        int maxProcessors = pref.getInt(TomcatPlugin.PREF_MAX_PROCESSORS);
-+        if (maxProcessors > 0) {
-+            //connector.setMaxProcessors(maxProcessors);
-+        	connector.setProperty("maxThreads",""+maxProcessors); //$NON-NLS-1$ //$NON-NLS-2$
-+        }
-+        int minProcessors = pref.getInt(TomcatPlugin.PREF_MIN_PROCESSORS);
-+        if (minProcessors > 0) {
-+            //connector.setMinProcessors(minProcessors);
-+        	connector.setProperty("minSpareThreads",""+minProcessors); //$NON-NLS-1$ //$NON-NLS-2$
-+        }
-+        //this is making use of org.apache.tomcat.util.IntrospectionUtils 
-+        connector.setProperty("disableUploadTimeout",""+true);  //$NON-NLS-1$ //$NON-NLS-2$
-+	   	String clientauth = pref.getString(TomcatPlugin.PREF_CLIENT_AUTHENTICATION);
-+	    if ((clientauth != null) && (!("".equals(clientauth.trim())))) { //$NON-NLS-1$
-+	        connector.setProperty("clientauth",clientauth); //$NON-NLS-1$
-+	    }
-+    
-+        int acceptCount = pref.getInt(TomcatPlugin.PREF_ACCEPT_COUNT);
-+        if (acceptCount > 0) {
-+            connector.setProperty("backlog",""+acceptCount); //$NON-NLS-1$ //$NON-NLS-2$
-+        }
-+        
-+        String keyStoreFile = pref
-+        .getString(TomcatPlugin.PREF_KEY_STORE_FILE);
-+		if ((keyStoreFile != null) && (!("".equals(keyStoreFile.trim())))) { //$NON-NLS-1$
-+			connector.setProperty("keystore", keyStoreFile); //$NON-NLS-1$
-+		}
-+        String keyStorePassword = pref
-+        .getString(TomcatPlugin.PREF_KEY_STORE_PASSWORD);
-+		if ((keyStorePassword != null)
-+		        && (!("".equals(keyStorePassword.trim())))) { //$NON-NLS-1$
-+			connector.setProperty("keypass", keyStorePassword); //$NON-NLS-1$
-+		}
-+        //connector.setUseURIValidationHack(false);  --no longer avaliable, hope they fixed the bug
-+        connector.setUseBodyEncodingForURI(false);
-+        // connector.setSecure(true); ---setting ssLImplementation set secure to true
-+        String scheme = pref.getString(TomcatPlugin.PREF_SSL_SCHEME);
-+        if ((scheme != null) && (!("".equals(scheme.trim())))) { //$NON-NLS-1$
-+            connector.setScheme(scheme);
-+        }
-+        connector.setEnableLookups(true);
-+        
-+        //connector.setFactory(factory);  --no longer needed, now handled by SSLImplemenatation
-+        // If there is problem in embedded.addConnector()
-+        // there is no exception, so add a listener
-+        connector.addLifecycleListener(new LifecycleListener() {
-+            public void lifecycleEvent(LifecycleEvent event) {
-+                if (Lifecycle.START_EVENT.equals(event.getType())||Lifecycle.PERIODIC_EVENT.equals(event.getType()))
-+                    hasSSLConnection = true;
-+            }
-+        });
-+	    // add Connector to Tomcat
-+	    PrintStream sysErr = (PrintStream) System.err;
-+	    // reassign standard error to prevent Coyote from writing
-+	    // its version message there.
-+	    System.setErr(new PrintStream(new ByteArrayOutputStream()));
-+	    try{
-+		    sslConnector = connector;
-+		    embedded.addConnector(this.sslConnector);
-+		    sslConnector.start();
-+        } catch(LifecycleException e){
-+            TomcatPlugin
-+            .logError(
-+                    "Exception occurred while establishing secure connection.", //$NON-NLS-1$
-+                    e);
-+        }
-+	    finally {
-+                System.setErr(sysErr);
-+         }
-+    }
-+
-+    /**
-+     * Creates a {@link Realm}object using the information contained in
-+     * extensions of the type org.eclipse.tomcat.realmfactory in the plugin
-+     * registry.
-+     * 
-+     * @return the {@link Realm}object created
-+     */
-+    private Realm getRealm() {
-+        IExtensionRegistry registry = Platform.getExtensionRegistry();
-+        IExtensionPoint extensionPoint = registry.getExtensionPoint(
-+                TomcatPlugin.PLUGIN_ID, "realmfactory"); //$NON-NLS-1$
-+        Realm realm = null;
-+        if (extensionPoint != null) {
-+            IExtension[] extensions = extensionPoint.getExtensions();
-+            if ((extensions != null) && (extensions.length == 1)) {
-+                IConfigurationElement[] factoryElements = extensions[0]
-+                        .getConfigurationElements();
-+                if ((factoryElements != null) && (factoryElements.length == 1)) {
-+                    try {
-+                        IRealmFactory realmFactory = (IRealmFactory) factoryElements[0]
-+                                .createExecutableExtension("class"); //$NON-NLS-1$
-+                        realm = realmFactory.createRealm();
-+                    } catch (CoreException e) {
-+                        logError(
-+                                TomcatResources.TomcatAppServer_getRealmFactoryFailed,
-+                                e);
-+                    }
-+                } else {
-+                    if ((factoryElements == null)
-+                            || (factoryElements.length == 0)) {
-+                        logError(TomcatResources.TomcatAppServer_missingFactoryElement);
-+                    } else {
-+                        logError(TomcatResources.TomcatAppServer_multipleFactoryElements);
-+                    }
-+                }
-+            } else {
-+                if ((extensions == null) || (extensions.length == 0)) {
-+                    logError(TomcatResources.TomcatAppServer_missingRealmExtension);
-+                } else {
-+                    logError(TomcatResources.TomcatAppServer_multipleRealmExtensions);
-+                }
-+            }
-+        } else {
-+            logError(TomcatResources.TomcatAppServer_missingRealmExtensionPoint);
-+        }
-+        return realm;
-+    }
-+
-+    /**
-+     * Create an error entry in the log
-+     * 
-+     * @param msg
-+     *            error message
-+     */
-+    private void logError(String msg) {
-+        logError(msg, null);
-+    }
-+
-+    /**
-+     * Create an error entry in the log
-+     * 
-+     * @param msg
-+     *            error message
-+     * @param cause
-+     *            {@link Throwable} associated with this error message
-+     */
-+    private void logError(String msg, Throwable cause) {
-+        TomcatPlugin.logError(msg, cause);
-+    }
-+
-+    /**
-+     * @see org.eclipse.help.internal.appserver.IWebappServer#start(java.lang.String,
-+     *      org.eclipse.core.runtime.IPath, java.lang.ClassLoader)
-+     */
-+    public synchronized void start(String webappName, IPath path, ClassLoader customLoader)
-+            throws CoreException {
-+    	
-+        if (!isStarted) {
-+            start(port, hostAddress);
-+         }
-+        if (!running) {
-+            throw new CoreException(new Status(IStatus.ERROR,
-+                    TomcatPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(
-+                            TomcatResources.TomcatAppServer_addingWebapp,
-+                            webappName, path.toOSString()), null));
-+        }
-+        String contextPath = webappName;
-+        if (!contextPath.startsWith("/")) { //$NON-NLS-1$
-+            contextPath = "/" + contextPath; //$NON-NLS-1$
-+        }
-+        try {
-+            Context context = embedded.createContext(contextPath, path
-+                    .toOSString());
-+            if (context instanceof StandardContext) {
-+                ((StandardContext) context)
-+                        .setWorkDir(getWorkingDirectory(webappName));
-+            }
-+
-+            WebAppClassLoader webappLoader = new WebAppClassLoader(customLoader);
-+            context.setLoader(embedded.createLoader(webappLoader));
-+            host.addChild(context);
-+            contexts.add(context);
-+        } catch (Exception exc) {
-+            throw new CoreException(new Status(IStatus.ERROR,
-+                    TomcatPlugin.PLUGIN_ID, IStatus.OK, NLS.bind(
-+                            "TomcatAppServer.addingWebapp", webappName, path //$NON-NLS-1$
-+                                    .toOSString()), exc));
-+        }
-+    }
-+
-+    /**
-+     * @see org.eclipse.help.internal.appserver.IWebappServer#stop(java.lang.String)
-+     */
-+    public synchronized void stop(String webappName) throws CoreException {
-+        if (!running) {
-+            return;
-+        }
-+        Context context = (Context) host.findChild("/" + webappName); //$NON-NLS-1$
-+        if (context != null) {
-+        	contexts.remove(context);
-+            embedded.removeContext(context);
-+        }
-+    }
-+
-+    /**
-+     * @see org.eclipse.help.internal.appserver.IWebappServer#getHost()
-+     */
-+    public String getHost() {
-+        if (!running) {
-+            return null;
-+        }
-+        return hostAddress;
-+    }
-+
-+    /**
-+     * @see org.eclipse.help.internal.appserver.IWebappServer#getPort()
-+     */
-+    public int getPort() {
-+        if (!running) {
-+            return 0;
-+        }
-+        return port;
-+    }
-+
-+    /**
-+     * @see org.eclipse.help.internal.appserver.IWebappServer#isRunning()
-+     */
-+    public boolean isRunning() {
-+        return running;
-+    }
-+
-+    /**
-+     * @see org.eclipse.help.internal.appserver.IWebappServer#stop()
-+     */
-+    public synchronized void stop() throws CoreException {
-+        if (!running) {
-+            return;
-+        }
-+        running = false;
-+        // Remove all contexts
-+        for(int i = 0; i< contexts.size(); i++){
-+            embedded.removeContext((Context)contexts.get(i));
-+           	contexts.remove(contexts.get(i));
-+        }
-+
-+        // Remove the sslConnector, if present.
-+        try {
-+            if (sslConnector != null) {
-+                embedded.removeConnector(this.sslConnector);
-+            }
-+        } catch (Exception exc) {
-+            throw new CoreException(new Status(IStatus.ERROR,
-+                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
-+                    TomcatResources.TomcatAppServer_sslConnectorRemove, 
-+                    exc));
-+        }
-+
-+        // Remove the HTTP Connector, if present.
-+        try {
-+            if (httpConnector != null) {
-+                embedded.removeConnector(this.httpConnector);
-+            }
-+        } catch (Exception exc) {
-+            throw new CoreException(new Status(IStatus.ERROR,
-+                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
-+                    TomcatResources.TomcatAppServer_httpConnectorRemove, 
-+                    exc));
-+        }
-+
-+        // Remove the engine (which should trigger removing the connector)
-+        try {
-+            embedded.removeEngine(engine);
-+        } catch (Exception exc) {
-+            throw new CoreException(new Status(IStatus.ERROR,
-+                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
-+                    TomcatResources.TomcatAppServer_engineRemove, 
-+                    exc));
-+        }
-+        // Shut down this tomcat server (should have nothing left to do)
-+        try {
-+            embedded.stop();
-+        } catch (LifecycleException e) {
-+            throw new CoreException(new Status(IStatus.ERROR,
-+                    TomcatPlugin.PLUGIN_ID, IStatus.OK,
-+                    TomcatResources.TomcatAppServer_embeddedStop, 
-+                    e));
-+        }
-+        isStarted = false;
-+    }
-+
-+    private String getWorkingDirectory(String webApp) {
-+        return TomcatPlugin.getDefault().getStateLocation().append(webApp)
-+                .toOSString();
-+    }
 +}
-\ No newline at end of file
-Index: source-tree/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java
-===================================================================
-RCS file: /cvsroot/eclipse/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java,v
-retrieving revision 1.9
-diff -u -r1.9 EclipseErrorReportValve.java
---- source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java	23 Feb 2006 22:51:14 -0000	1.9
-+++ source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/EclipseErrorReportValve.java	4 Jul 2006 18:42:41 -0000
-@@ -69,15 +69,27 @@
- package org.eclipse.tomcat.internal;
+\ Kein Zeilenumbruch am Dateiende.
+diff -r -u source-tree.orig/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatPlugin.java source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatPlugin.java
+--- source-tree.orig/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatPlugin.java	2006-12-16 09:53:31.000000000 +0100
++++ source-tree/plugins/org.eclipse.tomcat/src/org/eclipse/tomcat/internal/TomcatPlugin.java	2006-12-16 10:04:09.000000000 +0100
+@@ -24,13 +24,16 @@
+ 	public final static String PREF_ACCEPT_COUNT = "acceptCount"; //$NON-NLS-1$
+ 	public final static String PREF_MAX_PROCESSORS = "maxProcessors"; //$NON-NLS-1$
+ 	public final static String PREF_MIN_PROCESSORS = "minProcessors"; //$NON-NLS-1$
++	public final static String DISABLE_UPLOAD_TIMEOUT = "disableUploadTimeout"; //$NON-NLS-1$
  
- 
--import java.io.*;
--import java.util.*;
--
--import javax.servlet.*;
--import javax.servlet.http.*;
--
--import org.apache.catalina.*;
--import org.apache.catalina.util.*;
--import org.apache.catalina.valves.*;
-+import java.io.IOException;
-+import java.io.PrintWriter;
-+import java.io.StringWriter;
-+import java.io.Writer;
-+import java.util.Locale;
-+
-+import javax.servlet.ServletException;
-+import javax.servlet.ServletRequest;
-+import javax.servlet.ServletResponse;
-+import javax.servlet.http.HttpServletResponse;
-+
-+import mx4j.log.Logger;
-+
-+import org.apache.catalina.Globals;
-+import org.apache.catalina.Valve;
-+import org.apache.catalina.connector.Request;
-+import org.apache.catalina.connector.Response;
-+import org.apache.catalina.util.RequestUtil;
-+import org.apache.catalina.util.StringManager;
-+import org.apache.catalina.valves.Constants;
-+import org.apache.catalina.valves.ValveBase;
- import org.eclipse.core.runtime.Platform;
- 
- 
-@@ -145,12 +157,12 @@
-      * @exception IOException if an input/output error occurs
-      * @exception ServletException if a servlet error occurs
-      */
--    public void invoke(Request request, Response response,
--                       ValveContext context)
-+    public void invoke(Request request, Response response)
-         throws IOException, ServletException {
- 
-         // Perform the request
--        context.invokeNext(request, response);
-+        Valve nextValve = getNext();
-+        nextValve.invoke(request, response);
- 
-         ServletRequest sreq = (ServletRequest) request;
-         Throwable throwable = 
-@@ -220,14 +232,11 @@
-         throws IOException {
- 
-         // Do nothing on non-HTTP responses
--        if (!(response instanceof HttpResponse))
--            return;
--        HttpResponse hresponse = (HttpResponse) response;
-         if (!(response instanceof HttpServletResponse))
-             return;
-         HttpServletResponse hres = (HttpServletResponse) response;
--        int statusCode = hresponse.getStatus();
--        String message = RequestUtil.filter(hresponse.getMessage());
-+        int statusCode = response.getStatus();
-+        String message = RequestUtil.filter(response.getMessage());
-         if (message == null)
-             message = ""; //$NON-NLS-1$
- 
-@@ -373,9 +382,9 @@
-      */
-     protected void log(String message) {
- 
--        Logger logger = container.getLogger();
-+        Logger logger = (Logger) container.getLogger();
-         if (logger != null)
--            logger.log(this.toString() + ": " + message); //$NON-NLS-1$
-+            logger.info(this.toString() + ": " + message); //$NON-NLS-1$
-         else
-             System.out.println(this.toString() + ": " + message); //$NON-NLS-1$
- 
-@@ -390,9 +399,9 @@
-      */
-     protected void log(String message, Throwable throwable) {
- 
--        Logger logger = container.getLogger();
-+        Logger logger = (Logger) container.getLogger();
-         if (logger != null)
--            logger.log(this.toString() + ": " + message, throwable); //$NON-NLS-1$
-+            logger.info(this.toString() + ": " + message, throwable); //$NON-NLS-1$
-         else {
-             System.out.println(this.toString() + ": " + message); //$NON-NLS-1$
-             throwable.printStackTrace(System.out);
-Index: source-tree/META-INF/MANIFEST.MF
-===================================================================
-RCS file: /cvsroot/eclipse/org.eclipse.tomcat/META-INF/MANIFEST.MF,v
-retrieving revision 1.21
-diff -u -r1.21 MANIFEST.MF
---- source-tree/plugins/org.eclipse.tomcat/META-INF/MANIFEST.MF	9 May 2006 20:26:52 -0000	1.21
-+++ source-tree/plugins/org.eclipse.tomcat/META-INF/MANIFEST.MF	4 Jul 2006 18:42:40 -0000
-@@ -2,30 +2,30 @@
- Bundle-ManifestVersion: 2
- Bundle-Name: %pluginName
- Bundle-SymbolicName: org.eclipse.tomcat; singleton:=true
--Bundle-Version: 4.1.130.qualifier
-+Bundle-Version: 5.5.17.qualifier
- Bundle-ClassPath: tomcatwrapper.jar,
-- catalina.jar,
-- bootstrap.jar,
-- commons-beanutils.jar,
-- commons-collections.jar,
-- commons-digester.jar,
-- commons-logging-api.jar,
-- commons-modeler.jar,
-- jakarta-regexp-1.3.jar,
-- jasper-compiler.jar,
-- jasper-runtime.jar,
-- mx4j-jmx.jar,
-- naming-common.jar,
-- naming-factory.jar,
-- naming-resources.jar,
-- servlet.jar,
-- servlets-common.jar,
-- servlets-default.jar,
-- servlets-invoker.jar,
-- servlets-manager.jar,
-- tomcat-coyote.jar,
-- tomcat-http11.jar,
-- tomcat-util.jar
-+ lib/catalina.jar,
-+ lib/catalina-optional.jar,
-+ lib/commons-beanutils.jar,
-+ lib/commons-collections.jar,
-+ lib/commons-digester.jar,
-+ lib/commons-digester-rss.jar,
-+ lib/commons-el.jar,
-+ lib/commons-logging-api.jar,
-+ lib/commons-modeler.jar,
-+ lib/jasper-compiler.jar,
-+ lib/jasper-runtime.jar,
-+ lib/jmx.jar,
-+ lib/jsp-api.jar,
-+ lib/naming-factory.jar,
-+ lib/naming-resources.jar,
-+ lib/regexp.jar,
-+ lib/servlet-api.jar,
-+ lib/servlets-default.jar,
-+ lib/tomcat-coyote.jar,
-+ lib/tomcat-http.jar,
-+ lib/tomcat-util.jar,
-+ lib/servlets-invoker.jar
- Bundle-Activator: org.eclipse.tomcat.internal.TomcatPlugin
- Bundle-Vendor: %providerName
- Bundle-Localization: plugin
-@@ -33,6 +33,74 @@
-  org.apache.ant;bundle-version="[1.6.5,1.7.0)";resolution:=optional,
-  org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)"
- Eclipse-LazyStart: true
--Export-Package: org.eclipse.tomcat.internal;x-internal:=true,
-+Eclipse-BuddyPolicy: global
-+Export-Package: javax.management;x-internal:=true,
-+ javax.management.loading;x-internal:=true,
-+ javax.management.modelmbean;x-internal:=true,
-+ javax.management.monitor;x-internal:=true,
-+ javax.management.openmbean;x-internal:=true,
-+ javax.management.relation;x-internal:=true,
-+ javax.management.timer;x-internal:=true,
-+ javax.servlet;x-internal:=true,
-+ javax.servlet.http;x-internal:=true,
-+ javax.servlet.jsp;x-internal:=true,
-+ javax.servlet.jsp.tagext;x-internal:=true,
-+ mx4j;x-internal:=true,
-+ mx4j.loading;x-internal:=true,
-+ mx4j.log;x-internal:=true,
-+ mx4j.persist;x-internal:=true,
-+ mx4j.server;x-internal:=true,
-+ mx4j.server.interceptor;x-internal:=true,
-+ mx4j.timer;x-internal:=true,
-+ mx4j.util;x-internal:=true,
-+ org.apache.catalina;x-internal:=true,
-+ org.apache.catalina.connector;x-internal:=true,
-+ org.apache.catalina.core;x-internal:=true,
-+ org.apache.catalina.realm;x-internal:=true,
-+ org.apache.catalina.servlets;x-internal:=true,
-+ org.apache.commons.beanutils;x-internal:=true,
-+ org.apache.commons.beanutils.converters;x-internal:=true,
-+ org.apache.commons.beanutils.locale;x-internal:=true,
-+ org.apache.commons.beanutils.locale.converters;x-internal:=true,
-+ org.apache.commons.collections;x-internal:=true,
-+ org.apache.commons.collections.comparators;x-internal:=true,
-+ org.apache.commons.collections.iterators;x-internal:=true,
-+ org.apache.commons.digester;x-internal:=true,
-+ org.apache.commons.digester.rss;x-internal:=true,
-+ org.apache.commons.digester.xmlrules;x-internal:=true,
-+ org.apache.commons.logging;x-internal:=true,
-+ org.apache.commons.logging.impl;x-internal:=true,
-+ org.apache.commons.modeler;x-internal:=true,
-+ org.apache.commons.modeler.ant;x-internal:=true,
-+ org.apache.commons.modeler.mbeans;x-internal:=true,
-+ org.apache.commons.modeler.modules;x-internal:=true,
-+ org.apache.commons.modeler.util;x-internal:=true,
-+ org.apache.coyote;x-internal:=true,
-+ org.apache.coyote.http11;x-internal:=true,
-+ org.apache.coyote.http11.filters;x-internal:=true,
-+ org.apache.coyote.memory;x-internal:=true,
-+ org.apache.jasper;x-internal:=true,
-+ org.apache.jasper.compiler;x-internal:=true,
-+ org.apache.jasper.runtime;x-internal:=true,
-+ org.apache.jasper.servlet;x-internal:=true,
-+ org.apache.jasper.util;x-internal:=true,
-+ org.apache.jasper.xmlparser;x-internal:=true,
-+ org.apache.naming;x-internal:=true,
-+ org.apache.naming.factory;x-internal:=true,
-+ org.apache.naming.java;x-internal:=true,
-+ org.apache.naming.resources;x-internal:=true,
-+ org.apache.regexp;x-internal:=true,
-+ org.apache.tomcat.util;x-internal:=true,
-+ org.apache.tomcat.util.buf;x-internal:=true,
-+ org.apache.tomcat.util.collections;x-internal:=true,
-+ org.apache.tomcat.util.http;x-internal:=true,
-+ org.apache.tomcat.util.http.mapper;x-internal:=true,
-+ org.apache.tomcat.util.log;x-internal:=true,
-+ org.apache.tomcat.util.net;x-internal:=true,
-+ org.apache.tomcat.util.net.jsse;x-internal:=true,
-+ org.apache.tomcat.util.res;x-internal:=true,
-+ org.apache.tomcat.util.threads;x-internal:=true,
-+ org.eclipse.tomcat.internal;x-internal:=true,
-+ org.eclipse.tomcat.internal;x-internal:=true,
-  org.eclipse.tomcat.internal.extensions;x-internal:=true
- Bundle-RequiredExecutionEnvironment: J2SE-1.4
+ 	public final static String PREF_SSL_PORT = "sslPort"; //$NON-NLS-1$
+ 	public final static String PREF_SSL_PROTOCOL = "sslProtocol"; //$NON-NLS-1$
++	public final static String PREF_SSL_PROTOCOLS = "sslProtocols"; //$NON-NLS-1$
+ 	public final static String PREF_SSL_SCHEME = "sslScheme"; //$NON-NLS-1$
+ 	public final static String PREF_SSL_ALGORITHM = "sslAlgorithm"; //$NON-NLS-1$
+ 	public final static String PREF_KEY_STORE_FILE = "keyStoreFile"; //$NON-NLS-1$
+ 	public final static String PREF_KEY_STORE_PASSWORD = "keyStorePassword"; //$NON-NLS-1$
++	public final static String PREF_CLIENT_AUTHENTICATION = "clientauth"; //$NON-NLS-1$
+ 	
+ 	private static TomcatPlugin plugin;
+ //	private static BundleContext bundleContext;




More information about the pkg-java-commits mailing list