/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.cxf.systest.jaxws; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.Vector; import javax.annotation.Resource; import javax.jws.WebService; import javax.xml.ws.Holder; import javax.xml.ws.WebServiceContext; import org.apache.cxf.annotations.FastInfoset; import org.apache.cxf.annotations.GZIP; import org.apache.cxf.annotations.WSDLDocumentation; import org.apache.cxf.message.Exchange; import org.apache.cxf.systest.jaxws.types.Bar; import org.apache.cxf.systest.jaxws.types.BarImpl; @WebService(endpointInterface = "org.apache.cxf.systest.jaxws.DocLitWrappedCodeFirstService", serviceName = "DocLitWrappedCodeFirstService", portName = "DocLitWrappedCodeFirstServicePort", targetNamespace = "http://cxf.apache.org/systest/jaxws/DocLitWrappedCodeFirstService") @WSDLDocumentation("DocLitWrappedCodeFirstService impl") @GZIP(threshold = 10) @FastInfoset(force = true) public class DocLitWrappedCodeFirstServiceImpl implements DocLitWrappedCodeFirstService { public static final String DATA[] = new String[] {"string1", "string2", "string3"}; @Resource WebServiceContext context; public DocLitWrappedCodeFirstServiceImpl() { } public int thisShouldNotBeInTheWSDL(int i) { return i; } public String[] arrayOutput() { if (context == null) { throw new RuntimeException("No CONTEXT!!!"); } return DATA; } public Vector<String> listOutput() { if (context == null) { throw new RuntimeException("No CONTEXT!!!"); } return new Vector<String>(Arrays.asList(DATA)); } public String arrayInput(String[] inputs) { if (context == null) { throw new RuntimeException("No CONTEXT!!!"); } StringBuilder buf = new StringBuilder(); for (String s : inputs) { buf.append(s); } return buf.toString(); } public int[] echoIntArray(int[] ar, Exchange ex) { if (context == null) { throw new RuntimeException("No CONTEXT!!!"); } return ar; } public String listInput(List<String> inputs) { if (context == null) { throw new RuntimeException("No CONTEXT!!!"); } StringBuilder buf = new StringBuilder(); if (inputs != null) { for (String s : inputs) { buf.append(s); } } return buf.toString(); } public String multiListInput(List<String> inputs1, List<String> inputs2, String x, int y) { if (context == null) { throw new RuntimeException("No CONTEXT!!!"); } StringBuilder buf = new StringBuilder(); for (String s : inputs1) { buf.append(s); } for (String s : inputs2) { buf.append(s); } if (x == null) { buf.append("<null>"); } else { buf.append(x); } buf.append(Integer.toString(y)); return buf.toString(); } public String multiInOut(Holder<String> a, Holder<String> b, Holder<String> c, Holder<String> d, Holder<String> e, Holder<String> f, Holder<String> g) { String ret = b.value + d.value + e.value; a.value = "a"; b.value = "b"; c.value = "c"; d.value = "d"; e.value = "e"; f.value = "f"; g.value = "g"; return ret; } public void singleInOut(Holder<Boolean> created) { if (created.value == null) { created.value = false; } else { created.value = true; } } public List<Foo> listObjectOutput() { Foo a = new Foo(); a.setName("a"); Foo b = new Foo(); b.setName("b"); return Arrays.asList(a, b); } public Set<Foo> getFooSet() { return new LinkedHashSet<Foo>(listObjectOutput()); } public List<Foo[]> listObjectArrayOutput() { Foo a = new Foo(); a.setName("a"); Foo b = new Foo(); b.setName("b"); Foo c = new Foo(); c.setName("c"); Foo d = new Foo(); d.setName("d"); return Arrays.asList(new Foo[] {a, b}, new Foo[] {c, d}); } public int throwException(int i) throws ServiceTestFault, CustomException, ComplexException { switch (i) { case -1: throw new ServiceTestFault("Hello!"); case -2: { CustomException cex = new CustomException("CE: " + i); cex.setA("A Value"); cex.setB("B Value"); throw cex; } case -3: { ComplexException ex = new ComplexException("Throw user fault -3"); ex.setReason("Test"); ComplexException.MyBean bean = new ComplexException.MyBean(); bean.setName("Marco"); ex.setBeans(new ComplexException.MyBean[] {bean}); ex.setInts(new int[] {1, 2, 3}); throw ex; } case -4: { throw new RuntimeException("RuntimeException!!"); } default: throw new ServiceTestFault(new ServiceTestFault.ServiceTestDetails(i)); } } public String echo(String msg) { return msg; } public int echoIntDifferentWrapperName(int i) { return i; } public Bar createBar(String val) { return new BarImpl(val); } public boolean listObjectIn(Holder<List<Foo[]>> foos) { return false; } public void doOneWay() { try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String echoStringNotReallyAsync(String s) { return s; } public String doFooList(List<Foo> fooList) { return "size: " + fooList.size(); } public String outOnly(Holder<String> out1, Holder<String> out2) { out1.value = "out1"; out2.value = "out2"; return "hello"; } public Foo modifyFoo(Foo f) { if ("DoNoName".equals(f.getName())) { f.setNameIgnore("NoName"); } return f; } public CXF2411Result<CXF2411SubClass> doCXF2411() { CXF2411Result<CXF2411SubClass> ret = new CXF2411Result<CXF2411SubClass>(); CXF2411SubClass content[] = new CXF2411SubClass[1]; content[0] = new CXF2411SubClass(); ret.setContent(content); return ret; } public String doBug2692(String name) { return name; } }