jetty-9 more lifecycle fixes
This commit is contained in:
parent
f5af05f0cc
commit
9ee8ef7423
|
@ -39,6 +39,11 @@
|
||||||
<artifactId>jetty-jmx</artifactId>
|
<artifactId>jetty-jmx</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty.websocket</groupId>
|
||||||
|
<artifactId>websocket-server</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.jetty.spdy</groupId>
|
<groupId>org.eclipse.jetty.spdy</groupId>
|
||||||
<artifactId>spdy-http-server</artifactId>
|
<artifactId>spdy-http-server</artifactId>
|
||||||
|
|
|
@ -53,8 +53,8 @@ public class LikeJettyXml
|
||||||
|
|
||||||
Server server = new Server(threadPool);
|
Server server = new Server(threadPool);
|
||||||
server.manage(threadPool);
|
server.manage(threadPool);
|
||||||
server.setDumpAfterStart(true);
|
server.setDumpAfterStart(false);
|
||||||
server.setDumpBeforeStop(true);
|
server.setDumpBeforeStop(false);
|
||||||
|
|
||||||
// Setup JMX
|
// Setup JMX
|
||||||
MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
|
MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
|
||||||
|
|
|
@ -54,16 +54,19 @@ public abstract class ScanningAppProvider extends AbstractLifeCycle implements A
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
private final Scanner.DiscreteListener _scannerListener = new Scanner.DiscreteListener()
|
private final Scanner.DiscreteListener _scannerListener = new Scanner.DiscreteListener()
|
||||||
{
|
{
|
||||||
|
@Override
|
||||||
public void fileAdded(String filename) throws Exception
|
public void fileAdded(String filename) throws Exception
|
||||||
{
|
{
|
||||||
ScanningAppProvider.this.fileAdded(filename);
|
ScanningAppProvider.this.fileAdded(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void fileChanged(String filename) throws Exception
|
public void fileChanged(String filename) throws Exception
|
||||||
{
|
{
|
||||||
ScanningAppProvider.this.fileChanged(filename);
|
ScanningAppProvider.this.fileChanged(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void fileRemoved(String filename) throws Exception
|
public void fileRemoved(String filename) throws Exception
|
||||||
{
|
{
|
||||||
ScanningAppProvider.this.fileRemoved(filename);
|
ScanningAppProvider.this.fileRemoved(filename);
|
||||||
|
|
|
@ -73,6 +73,8 @@ public abstract class AbstractHandler extends ContainerLifeCycle implements Hand
|
||||||
@Override
|
@Override
|
||||||
public void setServer(Server server)
|
public void setServer(Server server)
|
||||||
{
|
{
|
||||||
|
if (_server==server)
|
||||||
|
return;
|
||||||
if (isStarted())
|
if (isStarted())
|
||||||
throw new IllegalStateException(STARTED);
|
throw new IllegalStateException(STARTED);
|
||||||
_server=server;
|
_server=server;
|
||||||
|
|
|
@ -84,7 +84,8 @@ public class HandlerCollection extends AbstractHandlerContainer
|
||||||
|
|
||||||
if (handlers!=null)
|
if (handlers!=null)
|
||||||
for (Handler handler:handlers)
|
for (Handler handler:handlers)
|
||||||
handler.setServer(getServer());
|
if (handler.getServer()!=getServer())
|
||||||
|
handler.setServer(getServer());
|
||||||
|
|
||||||
updateBeans(_handlers, handlers);
|
updateBeans(_handlers, handlers);
|
||||||
_handlers = handlers;
|
_handlers = handlers;
|
||||||
|
|
|
@ -103,6 +103,9 @@ public class HandlerWrapper extends AbstractHandlerContainer
|
||||||
@Override
|
@Override
|
||||||
public void setServer(Server server)
|
public void setServer(Server server)
|
||||||
{
|
{
|
||||||
|
if (server==getServer())
|
||||||
|
return;
|
||||||
|
|
||||||
if (isStarted())
|
if (isStarted())
|
||||||
throw new IllegalStateException(STARTED);
|
throw new IllegalStateException(STARTED);
|
||||||
|
|
||||||
|
|
|
@ -224,10 +224,10 @@ public abstract class AbstractLifeCycle implements LifeCycle
|
||||||
|
|
||||||
public static abstract class AbstractLifeCycleListener implements LifeCycle.Listener
|
public static abstract class AbstractLifeCycleListener implements LifeCycle.Listener
|
||||||
{
|
{
|
||||||
public void lifeCycleFailure(LifeCycle event, Throwable cause) {}
|
@Override public void lifeCycleFailure(LifeCycle event, Throwable cause) {}
|
||||||
public void lifeCycleStarted(LifeCycle event) {}
|
@Override public void lifeCycleStarted(LifeCycle event) {}
|
||||||
public void lifeCycleStarting(LifeCycle event) {}
|
@Override public void lifeCycleStarting(LifeCycle event) {}
|
||||||
public void lifeCycleStopped(LifeCycle event) {}
|
@Override public void lifeCycleStopped(LifeCycle event) {}
|
||||||
public void lifeCycleStopping(LifeCycle event) {}
|
@Override public void lifeCycleStopping(LifeCycle event) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,8 @@ import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
|
import org.eclipse.jetty.util.annotation.ManagedObject;
|
||||||
|
import org.eclipse.jetty.util.annotation.ManagedOperation;
|
||||||
import org.eclipse.jetty.util.log.Log;
|
import org.eclipse.jetty.util.log.Log;
|
||||||
import org.eclipse.jetty.util.log.Logger;
|
import org.eclipse.jetty.util.log.Logger;
|
||||||
|
|
||||||
|
@ -45,6 +47,7 @@ import org.eclipse.jetty.util.log.Logger;
|
||||||
* If adding a bean that is shared between multiple {@link ContainerLifeCycle} instances, then it should be started before being added, so it is unmanaged, or
|
* If adding a bean that is shared between multiple {@link ContainerLifeCycle} instances, then it should be started before being added, so it is unmanaged, or
|
||||||
* the API must be used to explicitly set it as unmanaged.
|
* the API must be used to explicitly set it as unmanaged.
|
||||||
*/
|
*/
|
||||||
|
@ManagedObject("Implementation of Container and LifeCycle")
|
||||||
public class ContainerLifeCycle extends AbstractLifeCycle implements Container, Destroyable, Dumpable
|
public class ContainerLifeCycle extends AbstractLifeCycle implements Container, Destroyable, Dumpable
|
||||||
{
|
{
|
||||||
private static final Logger LOG = Log.getLogger(ContainerLifeCycle.class);
|
private static final Logger LOG = Log.getLogger(ContainerLifeCycle.class);
|
||||||
|
@ -470,6 +473,7 @@ public class ContainerLifeCycle extends AbstractLifeCycle implements Container,
|
||||||
* Dumps to {@link System#err}.
|
* Dumps to {@link System#err}.
|
||||||
* @see #dump()
|
* @see #dump()
|
||||||
*/
|
*/
|
||||||
|
@ManagedOperation("Dump the object to stderr")
|
||||||
public void dumpStdErr()
|
public void dumpStdErr()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -483,6 +487,7 @@ public class ContainerLifeCycle extends AbstractLifeCycle implements Container,
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ManagedOperation("Dump the object to a string")
|
||||||
public String dump()
|
public String dump()
|
||||||
{
|
{
|
||||||
return dump(this);
|
return dump(this);
|
||||||
|
|
Loading…
Reference in New Issue