103928aee4356845252ac6b662d5c72c29903813eJake Slack// 203928aee4356845252ac6b662d5c72c29903813eJake Slack// ======================================================================== 303928aee4356845252ac6b662d5c72c29903813eJake Slack// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. 403928aee4356845252ac6b662d5c72c29903813eJake Slack// ------------------------------------------------------------------------ 503928aee4356845252ac6b662d5c72c29903813eJake Slack// All rights reserved. This program and the accompanying materials 603928aee4356845252ac6b662d5c72c29903813eJake Slack// are made available under the terms of the Eclipse Public License v1.0 703928aee4356845252ac6b662d5c72c29903813eJake Slack// and Apache License v2.0 which accompanies this distribution. 803928aee4356845252ac6b662d5c72c29903813eJake Slack// 903928aee4356845252ac6b662d5c72c29903813eJake Slack// The Eclipse Public License is available at 1003928aee4356845252ac6b662d5c72c29903813eJake Slack// http://www.eclipse.org/legal/epl-v10.html 1103928aee4356845252ac6b662d5c72c29903813eJake Slack// 1203928aee4356845252ac6b662d5c72c29903813eJake Slack// The Apache License v2.0 is available at 1303928aee4356845252ac6b662d5c72c29903813eJake Slack// http://www.opensource.org/licenses/apache2.0.php 1403928aee4356845252ac6b662d5c72c29903813eJake Slack// 1503928aee4356845252ac6b662d5c72c29903813eJake Slack// You may elect to redistribute this code under either of these licenses. 1603928aee4356845252ac6b662d5c72c29903813eJake Slack// ======================================================================== 1703928aee4356845252ac6b662d5c72c29903813eJake Slack// 1803928aee4356845252ac6b662d5c72c29903813eJake Slack 1903928aee4356845252ac6b662d5c72c29903813eJake Slackpackage org.eclipse.jetty.server.handler; 2003928aee4356845252ac6b662d5c72c29903813eJake Slack 2103928aee4356845252ac6b662d5c72c29903813eJake Slack 2203928aee4356845252ac6b662d5c72c29903813eJake Slackimport java.io.IOException; 2303928aee4356845252ac6b662d5c72c29903813eJake Slack 2403928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.server.Handler; 2503928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.server.Server; 2603928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.component.AggregateLifeCycle; 2703928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.log.Log; 2803928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.util.log.Logger; 2903928aee4356845252ac6b662d5c72c29903813eJake Slack 3003928aee4356845252ac6b662d5c72c29903813eJake Slack 3103928aee4356845252ac6b662d5c72c29903813eJake Slack/* ------------------------------------------------------------ */ 3203928aee4356845252ac6b662d5c72c29903813eJake Slack/** AbstractHandler. 3303928aee4356845252ac6b662d5c72c29903813eJake Slack * 3403928aee4356845252ac6b662d5c72c29903813eJake Slack * 3503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 3603928aee4356845252ac6b662d5c72c29903813eJake Slackpublic abstract class AbstractHandler extends AggregateLifeCycle implements Handler 3703928aee4356845252ac6b662d5c72c29903813eJake Slack{ 3803928aee4356845252ac6b662d5c72c29903813eJake Slack private static final Logger LOG = Log.getLogger(AbstractHandler.class); 3903928aee4356845252ac6b662d5c72c29903813eJake Slack 4003928aee4356845252ac6b662d5c72c29903813eJake Slack private Server _server; 4103928aee4356845252ac6b662d5c72c29903813eJake Slack 4203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 4303928aee4356845252ac6b662d5c72c29903813eJake Slack /** 4403928aee4356845252ac6b662d5c72c29903813eJake Slack * 4503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 4603928aee4356845252ac6b662d5c72c29903813eJake Slack public AbstractHandler() 4703928aee4356845252ac6b662d5c72c29903813eJake Slack { 4803928aee4356845252ac6b662d5c72c29903813eJake Slack } 4903928aee4356845252ac6b662d5c72c29903813eJake Slack 5003928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 5103928aee4356845252ac6b662d5c72c29903813eJake Slack /* 5203928aee4356845252ac6b662d5c72c29903813eJake Slack * @see org.eclipse.thread.LifeCycle#start() 5303928aee4356845252ac6b662d5c72c29903813eJake Slack */ 5403928aee4356845252ac6b662d5c72c29903813eJake Slack @Override 5503928aee4356845252ac6b662d5c72c29903813eJake Slack protected void doStart() throws Exception 5603928aee4356845252ac6b662d5c72c29903813eJake Slack { 5703928aee4356845252ac6b662d5c72c29903813eJake Slack LOG.debug("starting {}",this); 5803928aee4356845252ac6b662d5c72c29903813eJake Slack super.doStart(); 5903928aee4356845252ac6b662d5c72c29903813eJake Slack } 6003928aee4356845252ac6b662d5c72c29903813eJake Slack 6103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 6203928aee4356845252ac6b662d5c72c29903813eJake Slack /* 6303928aee4356845252ac6b662d5c72c29903813eJake Slack * @see org.eclipse.thread.LifeCycle#stop() 6403928aee4356845252ac6b662d5c72c29903813eJake Slack */ 6503928aee4356845252ac6b662d5c72c29903813eJake Slack @Override 6603928aee4356845252ac6b662d5c72c29903813eJake Slack protected void doStop() throws Exception 6703928aee4356845252ac6b662d5c72c29903813eJake Slack { 6803928aee4356845252ac6b662d5c72c29903813eJake Slack LOG.debug("stopping {}",this); 6903928aee4356845252ac6b662d5c72c29903813eJake Slack super.doStop(); 7003928aee4356845252ac6b662d5c72c29903813eJake Slack } 7103928aee4356845252ac6b662d5c72c29903813eJake Slack 7203928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 7303928aee4356845252ac6b662d5c72c29903813eJake Slack public void setServer(Server server) 7403928aee4356845252ac6b662d5c72c29903813eJake Slack { 7503928aee4356845252ac6b662d5c72c29903813eJake Slack Server old_server=_server; 7603928aee4356845252ac6b662d5c72c29903813eJake Slack if (old_server!=null && old_server!=server) 7703928aee4356845252ac6b662d5c72c29903813eJake Slack old_server.getContainer().removeBean(this); 7803928aee4356845252ac6b662d5c72c29903813eJake Slack _server=server; 7903928aee4356845252ac6b662d5c72c29903813eJake Slack if (_server!=null && _server!=old_server) 8003928aee4356845252ac6b662d5c72c29903813eJake Slack _server.getContainer().addBean(this); 8103928aee4356845252ac6b662d5c72c29903813eJake Slack } 8203928aee4356845252ac6b662d5c72c29903813eJake Slack 8303928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 8403928aee4356845252ac6b662d5c72c29903813eJake Slack public Server getServer() 8503928aee4356845252ac6b662d5c72c29903813eJake Slack { 8603928aee4356845252ac6b662d5c72c29903813eJake Slack return _server; 8703928aee4356845252ac6b662d5c72c29903813eJake Slack } 8803928aee4356845252ac6b662d5c72c29903813eJake Slack 8903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 9003928aee4356845252ac6b662d5c72c29903813eJake Slack public void destroy() 9103928aee4356845252ac6b662d5c72c29903813eJake Slack { 9203928aee4356845252ac6b662d5c72c29903813eJake Slack if (!isStopped()) 9303928aee4356845252ac6b662d5c72c29903813eJake Slack throw new IllegalStateException("!STOPPED"); 9403928aee4356845252ac6b662d5c72c29903813eJake Slack super.destroy(); 9503928aee4356845252ac6b662d5c72c29903813eJake Slack if (_server!=null) 9603928aee4356845252ac6b662d5c72c29903813eJake Slack _server.getContainer().removeBean(this); 9703928aee4356845252ac6b662d5c72c29903813eJake Slack } 9803928aee4356845252ac6b662d5c72c29903813eJake Slack 9903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 10003928aee4356845252ac6b662d5c72c29903813eJake Slack public void dumpThis(Appendable out) throws IOException 10103928aee4356845252ac6b662d5c72c29903813eJake Slack { 10203928aee4356845252ac6b662d5c72c29903813eJake Slack out.append(toString()).append(" - ").append(getState()).append('\n'); 10303928aee4356845252ac6b662d5c72c29903813eJake Slack } 10403928aee4356845252ac6b662d5c72c29903813eJake Slack 10503928aee4356845252ac6b662d5c72c29903813eJake Slack} 106