I tried that and I still couldn't get to a clean state. My later email
describes my variational adventures with the Spring configuration
alternative.

> -----Original Message-----
> From: Daniel Kulp [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, October 02, 2007 6:09 PM
> To: Benson Margulies
> Cc: cxf-user@incubator.apache.org
> Subject: Re: Spring, bus, confusion
> 
> 
> Well, I guess my reaction is that anything you do in "setup" requires
an
> explicit thing to reverse it in the tearDown.   If you add a handler,
> you should remove it in tearDown.
> 
> Dan
> 
> 
> On Monday 01 October 2007, Benson Margulies wrote:
> > Dan,
> >
> > In the current experiment, I'm adding a handler to the server via
> > explicit Java code, not spring wiring.
> >
> > Nothing I am adding is exactly a context, it is just a resource
> > handler.
> >
> > Perhaps it needs a 'stop', too.
> >
> > I could argue that there should be some way to say, 'make me a
> > self-contained universe using no static variables.'
> >
> > > -----Original Message-----
> > > From: Daniel Kulp [mailto:[EMAIL PROTECTED]
> > > Sent: Monday, October 01, 2007 2:07 PM
> > > To: cxf-user@incubator.apache.org
> > > Cc: Benson Margulies
> > > Subject: Re: Spring, bus, confusion
> > >
> > >
> > > Benson,
> > >
> > > The Jetty servers are static, not per bus.   The main reason is if
> > > you two buss's in your application that have services that need to
> > > be deployed on the same port (like port 80), we can do that
without
> > > port
> >
> > in
> >
> > > use issues.
> > >
> > > When you call bus.shutdown, it will only shutdown the port if
there
> >
> > are 0
> >
> > > contexts left (supposedly).    Thus, before you call shutdown, you
> >
> > would
> >
> > > need to unregister any extra contexts created in the @Before.
> > >
> > > Hmm....   are you adding the contexts via spring?   That might get
> >
> > more
> >
> > > involved.   We might not have added a
> > > bean.setDestroyMethodName(...); type thing for the extra contexts
to
> > > remove them.   Looking....
> > >
> > > The method:
> > > public void shutdown()
> > > certainly doesn't remove the handlers.
> > >
> > > Definitely some bugs in that area.  :-(
> > >
> > > Dan
> > >
> > > On Monday 01 October 2007, Benson Margulies wrote:
> > > > The server's list of handlers still has the extra handler. Did
you
> > > > look at the source code I sent? The @Before method inserts an
> > > > extra handler into the server. The @After calls bus.shutdown.
> > > >
> > > > The next time we run the @Before, we should be restarting from
> > > > complete zero, we are rereading the beans into a new app
context.
> >
> > Yet,
> >
> > > > the server on the bus still somehow has the extra handler.
> > > >
> > > > > -----Original Message-----
> > > > > From: Willem2 [mailto:[EMAIL PROTECTED]
> > > > > Sent: Monday, October 01, 2007 11:32 AM
> > > > > To: cxf-user@incubator.apache.org
> > > > > Subject: RE: Spring, bus, confusion
> > > > >
> > > > >
> > > > > What do you mean the server's configuration is there?
> > > > >
> > > > > Do you mean the jetty server is still there ?
> > > > >
> > > > > Willem.
> > > > >
> > > > > bmargulies wrote:
> > > > > > I tried that. I still found my configuration changes to the
> >
> > server
> >
> > > > > > 'already present' when I create the next application
context.
> > > > > >
> > > > > >> -----Original Message-----
> > > > > >> From: Willem2 [mailto:[EMAIL PROTECTED]
> > > > > >> Sent: Monday, October 01, 2007 9:11 AM
> > > > > >> To: cxf-user@incubator.apache.org
> > > > > >> Subject: Re: Spring, bus, confusion
> > > > > >>
> > > > > >>
> > > > > >> Hi Benson,
> > > > > >>
> > > > > >> You can call bus.shutdown(true) in @After to tear down the
> >
> > server
> >
> > > > and
> > > >
> > > > > > the
> > > > > >
> > > > > >> jetty engine.
> > > > > >>
> > > > > >>
> > > > > >> Willem.
> > > > > >>
> > > > > >> bmargulies wrote:
> > > > > >> > Please forgive me for pasting a lot of code into here.
> > > > > >> >
> > > > > >> > I'm trying to set up a unit test framework where the
> > > > > >> > fixture sets
> > > >
> > > > up
> > > >
> > > > > >> > jetty with an endpoint and some static content. So, as
you
> >
> > will
> >
> > > > see,
> > > >
> > > > > > I
> > > > > >
> > > > > >> > have an @Before that sets everything up, and an @After
that
> > > > > >> > tries
> > > >
> > > > to
> > > >
> > > > > >> > tear everything down.
> > > > > >> >
> > > > > >> > However, when the @Before runs the second time, things
sure
> > > > > >> > look
> > > >
> > > > as
> > > >
> > > > > > if
> > > > > >
> > > > > >> > they have all hung around from the first time around.
> > > > > >> >
> > > > > >> > I bet that there's something simple about the bus that
I'm
> > > >
> > > > missing,
> > > >
> > > > > >> > namely, that the cxf bus exists independently of my app
> > > > > >> > context,
> > > >
> > > > and
> > > >
> > > > > > I
> > > > > >
> > > > > >> > have to \do something/ to tear \it/ down.
> > > > > >> >
> > > > > >> >
> > > > > >> >
> > > > > >> >
> > > > > >> >
> > > > > >> > package com.basistech.ws;
> > > > > >> >
> > > > > >> > import java.io.File;
> > > > > >> > import java.net.URL;
> > > > > >> >
> > > > > >> > import org.apache.cxf.Bus;
> > > > > >> > import org.apache.cxf.endpoint.ServerImpl;
> > > > > >> > import org.apache.cxf.endpoint.ServerRegistry;
> > > > > >> > import
> > > > > >> > org.apache.cxf.transport.http_jetty.JettyHTTPDestination;
> > > > > >> > import
> > > > > >> >
org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine;
> > > > > >> > import org.junit.After;
> > > > > >> > import org.junit.Before;
> > > > > >> > import org.mortbay.jetty.Handler;
> > > > > >> > import org.mortbay.jetty.Server;
> > > > > >> > import
org.mortbay.jetty.handler.ContextHandlerCollection;
> > > > > >> > import org.mortbay.jetty.handler.HandlerList;
> > > > > >> > import org.mortbay.jetty.handler.ResourceHandler;
> > > > > >> > import org.mortbay.resource.FileResource;
> > > > > >> > import
> > > > > >
> > > > > >
org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
> > > > > >
> > > > > >> > import
> > > > > >
> > > > > >
org.springframework.context.support.GenericApplicationContext;
> > > > > >
> > > > > >> > import org.springframework.core.io.ClassPathResource;
> > > > > >> > import org.springframework.core.io.Resource;
> > > > > >> >
> > > > > >> > /**
> > > > > >> >  * Class used to launch a CXF/jetty web service using the
> > > >
> > > > embedded
> > > >
> > > > > > jetty
> > > > > >
> > > > > >> > in CXF.
> > > > > >> >  *
> > > > > >> >  */
> > > > > >> > public abstract class AbstractTestService {
> > > > > >> >
> > > > > >> >     protected abstract Resource
> > > > > >> > getServiceDefinitionBeans(); protected abstract String
> > > > > >> > getStaticContentPath(); protected
GenericApplicationContext
> > > > > >> > applicationContext; protected Bus bus;
> > > > > >> >
> > > > > >> >     private void readBeans(Resource beanResource) {
> > > > > >> >         XmlBeanDefinitionReader reader = new
> > > > > >> > XmlBeanDefinitionReader(applicationContext);
> > > > > >> >         reader.loadBeanDefinitions(beanResource);
> > > > > >> >     }
> > > > > >> >
> > > > > >> >     @Before
> > > > > >> >     public void launchService() throws Exception {
> > > > > >> >         applicationContext = new
> > > > > >> > GenericApplicationContext(); readBeans(new
> > > > > >> > ClassPathResource("META-INF/cxf/cxf.xml")); readBeans(new
> > > > > >> >
ClassPathResource("META-INF/cxf/cxf-extension-soap.xml"));
> > > > > >> >         readBeans(new
> > > > > >> >
ClassPathResource("META-INF/cxf/cxf-extension-http.xml"));
> > > > > >> >         readBeans(new
> >
> > ClassPathResource("META-INF/cxf/cxf-extension-http-jetty.xml"))
> >
> > > > > >> >; readBeans(getServiceDefinitionBeans());
> > > > > >> >         applicationContext.refresh();
> > > > > >> >
> > > > > >> >         bus = (Bus)applicationContext.getBean("cxf");
> > > > > >> >         ServerRegistry sr=
> > > >
> > > > bus.getExtension(ServerRegistry.class);
> > > >
> > > > > >> >         ServerImpl si = (ServerImpl)
> > > > > >> > sr.getServers().get(0); JettyHTTPDestination jhd =
> > > > > >> > (JettyHTTPDestination)si.getDestination();
> > > > > >> >         JettyHTTPServerEngine engine =
> >
> > (JettyHTTPServerEngine)
> >
> > > > > >> > jhd.getEngine();
> > > > > >> >         Server server = engine.getServer();
> > > > > >> >         Handler serverHandler = server.getHandler();
> > > > > >> >         ContextHandlerCollection contextHandlerCollection
=
> > > > > >> > (ContextHandlerCollection)serverHandler;
> > > > > >> >         HandlerList handlerList = new HandlerList();
> > > > > >> >         ResourceHandler resourceHandler = new
> > > > > >> > ResourceHandler();
handlerList.addHandler(resourceHandler);
> > > > > >> >         handlerList.addHandler(contextHandlerCollection);
> > > > > >> >         server.setHandler(handlerList);
> > > > > >> >         handlerList.start();
> > > > > >> >         File staticContentFile = new
> > > >
> > > > File(getStaticContentPath());
> > > >
> > > > > >> >         URL targetURL = new URL("file://" +
> > > > > >> > staticContentFile.getCanonicalPath());
> > > > > >> >         FileResource fileResource = new
> > > > > >> > FileResource(targetURL);
> > > > > >> > resourceHandler.setBaseResource(fileResource); }
> > > > > >> >
> > > > > >> >     @After
> > > > > >> >     public void shutdownService() throws Exception {
> > > > > >> >         bus = (Bus)applicationContext.getBean("cxf");
> > > > > >> >         ServerRegistry sr =
> > > >
> > > > bus.getExtension(ServerRegistry.class);
> > > >
> > > > > >> >         ServerImpl si = (ServerImpl)
> > > > > >> > sr.getServers().get(0); JettyHTTPDestination jhd =
> > > > > >> > (JettyHTTPDestination)si.getDestination();
> > > > > >> >         JettyHTTPServerEngine e = (JettyHTTPServerEngine)
> > > > > >> > jhd.getEngine();
> > > > > >> >         e.getServer().stop();
> > > > > >> >         applicationContext.destroy();
> > > > > >> >     }
> > > > > >> >
> > > > > >> > }
> > > > > >>
> > > > > >> --
> > > > > >> View this message in context:
> > > >
> > > > http://www.nabble.com/Spring%2C-bus%2C-
> > > >
> > > > > >> confusion-tf4545841.html#a12978917
> > > > > >> Sent from the cxf-user mailing list archive at Nabble.com.
> > > > >
> > > > > --
> > > > > View this message in context:
> > > > > http://www.nabble.com/Spring%2C-bus%2C-
> > > > > confusion-tf4545841.html#a12981449
> > > > > Sent from the cxf-user mailing list archive at Nabble.com.
> > >
> > > --
> > > J. Daniel Kulp
> > > Principal Engineer
> > > IONA
> > > P: 781-902-8727    C: 508-380-7194
> > > [EMAIL PROTECTED]
> > > http://www.dankulp.com/blog
> 
> 
> 
> --
> J. Daniel Kulp
> Principal Engineer
> IONA
> P: 781-902-8727    C: 508-380-7194
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog

Reply via email to