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 }