View Javadoc

1   package org.codehaus.xfire.picocontainer.test;
2   
3   import org.codehaus.xfire.picocontainer.PicoObjectServiceFactory;
4   import org.codehaus.xfire.service.ServiceFactory;
5   import org.codehaus.xfire.service.binding.MessageBindingProvider;
6   import org.codehaus.xfire.soap.SoapConstants;
7   import org.codehaus.xfire.test.AbstractXFireTest;
8   import org.picocontainer.MutablePicoContainer;
9   import org.picocontainer.defaults.DefaultPicoContainer;
10  import org.picocontainer.defaults.ObjectReference;
11  import org.picocontainer.defaults.SimpleReference;
12  
13  public class PicoXFireTest
14      extends AbstractXFireTest
15  {
16  
17      private PicoObjectServiceFactory factory;
18  
19      private ObjectReference picoReference = new SimpleReference();
20  
21      public void setUp()
22          throws Exception
23      {
24          super.setUp();
25          picoReference.set(null);
26      }
27  
28      public ServiceFactory getServiceFactory()
29      {
30          if (factory == null)
31          {
32              PicoObjectServiceFactory ofactory = new PicoObjectServiceFactory(picoReference,
33                      getXFire().getTransportManager(), new MessageBindingProvider());
34  
35              ofactory.setStyle(SoapConstants.STYLE_MESSAGE);
36  
37              factory = ofactory;
38          }
39  
40          return factory;
41      }
42      
43      
44  
45      public void setServiceFactory(ServiceFactory value)
46      {
47          if (value instanceof PicoObjectServiceFactory) {
48              factory = (PicoObjectServiceFactory) value;
49              super.setServiceFactory(value);
50              return;
51          }
52          
53          fail("Service factory on this kind of test must be an PicoObjectServiceFactory.");
54      }
55  
56      public MutablePicoContainer getPico()
57      {
58          if (picoReference.get() == null)
59          {
60              MutablePicoContainer pico = new DefaultPicoContainer();
61              picoReference.set(pico);
62              return pico;
63          }
64  
65          return (MutablePicoContainer) picoReference.get();
66      }
67      
68      public void setPico(MutablePicoContainer value) {
69          picoReference.set(value);
70      }
71  
72  }