@Override public void stop() { Server server = this.serverProvider.getServer(); if (server == null) throw new IllegalStateException(); server.removeLifecycleListener(this); if (this.init.get() && this.start.compareAndSet(true, false)) { this.eventHandler.stop(this.factory.createServer(server)); } if (this.init.compareAndSet(true, false)) { this.destroy(server); } }
/** * initialize server stuff: in jbossweb-2.1.x the server can't be destroyed so you could start (restart) one that needs * initializations... */ protected void init(Server server) { this.eventHandler.init(this.factory.createServer(server)); this.addListeners(server); }
@Override public void start() { Server server = this.serverProvider.getServer(); if (server == null) throw new IllegalStateException(); if (!this.containsListener(server)) { server.addLifecycleListener(this); } if (this.init.compareAndSet(false, true)) { this.init(server); } if (this.start.compareAndSet(false, true)) { this.eventHandler.start(this.factory.createServer(server)); } }
protected void startServer(TomcatEventHandler handler, LifecycleServer server) { Server catalinaServer = mock(Server.class); when(this.factory.createServer(same(server))).thenReturn(catalinaServer); handler.lifecycleEvent(new LifecycleEvent(server, Lifecycle.AFTER_START_EVENT, null)); verify(this.eventHandler).start(same(catalinaServer)); reset(this.eventHandler); }
if (source instanceof Server) { if (this.init.get() && this.start.compareAndSet(false, true)) { this.eventHandler.start(this.factory.createServer((Server) source)); this.eventHandler.stop(this.factory.createServer((Server) source));
protected void initServer(TomcatEventHandler handler, LifecycleServer server) { Service service = mock(Service.class); LifecycleEngine engine = mock(LifecycleEngine.class); Container container = mock(Container.class); LifecycleContainer childContainer = mock(LifecycleContainer.class); Server catalinaServer = mock(Server.class); when(server.findServices()).thenReturn(new Service[] { service }); when(service.getContainer()).thenReturn(engine); when(engine.findChildren()).thenReturn(new Container[] { container }); when(container.findChildren()).thenReturn(new Container[] { childContainer }); when(this.factory.createServer(server)).thenReturn(catalinaServer); handler.lifecycleEvent(this.createAfterInitEvent(server)); verify(this.eventHandler).init(same(catalinaServer)); verify(engine).addContainerListener(handler); verify(engine).addLifecycleListener(handler); verify(container).addContainerListener(handler); verify(childContainer).addLifecycleListener(handler); reset(this.eventHandler); }
@Test public void start() { Service service = mock(Service.class); LifecycleListener listener = mock(LifecycleListener.class); LifecycleEngine engine = mock(LifecycleEngine.class); Container container = mock(Container.class); LifecycleContainer childContainer = mock(LifecycleContainer.class); Server server = mock(Server.class); TomcatEventHandler handler = this.createEventHandler(this.eventHandler, this.provider, this.factory); when(this.provider.getServer()).thenReturn(this.server); when(this.server.findLifecycleListeners()).thenReturn(new LifecycleListener[] { listener }); when(this.server.findServices()).thenReturn(new Service[] { service }); when(service.getContainer()).thenReturn(engine); when(engine.findChildren()).thenReturn(new Container[] { container }); when(container.findChildren()).thenReturn(new Container[] { childContainer }); when(this.factory.createServer(same(this.server))).thenReturn(server); handler.start(); verify(this.server).addLifecycleListener(same(handler)); verify(this.eventHandler).init(same(server)); verify(engine).addContainerListener(handler); verify(engine).addLifecycleListener(handler); verify(container).addContainerListener(handler); verify(childContainer).addLifecycleListener(handler); verify(childContainer).addPropertyChangeListener(handler); verify(this.eventHandler).start(same(server)); }
@Test public void stop() throws Exception { Server server = mock(Server.class); Service service = mock(Service.class); LifecycleEngine engine = mock(LifecycleEngine.class); Container container = mock(Container.class); LifecycleContainer childContainer = mock(LifecycleContainer.class); TomcatEventHandler handler = this.createEventHandler(this.eventHandler, this.provider, this.factory); this.initServer(handler, this.server); this.startServer(handler, this.server); when(this.provider.getServer()).thenReturn(this.server); when(this.server.findServices()).thenReturn(new Service[] { service }); when(service.getContainer()).thenReturn(engine); when(engine.findChildren()).thenReturn(new Container[] { container }); when(container.findChildren()).thenReturn(new Container[] { childContainer }); when(this.factory.createServer(this.server)).thenReturn(server); handler.stop(); verify(this.server).removeLifecycleListener(same(handler)); verify(this.eventHandler).stop(same(server)); verify(engine).removeContainerListener(handler); verify(engine).removeLifecycleListener(handler); verify(container).removeContainerListener(handler); verify(childContainer).removeLifecycleListener(handler); verify(childContainer).removePropertyChangeListener(handler); verify(this.eventHandler).shutdown(); }
@Test public void stopServer() throws Exception { TomcatEventHandler handler = this.createEventHandler(this.eventHandler, this.provider, this.factory); LifecycleServer server = mock(LifecycleServer.class); LifecycleEvent event = new LifecycleEvent(server, Lifecycle.BEFORE_STOP_EVENT, null); handler.lifecycleEvent(event); Mockito.verifyZeroInteractions(this.eventHandler); this.initServer(handler, server); handler.lifecycleEvent(event); Mockito.verifyZeroInteractions(this.eventHandler); this.startServer(handler, server); Server catalinaServer = mock(Server.class); when(this.factory.createServer(same(server))).thenReturn(catalinaServer); handler.lifecycleEvent(event); verify(this.eventHandler).stop(same(catalinaServer)); reset(this.eventHandler); handler.lifecycleEvent(event); Mockito.verifyZeroInteractions(this.eventHandler); }