package org.jboss.resteasy.springmvc; import org.eclipse.jetty.server.Server; import org.jboss.resteasy.plugins.spring.i18n.LogMessages; import org.jboss.resteasy.plugins.spring.i18n.Messages; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; /** * * @author <a href="mailto:sduskis@gmail.com">Solomon Duskis</a> * @version $Revision: 1 $ */ public class JettyLifecycleManager implements InitializingBean, DisposableBean { private Server servletContainer; public Server getServletContainer() { return servletContainer; } public void setServletContainer(Server servletContainer) { this.servletContainer = servletContainer; } public void afterPropertiesSet() throws Exception { LogMessages.LOGGER.info(Messages.MESSAGES.startingUpJetty()); try { servletContainer.start(); while (!servletContainer.isStarted()) { Thread.sleep(1000); } } catch (InterruptedException e) { LogMessages.LOGGER.error(Messages.MESSAGES.interruptedStartingUpJetty(), e); } catch (Exception e) { LogMessages.LOGGER.error(Messages.MESSAGES.exceptionStartingUpJetty(), e); } /* * For manual testing (e.g. browser, infinite loop while(true) { try { * while (!servletContainer.isStarted()) { Thread.sleep(3000); } } catch * (InterruptedException e) { // TODO Auto-generated catch block * e.printStackTrace(); } } */ } public void destroy() throws Exception { LogMessages.LOGGER.info(Messages.MESSAGES.shuttingDownJetty()); try { servletContainer.stop(); } catch (Exception e) { LogMessages.LOGGER.info(Messages.MESSAGES.exceptionShuttingDownJetty(), e); } } }