use of org.apache.cxf.jaxb.JAXBWrapperHelper in project cxf by apache.
the class WrapperNamespaceClassGeneratorTest method testGeneratedFirst.
@org.junit.Test
public void testGeneratedFirst() throws Exception {
JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(AddNumbers2Impl.class);
JaxWsServiceFactoryBean jaxwsFac = new JaxWsServiceFactoryBean(implInfo);
Bus bus = BusFactory.getDefaultBus();
jaxwsFac.setBus(bus);
Capture c = new Capture();
bus.setExtension(c, GeneratedClassClassLoaderCapture.class);
Service service = jaxwsFac.create();
ServiceInfo serviceInfo = service.getServiceInfos().get(0);
InterfaceInfo interfaceInfo = serviceInfo.getInterface();
OperationInfo inf = interfaceInfo.getOperations().iterator().next();
Class<?> requestClass = inf.getInput().getMessagePart(0).getTypeClass();
// Create request wrapper Object
List<String> partNames = Arrays.asList(new String[] { "arg0" });
List<String> elTypeNames = Arrays.asList(new String[] { "list" });
List<Class<?>> partClasses = Arrays.asList(new Class<?>[] { List.class });
// generate class and store it to class loader
new JAXBDataBinding().createWrapperHelper(requestClass, null, partNames, elTypeNames, partClasses);
// now no more generation is allowed
WrapperHelperClassLoader wrapperHelperClassLoader = new WrapperHelperClassLoader(bus);
GeneratedClassClassLoader.TypeHelperClassLoader cl = wrapperHelperClassLoader.getClassLoader();
c.restore(cl);
bus.setExtension(wrapperHelperClassLoader, WrapperHelperCreator.class);
WrapperHelper wh = new JAXBDataBinding().createWrapperHelper(requestClass, null, partNames, elTypeNames, partClasses);
assertFalse("Precompiled class not loaded", wh instanceof JAXBWrapperHelper);
}
Aggregations