Search in sources :

Example 21 with JavaInterface

use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.

the class InterfaceMapper method map.

public JavaInterface map(InterfaceInfo interfaceInfo) {
    JavaInterface intf = new JavaInterface();
    String namespace = interfaceInfo.getName().getNamespaceURI();
    String packageName = ProcessorUtil.parsePackageName(namespace, context.mapPackageName(namespace));
    String loc = (String) context.get(ToolConstants.CFG_WSDLLOCATION);
    if (loc == null) {
        loc = (String) context.get(ToolConstants.CFG_WSDLURL);
    }
    String webServiceName = interfaceInfo.getName().getLocalPart();
    intf.setWebServiceName(webServiceName);
    intf.setName(NameUtil.mangleNameToClassName(webServiceName));
    intf.setNamespace(namespace);
    intf.setPackageName(packageName);
    intf.setLocation(loc);
    return intf;
}
Also used : JavaInterface(org.apache.cxf.tools.common.model.JavaInterface)

Example 22 with JavaInterface

use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.

the class XmlSeeAlsoAnnotatorTest method testAddXmlSeeAlsoAnnotation.

@Test
public void testAddXmlSeeAlsoAnnotation() throws Exception {
    JavaInterface intf = new JavaInterface();
    assertFalse(intf.getImports().hasNext());
    ClassCollector collector = new ClassCollector();
    collector.getTypesPackages().add(ObjectFactory.class.getPackage().getName());
    intf.annotate(new XmlSeeAlsoAnnotator(collector));
    Iterator<String> iter = intf.getImports();
    assertEquals("javax.xml.bind.annotation.XmlSeeAlso", iter.next());
    assertEquals("@XmlSeeAlso({" + ObjectFactory.class.getName() + ".class})", intf.getAnnotations().iterator().next().toString());
}
Also used : JavaInterface(org.apache.cxf.tools.common.model.JavaInterface) ObjectFactory(org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.annotator.types.ObjectFactory) ClassCollector(org.apache.cxf.tools.util.ClassCollector) Test(org.junit.Test)

Example 23 with JavaInterface

use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.

the class InterfaceMapperTest method testMapWithUniqueWsdlLoc.

@Test
public void testMapWithUniqueWsdlLoc() throws Exception {
    InterfaceInfo interfaceInfo = new InterfaceInfo(new ServiceInfo(), new QName("http://apache.org/hello_world_soap_http", "interfaceTest"));
    ToolContext context = new ToolContext();
    context.put(ToolConstants.CFG_WSDLURL, "http://localhost/?wsdl");
    context.put(ToolConstants.CFG_WSDLLOCATION, "/foo/blah.wsdl");
    JavaInterface intf = new InterfaceMapper(context).map(interfaceInfo);
    assertNotNull(intf);
    assertEquals("interfaceTest", intf.getWebServiceName());
    assertEquals("InterfaceTest", intf.getName());
    assertEquals("http://apache.org/hello_world_soap_http", intf.getNamespace());
    assertEquals("org.apache.hello_world_soap_http", intf.getPackageName());
    assertEquals("/foo/blah.wsdl", intf.getLocation());
}
Also used : ServiceInfo(org.apache.cxf.service.model.ServiceInfo) JavaInterface(org.apache.cxf.tools.common.model.JavaInterface) QName(javax.xml.namespace.QName) ToolContext(org.apache.cxf.tools.common.ToolContext) InterfaceInfo(org.apache.cxf.service.model.InterfaceInfo) Test(org.junit.Test)

Example 24 with JavaInterface

use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.

the class JAXWSContainerTest method testSuppressCodeGen.

@Test
public void testSuppressCodeGen() {
    try {
        JAXWSContainer container = new JAXWSContainer(null);
        ToolContext context = new ToolContext();
        // Do not generate any artifacts, we just want the code model.
        context.put(ToolConstants.CFG_SUPPRESS_GEN, "suppress");
        // Where to put the generated source code
        context.put(ToolConstants.CFG_OUTPUTDIR, output.getCanonicalPath());
        context.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/hello_world.wsdl"));
        // Delegate jaxb to generate the type classes
        context.put(DataBindingProfile.class, PluginLoader.getInstance().getDataBindingProfile("jaxb"));
        context.put(FrontEndProfile.class, PluginLoader.getInstance().getFrontEndProfile("jaxws"));
        container.setContext(context);
        // Now shoot
        container.execute();
        // At this point you should be able to get the
        // SEI/Service(Client stub)/Exception classes/Types classes
        assertNotNull(output.list());
        assertEquals(0, output.list().length);
        // Now you can get the JavaModel from the context.
        Map<QName, JavaModel> map = CastUtils.cast((Map<?, ?>) context.get(WSDLToJavaProcessor.MODEL_MAP));
        JavaModel javaModel = map.get(new QName("http://cxf.apache.org/w2j/hello_world_soap_http", "SOAPService"));
        assertNotNull(javaModel);
        Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
        assertEquals(1, interfaces.size());
        JavaInterface intf = interfaces.values().iterator().next();
        String interfaceName = intf.getName();
        assertEquals("Greeter", interfaceName);
        assertEquals("http://cxf.apache.org/w2j/hello_world_soap_http", intf.getNamespace());
        assertEquals("org.apache.cxf.w2j.hello_world_soap_http", intf.getPackageName());
        List<JavaMethod> methods = intf.getMethods();
        assertEquals(6, methods.size());
        Boolean methodSame = false;
        JavaMethod m1 = null;
        for (JavaMethod m2 : methods) {
            if (m2.getName().equals("testDocLitFault")) {
                methodSame = true;
                m1 = m2;
                break;
            }
        }
        assertTrue(methodSame);
        assertNotNull(m1);
        assertEquals(2, m1.getExceptions().size());
        List<String> names = new ArrayList<>();
        for (JavaException exc : m1.getExceptions()) {
            names.add(exc.getName());
        }
        assertTrue("BadRecordLitFault", names.contains("BadRecordLitFault"));
        assertTrue("NoSuchCodeLitFault", names.contains("NoSuchCodeLitFault"));
        String address = null;
        for (JavaServiceClass service : javaModel.getServiceClasses().values()) {
            if ("SOAPService_Test1".equals(service.getName())) {
                continue;
            }
            List<JavaPort> ports = service.getPorts();
            for (JavaPort port : ports) {
                if (interfaceName.equals(port.getPortType())) {
                    address = port.getBindingAdress();
                    break;
                }
            }
            if (!"".equals(address)) {
                break;
            }
        }
        assertEquals("http://localhost:9000/SoapContext/SoapPort", address);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : JavaInterface(org.apache.cxf.tools.common.model.JavaInterface) JavaException(org.apache.cxf.tools.common.model.JavaException) JavaServiceClass(org.apache.cxf.tools.common.model.JavaServiceClass) QName(javax.xml.namespace.QName) ArrayList(java.util.ArrayList) JAXWSContainer(org.apache.cxf.tools.wsdlto.frontend.jaxws.JAXWSContainer) ToolContext(org.apache.cxf.tools.common.ToolContext) URISyntaxException(java.net.URISyntaxException) JavaException(org.apache.cxf.tools.common.model.JavaException) JavaPort(org.apache.cxf.tools.common.model.JavaPort) JavaModel(org.apache.cxf.tools.common.model.JavaModel) JavaMethod(org.apache.cxf.tools.common.model.JavaMethod) Test(org.junit.Test)

Example 25 with JavaInterface

use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.

the class JAXWSContainerTest method testCodeGen.

@Test
public void testCodeGen() {
    try {
        JAXWSContainer container = new JAXWSContainer(null);
        ToolContext context = new ToolContext();
        // By default we only generate the SEI/Types/Exception classes/Service Class(client stub)
        // Uncomment to generate the impl class
        // context.put(ToolConstants.CFG_IMPL, "impl");
        // Uncomment to compile the generated classes
        // context.put(ToolConstants.CFG_COMPILE, ToolConstants.CFG_COMPILE);
        // Where to put the compiled classes
        // context.put(ToolConstants.CFG_CLASSDIR, output.getCanonicalPath() + "/classes");
        // Where to put the generated source code
        context.put(ToolConstants.CFG_OUTPUTDIR, output.getCanonicalPath());
        context.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/hello_world.wsdl"));
        // Delegate jaxb to generate the type classes
        context.put(DataBindingProfile.class, PluginLoader.getInstance().getDataBindingProfile("jaxb"));
        context.put(FrontEndProfile.class, PluginLoader.getInstance().getFrontEndProfile("jaxws"));
        // In case you want to remove some generators
        List<String> generatorNames = Arrays.asList(new String[] { ToolConstants.CLT_GENERATOR, ToolConstants.SVR_GENERATOR, ToolConstants.IMPL_GENERATOR, ToolConstants.ANT_GENERATOR, ToolConstants.SERVICE_GENERATOR, ToolConstants.FAULT_GENERATOR, ToolConstants.SEI_GENERATOR });
        FrontEndProfile frontend = context.get(FrontEndProfile.class);
        List<FrontEndGenerator> generators = frontend.getGenerators();
        for (FrontEndGenerator generator : generators) {
            assertTrue(generatorNames.contains(generator.getName()));
        }
        container.setContext(context);
        // Now shoot
        container.execute();
        // At this point you should be able to get the
        // SEI/Service(Client stub)/Exception classes/Types classes
        assertNotNull(output.list());
        assertEquals(1, output.list().length);
        assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/Greeter.java").exists());
        assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/SOAPService.java").exists());
        assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/NoSuchCodeLitFault.java").exists());
        assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/types/SayHi.java").exists());
        assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/types/GreetMe.java").exists());
        // Now you can get the JavaModel from the context.
        JavaModel javaModel = context.get(JavaModel.class);
        Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
        assertEquals(1, interfaces.size());
        JavaInterface intf = interfaces.values().iterator().next();
        assertEquals("http://cxf.apache.org/w2j/hello_world_soap_http", intf.getNamespace());
        assertEquals("Greeter", intf.getName());
        assertEquals("org.apache.cxf.w2j.hello_world_soap_http", intf.getPackageName());
        List<JavaMethod> methods = intf.getMethods();
        assertEquals(6, methods.size());
        Boolean methodSame = false;
        for (JavaMethod m1 : methods) {
            if (m1.getName().equals("testDocLitFault")) {
                methodSame = true;
                break;
            }
        }
        assertTrue(methodSame);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : JavaInterface(org.apache.cxf.tools.common.model.JavaInterface) JAXWSContainer(org.apache.cxf.tools.wsdlto.frontend.jaxws.JAXWSContainer) ToolContext(org.apache.cxf.tools.common.ToolContext) URISyntaxException(java.net.URISyntaxException) JavaException(org.apache.cxf.tools.common.model.JavaException) FrontEndProfile(org.apache.cxf.tools.wsdlto.core.FrontEndProfile) JavaModel(org.apache.cxf.tools.common.model.JavaModel) FrontEndGenerator(org.apache.cxf.tools.common.FrontEndGenerator) JavaMethod(org.apache.cxf.tools.common.model.JavaMethod) File(java.io.File) Test(org.junit.Test)

Aggregations

JavaInterface (org.apache.cxf.tools.common.model.JavaInterface)33 JavaModel (org.apache.cxf.tools.common.model.JavaModel)20 QName (javax.xml.namespace.QName)11 ServiceInfo (org.apache.cxf.service.model.ServiceInfo)8 JavaMethod (org.apache.cxf.tools.common.model.JavaMethod)7 ArrayList (java.util.ArrayList)6 Message (org.apache.cxf.common.i18n.Message)6 JAnnotation (org.apache.cxf.tools.common.model.JAnnotation)6 JAnnotationElement (org.apache.cxf.tools.common.model.JAnnotationElement)6 JavaPort (org.apache.cxf.tools.common.model.JavaPort)6 InterfaceInfo (org.apache.cxf.service.model.InterfaceInfo)5 JavaException (org.apache.cxf.tools.common.model.JavaException)5 JavaServiceClass (org.apache.cxf.tools.common.model.JavaServiceClass)5 OperationInfo (org.apache.cxf.service.model.OperationInfo)4 ToolContext (org.apache.cxf.tools.common.ToolContext)4 Test (org.junit.Test)4 HashMap (java.util.HashMap)3 ToolException (org.apache.cxf.tools.common.ToolException)3 JAXWSBinding (org.apache.cxf.tools.wsdlto.frontend.jaxws.customization.JAXWSBinding)3 GenericArrayType (java.lang.reflect.GenericArrayType)2