Re: Spring, bus, confusion

2007-10-01 Thread Willem2

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.



RE: Spring, bus, confusion

2007-10-01 Thread Benson Margulies
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://" +
> 

RE: Spring, bus, confusion

2007-10-01 Thread Willem2

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();
>> > Con

RE: Spring, bus, confusion

2007-10-01 Thread Benson Margulies
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&q

Re: Spring, bus, confusion

2007-10-01 Thread Freeman Fang
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  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();
> >

Re: Spring, bus, confusion

2007-10-01 Thread Daniel Kulp

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;
> > >>

RE: Spring, bus, confusion

2007-10-01 Thread Benson Margulies
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.
> > > >> >
> > > >> >
> > > >> >

RE: Spring, bus, confusion

2007-10-01 Thread Benson Margulies
No maven. These are tests in my product, run from Eclipse or ant.

> -Original Message-
> From: Freeman Fang [mailto:[EMAIL PROTECTED]
> Sent: Monday, October 01, 2007 11:48 AM
> To: cxf-user@incubator.apache.org
> Subject: Re: Spring, bus, confusion
> 
> 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 
> 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;
> >

Re: Spring, bus, confusion

2007-10-02 Thread Daniel Kulp

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
> > >

RE: Spring, bus, confusion

2007-10-02 Thread Benson Margulies
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
> >