Hi Benson,

I assume you use mvn to run the test, so would you please check your
configuration of maven-surefire-plugin, ensure that the <forkmode> property
is "pertest".
Best Regards
Freeman


On 10/1/07, Benson Margulies <[EMAIL PROTECTED]> 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.
>
>

Reply via email to