You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2008/12/02 18:40:24 UTC
svn commit: r722538 - in /geronimo/server/trunk/plugins/jetty: ./
geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/
geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/
geronimo-jetty6/src/main/java/org/apache/geron...
Author: dwoods
Date: Tue Dec 2 09:40:24 2008
New Revision: 722538
URL: http://svn.apache.org/viewvc?rev=722538&view=rev
Log:
GERONIMO-4437 Upgrade to Jetty 6.1.14
Modified:
geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java
geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java
geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java
geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java
geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java
geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java
geronimo/server/trunk/plugins/jetty/pom.xml
Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java?rev=722538&r1=722537&r2=722538&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java Tue Dec 2 09:40:24 2008
@@ -25,6 +25,7 @@
import org.apache.geronimo.clustering.ClusteredInvocation;
import org.apache.geronimo.clustering.ClusteredInvocationException;
import org.apache.geronimo.jetty6.AbstractPreHandler;
+import org.mortbay.component.LifeCycle;
import org.mortbay.jetty.HttpException;
/**
@@ -49,6 +50,12 @@
}
}
+ public void addLifeCycleListener(LifeCycle.Listener listener) {
+ }
+
+ public void removeLifeCycleListener(LifeCycle.Listener listener) {
+ }
+
protected abstract ClusteredInvocation newClusteredInvocation(String target,
HttpServletRequest request, HttpServletResponse response, int dispatch);
Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java?rev=722538&r1=722537&r2=722538&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java Tue Dec 2 09:40:24 2008
@@ -24,6 +24,7 @@
import org.apache.geronimo.jetty6.AbstractPreHandler;
import org.apache.geronimo.jetty6.PreHandler;
+import org.mortbay.component.LifeCycle;
import org.mortbay.jetty.servlet.SessionHandler;
/**
@@ -65,6 +66,12 @@
throws IOException, ServletException {
doHandle(target, request, response, dispatch);
}
+
+ public void addLifeCycleListener(LifeCycle.Listener listener) {
+ }
+
+ public void removeLifeCycleListener(LifeCycle.Listener listener) {
+ }
}
}
Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java?rev=722538&r1=722537&r2=722538&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java Tue Dec 2 09:40:24 2008
@@ -18,6 +18,7 @@
package org.apache.geronimo.jetty6;
import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.handler.AbstractHandler;
/**
* @version $Rev: 449059 $ $Date: 2006-09-23 05:23:09 +1000 (Sat, 23 Sep 2006) $
Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java?rev=722538&r1=722537&r2=722538&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java Tue Dec 2 09:40:24 2008
@@ -18,16 +18,20 @@
package org.apache.geronimo.jetty6.handler;
+import org.mortbay.component.LifeCycle;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.HandlerContainer;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.AbstractHandler;
import org.mortbay.jetty.handler.AbstractHandlerContainer;
+import org.mortbay.util.LazyList;
/**
* @version $Rev$ $Date$
*/
public abstract class AbstractImmutableHandler implements Handler /*extends AbstractHandlerContainer*/ {
+ private Object _lock = new Object();
+ protected LifeCycle.Listener[] _listeners;
protected final Handler next;
protected AbstractImmutableHandler(Handler next) {
@@ -72,6 +76,14 @@
}
}
+ public void removeHandler(Handler handler) {
+ if (next instanceof HandlerContainer) {
+ ((HandlerContainer) next).removeHandler(handler);
+ } else {
+ throw new RuntimeException("geronimo HandlerContainers are immutable");
+ }
+ }
+
/**
* this is basically the implementation from HandlerWrapper.
* @param list partial list of handlers matching byClass (may be null)
@@ -84,12 +96,55 @@
return null;
}
+ /**
+ * this is basically the implementation from AbstractLifeCycle
+ */
public void start() throws Exception {
- next.start();
+ synchronized (_lock)
+ {
+ try
+ {
+ if (isStarted() || isStarting())
+ return;
+ setStarting();
+ doStart();
+ setStarted();
+ }
+ catch (Exception e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ catch (Error e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ }
}
public void stop() throws Exception {
- next.stop();
+ synchronized (_lock)
+ {
+ try
+ {
+ if (isStopping() || isStopped())
+ return;
+ setStopping();
+ doStop();
+ setStopped();
+ }
+ catch (Exception e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ catch (Error e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ }
}
public boolean isRunning() {
@@ -113,6 +168,70 @@
}
public boolean isFailed() {
- return false;
+ return next.isFailed();
}
+
+ public void addLifeCycleListener(LifeCycle.Listener listener) {
+ _listeners = (LifeCycle.Listener[])LazyList.addToArray(_listeners,listener,LifeCycle.Listener.class);
+ }
+
+ public void removeLifeCycleListener(LifeCycle.Listener listener) {
+ LazyList.removeFromArray(_listeners,listener);
+ }
+
+ private void setStarted()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStarted(this);
+ }
+ }
+ }
+
+ private void setStarting()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStarting(this);
+ }
+ }
+ }
+
+ private void setStopping()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStopping(this);
+ }
+ }
+ }
+
+ private void setStopped()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStopped(this);
+ }
+ }
+ }
+
+ private void setFailed(Throwable error)
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleFailure(this,error);
+ }
+ }
+ }
+
}
Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java?rev=722538&r1=722537&r2=722538&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java Tue Dec 2 09:40:24 2008
@@ -26,6 +26,7 @@
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
+import org.mortbay.component.LifeCycle;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ErrorHandler;
@@ -33,6 +34,8 @@
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.jetty.servlet.SessionHandler;
import org.mortbay.jetty.webapp.WebAppContext;
+import org.mortbay.util.LazyList;
+
/**
* @version $Rev$ $Date$
@@ -60,6 +63,8 @@
}
private class TwistyHandler implements Handler {
+ private Object _lock = new Object();
+ protected LifeCycle.Listener[] _listeners;
public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException, ServletException {
TwistyWebAppContext.super.handle(target, request, response, dispatch);
@@ -77,12 +82,55 @@
TwistyWebAppContext.super.destroy();
}
+ /*
+ * this is basically the implementation from AbstractLifeCycle
+ */
public void start() throws Exception {
- TwistyWebAppContext.super.start();
+ synchronized (_lock)
+ {
+ try
+ {
+ if (isStarted() || isStarting())
+ return;
+ setStarting();
+ TwistyWebAppContext.super.start();
+ setStarted();
+ }
+ catch (Exception e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ catch (Error e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ }
}
public void stop() throws Exception {
- TwistyWebAppContext.super.stop();
+ synchronized (_lock)
+ {
+ try
+ {
+ if (isStopping() || isStopped())
+ return;
+ setStopping();
+ TwistyWebAppContext.super.stop();
+ setStopped();
+ }
+ catch (Exception e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ catch (Error e)
+ {
+ setFailed(e);
+ throw e;
+ }
+ }
}
public boolean isRunning() {
@@ -108,5 +156,70 @@
public boolean isFailed() {
return TwistyWebAppContext.super.isFailed();
}
+
+ public void addLifeCycleListener(LifeCycle.Listener listener)
+ {
+ _listeners = (LifeCycle.Listener[])LazyList.addToArray(_listeners,listener,LifeCycle.Listener.class);
+ }
+
+ public void removeLifeCycleListener(LifeCycle.Listener listener)
+ {
+ LazyList.removeFromArray(_listeners,listener);
+ }
+
+ private void setStarted()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStarted(this);
+ }
+ }
+ }
+
+ private void setStarting()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStarting(this);
+ }
+ }
+ }
+
+ private void setStopping()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStopping(this);
+ }
+ }
+ }
+
+ private void setStopped()
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleStopped(this);
+ }
+ }
+ }
+
+ private void setFailed(Throwable error)
+ {
+ if (_listeners != null)
+ {
+ for (int i = 0; i < _listeners.length; i++)
+ {
+ _listeners[i].lifeCycleFailure(this,error);
+ }
+ }
+ }
}
}
Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java?rev=722538&r1=722537&r2=722538&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java (original)
+++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java Tue Dec 2 09:40:24 2008
@@ -27,6 +27,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.mortbay.component.LifeCycle;
import org.mortbay.jetty.servlet.SessionHandler;
@@ -69,7 +70,12 @@
throws IOException, ServletException {
next.handle(target, request, response, dispatch);
}
-
+
+ public void addLifeCycleListener(LifeCycle.Listener listener) {
+ }
+
+ public void removeLifeCycleListener(LifeCycle.Listener listener) {
+ }
};
}
Modified: geronimo/server/trunk/plugins/jetty/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/pom.xml?rev=722538&r1=722537&r2=722538&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty/pom.xml (original)
+++ geronimo/server/trunk/plugins/jetty/pom.xml Tue Dec 2 09:40:24 2008
@@ -42,7 +42,7 @@
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
- <version>6.1.7</version>
+ <version>6.1.14</version>
<exclusions>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
@@ -54,19 +54,19 @@
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-ajp</artifactId>
- <version>6.1.7</version>
+ <version>6.1.14</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-sslengine</artifactId>
- <version>6.1.7</version>
+ <version>6.1.14</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
- <version>6.1.7</version>
+ <version>6.1.14</version>
</dependency>
</dependencies>
Re: svn commit: r722538 - in /geronimo/server/trunk/plugins/jetty:
./ geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/
geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/ geronimo-jetty6/src/main/java/org/apache/geron...
Posted by Joe Bohn <jo...@earthlink.net>.
This change may have introduced some tck failures. I'm looking into it
... but just a warning that we might have to move back to an older version.
Joe
dwoods@apache.org wrote:
> Author: dwoods
> Date: Tue Dec 2 09:40:24 2008
> New Revision: 722538
>
> URL: http://svn.apache.org/viewvc?rev=722538&view=rev
> Log:
> GERONIMO-4437 Upgrade to Jetty 6.1.14
>
> Modified:
> geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java
> geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java
> geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java
> geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java
> geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java
> geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java
> geronimo/server/trunk/plugins/jetty/pom.xml
>
> Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java?rev=722538&r1=722537&r2=722538&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java (original)
> +++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/AbstractClusteredPreHandler.java Tue Dec 2 09:40:24 2008
> @@ -25,6 +25,7 @@
> import org.apache.geronimo.clustering.ClusteredInvocation;
> import org.apache.geronimo.clustering.ClusteredInvocationException;
> import org.apache.geronimo.jetty6.AbstractPreHandler;
> +import org.mortbay.component.LifeCycle;
> import org.mortbay.jetty.HttpException;
>
> /**
> @@ -49,6 +50,12 @@
> }
> }
>
> + public void addLifeCycleListener(LifeCycle.Listener listener) {
> + }
> +
> + public void removeLifeCycleListener(LifeCycle.Listener listener) {
> + }
> +
> protected abstract ClusteredInvocation newClusteredInvocation(String target,
> HttpServletRequest request, HttpServletResponse response, int dispatch);
>
>
> Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java?rev=722538&r1=722537&r2=722538&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java (original)
> +++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6-clustering-wadi/src/main/java/org/apache/geronimo/jetty6/cluster/ClusteredSessionHandler.java Tue Dec 2 09:40:24 2008
> @@ -24,6 +24,7 @@
>
> import org.apache.geronimo.jetty6.AbstractPreHandler;
> import org.apache.geronimo.jetty6.PreHandler;
> +import org.mortbay.component.LifeCycle;
> import org.mortbay.jetty.servlet.SessionHandler;
>
> /**
> @@ -65,6 +66,12 @@
> throws IOException, ServletException {
> doHandle(target, request, response, dispatch);
> }
> +
> + public void addLifeCycleListener(LifeCycle.Listener listener) {
> + }
> +
> + public void removeLifeCycleListener(LifeCycle.Listener listener) {
> + }
> }
>
> }
>
> Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java?rev=722538&r1=722537&r2=722538&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java (original)
> +++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/PreHandler.java Tue Dec 2 09:40:24 2008
> @@ -18,6 +18,7 @@
> package org.apache.geronimo.jetty6;
>
> import org.mortbay.jetty.Handler;
> +import org.mortbay.jetty.handler.AbstractHandler;
>
> /**
> * @version $Rev: 449059 $ $Date: 2006-09-23 05:23:09 +1000 (Sat, 23 Sep 2006) $
>
> Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java?rev=722538&r1=722537&r2=722538&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java (original)
> +++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/AbstractImmutableHandler.java Tue Dec 2 09:40:24 2008
> @@ -18,16 +18,20 @@
>
> package org.apache.geronimo.jetty6.handler;
>
> +import org.mortbay.component.LifeCycle;
> import org.mortbay.jetty.Handler;
> import org.mortbay.jetty.HandlerContainer;
> import org.mortbay.jetty.Server;
> import org.mortbay.jetty.handler.AbstractHandler;
> import org.mortbay.jetty.handler.AbstractHandlerContainer;
> +import org.mortbay.util.LazyList;
>
> /**
> * @version $Rev$ $Date$
> */
> public abstract class AbstractImmutableHandler implements Handler /*extends AbstractHandlerContainer*/ {
> + private Object _lock = new Object();
> + protected LifeCycle.Listener[] _listeners;
> protected final Handler next;
>
> protected AbstractImmutableHandler(Handler next) {
> @@ -72,6 +76,14 @@
> }
> }
>
> + public void removeHandler(Handler handler) {
> + if (next instanceof HandlerContainer) {
> + ((HandlerContainer) next).removeHandler(handler);
> + } else {
> + throw new RuntimeException("geronimo HandlerContainers are immutable");
> + }
> + }
> +
> /**
> * this is basically the implementation from HandlerWrapper.
> * @param list partial list of handlers matching byClass (may be null)
> @@ -84,12 +96,55 @@
> return null;
> }
>
> + /**
> + * this is basically the implementation from AbstractLifeCycle
> + */
> public void start() throws Exception {
> - next.start();
> + synchronized (_lock)
> + {
> + try
> + {
> + if (isStarted() || isStarting())
> + return;
> + setStarting();
> + doStart();
> + setStarted();
> + }
> + catch (Exception e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + catch (Error e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + }
> }
>
> public void stop() throws Exception {
> - next.stop();
> + synchronized (_lock)
> + {
> + try
> + {
> + if (isStopping() || isStopped())
> + return;
> + setStopping();
> + doStop();
> + setStopped();
> + }
> + catch (Exception e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + catch (Error e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + }
> }
>
> public boolean isRunning() {
> @@ -113,6 +168,70 @@
> }
>
> public boolean isFailed() {
> - return false;
> + return next.isFailed();
> }
> +
> + public void addLifeCycleListener(LifeCycle.Listener listener) {
> + _listeners = (LifeCycle.Listener[])LazyList.addToArray(_listeners,listener,LifeCycle.Listener.class);
> + }
> +
> + public void removeLifeCycleListener(LifeCycle.Listener listener) {
> + LazyList.removeFromArray(_listeners,listener);
> + }
> +
> + private void setStarted()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStarted(this);
> + }
> + }
> + }
> +
> + private void setStarting()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStarting(this);
> + }
> + }
> + }
> +
> + private void setStopping()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStopping(this);
> + }
> + }
> + }
> +
> + private void setStopped()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStopped(this);
> + }
> + }
> + }
> +
> + private void setFailed(Throwable error)
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleFailure(this,error);
> + }
> + }
> + }
> +
> }
>
> Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java?rev=722538&r1=722537&r2=722538&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java (original)
> +++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/handler/TwistyWebAppContext.java Tue Dec 2 09:40:24 2008
> @@ -26,6 +26,7 @@
> import javax.servlet.http.HttpServletResponse;
> import javax.servlet.ServletException;
>
> +import org.mortbay.component.LifeCycle;
> import org.mortbay.jetty.Handler;
> import org.mortbay.jetty.Server;
> import org.mortbay.jetty.handler.ErrorHandler;
> @@ -33,6 +34,8 @@
> import org.mortbay.jetty.servlet.ServletHandler;
> import org.mortbay.jetty.servlet.SessionHandler;
> import org.mortbay.jetty.webapp.WebAppContext;
> +import org.mortbay.util.LazyList;
> +
>
> /**
> * @version $Rev$ $Date$
> @@ -60,6 +63,8 @@
> }
>
> private class TwistyHandler implements Handler {
> + private Object _lock = new Object();
> + protected LifeCycle.Listener[] _listeners;
>
> public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException, ServletException {
> TwistyWebAppContext.super.handle(target, request, response, dispatch);
> @@ -77,12 +82,55 @@
> TwistyWebAppContext.super.destroy();
> }
>
> + /*
> + * this is basically the implementation from AbstractLifeCycle
> + */
> public void start() throws Exception {
> - TwistyWebAppContext.super.start();
> + synchronized (_lock)
> + {
> + try
> + {
> + if (isStarted() || isStarting())
> + return;
> + setStarting();
> + TwistyWebAppContext.super.start();
> + setStarted();
> + }
> + catch (Exception e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + catch (Error e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + }
> }
>
> public void stop() throws Exception {
> - TwistyWebAppContext.super.stop();
> + synchronized (_lock)
> + {
> + try
> + {
> + if (isStopping() || isStopped())
> + return;
> + setStopping();
> + TwistyWebAppContext.super.stop();
> + setStopped();
> + }
> + catch (Exception e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + catch (Error e)
> + {
> + setFailed(e);
> + throw e;
> + }
> + }
> }
>
> public boolean isRunning() {
> @@ -108,5 +156,70 @@
> public boolean isFailed() {
> return TwistyWebAppContext.super.isFailed();
> }
> +
> + public void addLifeCycleListener(LifeCycle.Listener listener)
> + {
> + _listeners = (LifeCycle.Listener[])LazyList.addToArray(_listeners,listener,LifeCycle.Listener.class);
> + }
> +
> + public void removeLifeCycleListener(LifeCycle.Listener listener)
> + {
> + LazyList.removeFromArray(_listeners,listener);
> + }
> +
> + private void setStarted()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStarted(this);
> + }
> + }
> + }
> +
> + private void setStarting()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStarting(this);
> + }
> + }
> + }
> +
> + private void setStopping()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStopping(this);
> + }
> + }
> + }
> +
> + private void setStopped()
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleStopped(this);
> + }
> + }
> + }
> +
> + private void setFailed(Throwable error)
> + {
> + if (_listeners != null)
> + {
> + for (int i = 0; i < _listeners.length; i++)
> + {
> + _listeners[i].lifeCycleFailure(this,error);
> + }
> + }
> + }
> }
> }
>
> Modified: geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java?rev=722538&r1=722537&r2=722538&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java (original)
> +++ geronimo/server/trunk/plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ApplicationTest.java Tue Dec 2 09:40:24 2008
> @@ -27,6 +27,7 @@
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
> +import org.mortbay.component.LifeCycle;
> import org.mortbay.jetty.servlet.SessionHandler;
>
>
> @@ -69,7 +70,12 @@
> throws IOException, ServletException {
> next.handle(target, request, response, dispatch);
> }
> -
> +
> + public void addLifeCycleListener(LifeCycle.Listener listener) {
> + }
> +
> + public void removeLifeCycleListener(LifeCycle.Listener listener) {
> + }
> };
> }
>
>
> Modified: geronimo/server/trunk/plugins/jetty/pom.xml
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty/pom.xml?rev=722538&r1=722537&r2=722538&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/jetty/pom.xml (original)
> +++ geronimo/server/trunk/plugins/jetty/pom.xml Tue Dec 2 09:40:24 2008
> @@ -42,7 +42,7 @@
> <dependency>
> <groupId>org.mortbay.jetty</groupId>
> <artifactId>jetty</artifactId>
> - <version>6.1.7</version>
> + <version>6.1.14</version>
> <exclusions>
> <exclusion>
> <groupId>org.mortbay.jetty</groupId>
> @@ -54,19 +54,19 @@
> <dependency>
> <groupId>org.mortbay.jetty</groupId>
> <artifactId>jetty-ajp</artifactId>
> - <version>6.1.7</version>
> + <version>6.1.14</version>
> </dependency>
>
> <dependency>
> <groupId>org.mortbay.jetty</groupId>
> <artifactId>jetty-sslengine</artifactId>
> - <version>6.1.7</version>
> + <version>6.1.14</version>
> </dependency>
>
> <dependency>
> <groupId>org.mortbay.jetty</groupId>
> <artifactId>jetty-util</artifactId>
> - <version>6.1.7</version>
> + <version>6.1.14</version>
> </dependency>
>
> </dependencies>
>
>
>