Mercurial Hosting > luan
changeset 912:1d0c304e12b5
simplify AggregateLifeCycle
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 08 Oct 2016 22:05:14 -0600 |
parents | cab5830e1ab0 |
children | 17f4fe8271de |
files | src/org/eclipse/jetty/server/Server.java src/org/eclipse/jetty/server/nio/SelectChannelConnector.java src/org/eclipse/jetty/util/component/AggregateLifeCycle.java |
diffstat | 3 files changed, 33 insertions(+), 84 deletions(-) [+] |
line wrap: on
line diff
diff -r cab5830e1ab0 -r 1d0c304e12b5 src/org/eclipse/jetty/server/Server.java --- a/src/org/eclipse/jetty/server/Server.java Sat Oct 08 21:37:13 2016 -0600 +++ b/src/org/eclipse/jetty/server/Server.java Sat Oct 08 22:05:14 2016 -0600 @@ -102,10 +102,6 @@ } } } -/* - if (isDumpAfterStart()) - dumpStdErr(); -*/ mex.ifExceptionThrow(); } @@ -113,10 +109,6 @@ @Override protected void doStop() throws Exception { -/* - if (isDumpBeforeStop()) - dumpStdErr(); -*/ MultiException mex=new MultiException(); /* if (_graceful>0)
diff -r cab5830e1ab0 -r 1d0c304e12b5 src/org/eclipse/jetty/server/nio/SelectChannelConnector.java --- a/src/org/eclipse/jetty/server/nio/SelectChannelConnector.java Sat Oct 08 21:37:13 2016 -0600 +++ b/src/org/eclipse/jetty/server/nio/SelectChannelConnector.java Sat Oct 08 22:05:14 2016 -0600 @@ -99,7 +99,6 @@ { if (_acceptChannel != null) { - removeBean(_acceptChannel); if (_acceptChannel.isOpen()) _acceptChannel.close(); } @@ -199,8 +198,6 @@ if( _acceptChannel.socket().getLocalPort() != port) throw new IOException("Server channel not bound"); - - addBean(_acceptChannel); } super.doStart();
diff -r cab5830e1ab0 -r 1d0c304e12b5 src/org/eclipse/jetty/util/component/AggregateLifeCycle.java --- a/src/org/eclipse/jetty/util/component/AggregateLifeCycle.java Sat Oct 08 21:37:13 2016 -0600 +++ b/src/org/eclipse/jetty/util/component/AggregateLifeCycle.java Sat Oct 08 22:05:14 2016 -0600 @@ -51,12 +51,13 @@ private class Bean { - Bean(Object b) + Bean(LifeCycle b,boolean managed) { - _bean=b; + _bean = b; + _managed = managed; } - final Object _bean; - volatile boolean _managed=true; + final LifeCycle _bean; + final boolean _managed; public String toString() { @@ -74,15 +75,15 @@ { for (Bean b:_beans) { - if (b._managed && b._bean instanceof LifeCycle) + if (b._managed) { - LifeCycle l=(LifeCycle)b._bean; + LifeCycle l = b._bean; if (!l.isRunning()) l.start(); } } // indicate that we are started, so that addBean will start other beans added. - _started=true; + _started = true; super.doStart(); } @@ -94,15 +95,15 @@ @Override protected void doStop() throws Exception { - _started=false; + _started = false; super.doStop(); List<Bean> reverse = new ArrayList<Bean>(_beans); Collections.reverse(reverse); for (Bean b:reverse) { - if (b._managed && b._bean instanceof LifeCycle) + if (b._managed) { - LifeCycle l=(LifeCycle)b._bean; + LifeCycle l = b._bean; if (l.isRunning()) l.stop(); } @@ -123,7 +124,7 @@ { if (b._bean instanceof Destroyable && b._managed) { - Destroyable d=(Destroyable)b._bean; + Destroyable d = (Destroyable)b._bean; d.destroy(); } } @@ -136,7 +137,7 @@ * @param bean * @return True if the aggregate contains the bean */ - private boolean contains(Object bean) + private boolean contains(LifeCycle bean) { for (Bean b:_beans) if (b._bean==bean) @@ -154,10 +155,10 @@ * @param o the bean object to add * @return true if the bean was added or false if it has already been added. */ - public boolean addBean(Object o) + public boolean addBean(LifeCycle o) { // beans are joined unless they are started lifecycles - return addBean(o,!((o instanceof LifeCycle)&&((LifeCycle)o).isStarted())); + return addBean(o,!o.isStarted()); } /* ------------------------------------------------------------ */ @@ -166,30 +167,24 @@ * @param managed True if the LifeCycle is to be joined, otherwise it will be disjoint. * @return true if bean was added, false if already present. */ - public boolean addBean(Object o, boolean managed) + public boolean addBean(LifeCycle o, boolean managed) { if (contains(o)) return false; - Bean b = new Bean(o); - b._managed=managed; + Bean b = new Bean(o,managed); _beans.add(b); - if (o instanceof LifeCycle) + // Start the bean if we are started + if (managed && _started) { - LifeCycle l=(LifeCycle)o; - - // Start the bean if we are started - if (managed && _started) + try { - try - { - l.start(); - } - catch(Exception e) - { - throw new RuntimeException (e); - } + o.start(); + } + catch(Exception e) + { + throw new RuntimeException(e); } } return true; @@ -201,35 +196,20 @@ */ public Collection<Object> getBeans() { - List<Object> beans = new ArrayList<Object>(); - beans.addAll(_beans); +// return new ArrayList<Object>(_beans); + ArrayList<Object> beans = new ArrayList<Object>(); + for (Bean b:_beans) { + beans.add(b._bean); + } return beans; } /* ------------------------------------------------------------ */ - /** Get dependent beans of a specific class. - * If more than one bean of the type exist, the first is returned. - * @see #addBean(Object) - * @param clazz - * @return bean or null - */ - public <T> T getBean(Class<T> clazz) - { - for (Bean b:_beans) - { - if (clazz.isInstance(b._bean)) - return (T)b._bean; - } - - return null; - } - - /* ------------------------------------------------------------ */ /** * Remove an associated bean. */ - public boolean removeBean (Object o) + public boolean removeBean (LifeCycle o) { Iterator<Bean> i = _beans.iterator(); while(i.hasNext()) @@ -244,26 +224,11 @@ return false; } - /* ------------------------------------------------------------ */ - public void dumpStdErr() - { - try - { - dump(System.err,""); - } - catch (IOException e) - { - LOG.warn("",e); - } - } - - /* ------------------------------------------------------------ */ public String dump() { return dump(this); } - /* ------------------------------------------------------------ */ public static String dump(Dumpable dumpable) { StringBuilder b = new StringBuilder(); @@ -278,19 +243,16 @@ return b.toString(); } - /* ------------------------------------------------------------ */ - public void dump(Appendable out) throws IOException + private void dump(Appendable out) throws IOException { dump(out,""); } - /* ------------------------------------------------------------ */ - protected void dumpThis(Appendable out) throws IOException + private void dumpThis(Appendable out) throws IOException { out.append(String.valueOf(this)).append(" - ").append(getState()).append("\n"); } - /* ------------------------------------------------------------ */ public static void dumpObject(Appendable out,Object o) throws IOException { try @@ -306,7 +268,6 @@ } } - /* ------------------------------------------------------------ */ public void dump(Appendable out,String indent) throws IOException { dumpThis(out); @@ -334,7 +295,6 @@ out.append(indent).append(" |\n"); } - /* ------------------------------------------------------------ */ public static void dump(Appendable out,String indent,Collection<?>... collections) throws IOException { if (collections.length==0)