use of org.apache.cxf.service.model.ServiceInfo in project Activiti by Activiti.
the class CxfWSDLImporter method importFrom.
public void importFrom(String url) {
this.wsServices.clear();
this.wsOperations.clear();
this.structures.clear();
this.wsdlLocation = url;
try {
Bus bus = BusFactory.getDefaultBus();
final Enumeration<URL> xjcBindingUrls = Thread.currentThread().getContextClassLoader().getResources(JAXB_BINDINGS_RESOURCE);
if (xjcBindingUrls.hasMoreElements()) {
final URL xjcBindingUrl = xjcBindingUrls.nextElement();
if (xjcBindingUrls.hasMoreElements()) {
throw new ActivitiException("Several JAXB binding definitions found for activiti-cxf: " + JAXB_BINDINGS_RESOURCE);
}
DynamicClientFactory.newInstance(bus).createClient(url, Arrays.asList(new String[] { xjcBindingUrl.toString() }));
WSDLManager wsdlManager = bus.getExtension(WSDLManager.class);
Definition def = wsdlManager.getDefinition(url);
WSDLServiceBuilder builder = new WSDLServiceBuilder(bus);
List<ServiceInfo> services = builder.buildServices(def);
for (ServiceInfo service : services) {
WSService wsService = this.importService(service);
this.wsServices.put(this.namespace + wsService.getName(), wsService);
}
if (def != null && def.getTypes() != null) {
this.importTypes(def.getTypes());
}
} else {
throw new ActivitiException("The JAXB binding definitions are not found for activiti-cxf: " + JAXB_BINDINGS_RESOURCE);
}
} catch (WSDLException e) {
e.printStackTrace();
} catch (IOException e) {
throw new ActivitiException("Error retrieveing the JAXB binding definitions", e);
}
}
use of org.apache.cxf.service.model.ServiceInfo in project cxf by apache.
the class WrapperClassGeneratorTest method testForXmlList.
@org.junit.Test
public void testForXmlList() throws Exception {
JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(AddNumbersImpl.class);
JaxWsServiceFactoryBean jaxwsFac = new JaxWsServiceFactoryBean(implInfo);
jaxwsFac.setBus(BusFactory.getDefaultBus());
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();
Class<?> responseClass = inf.getOutput().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 });
String className = requestClass.getName();
className = className.substring(0, className.lastIndexOf(".") + 1);
WrapperHelper wh = new JAXBDataBinding().createWrapperHelper(requestClass, null, partNames, elTypeNames, partClasses);
List<Object> paraList = new ArrayList<>();
List<String> valueList = new ArrayList<>();
valueList.add("str1");
valueList.add("str2");
valueList.add("str3");
paraList.add(valueList);
Object requestObj = wh.createWrapperObject(paraList);
// Create response wrapper Object
partNames = Arrays.asList(new String[] { "return" });
elTypeNames = Arrays.asList(new String[] { "list" });
partClasses = Arrays.asList(new Class<?>[] { List.class });
className = responseClass.getName();
className = className.substring(0, className.lastIndexOf(".") + 1);
wh = new JAXBDataBinding().createWrapperHelper(responseClass, null, partNames, elTypeNames, partClasses);
List<Object> resPara = new ArrayList<>();
List<Integer> intValueList = new ArrayList<>();
intValueList.add(1);
intValueList.add(2);
intValueList.add(3);
resPara.add(intValueList);
Object responseObj = wh.createWrapperObject(resPara);
JAXBContext jaxbContext = JAXBContext.newInstance(requestClass, responseClass);
java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream();
Marshaller marshaller = jaxbContext.createMarshaller();
// check marshall wrapper
marshaller.marshal(requestObj, bout);
String expected = "<arg0>str1 str2 str3</arg0>";
assertTrue("The generated request wrapper class does not contain the correct annotations", bout.toString().contains(expected));
bout.reset();
marshaller.marshal(responseObj, bout);
expected = "<return>1</return><return>2</return><return>3</return>";
assertTrue("The generated response wrapper class is not correct", bout.toString().contains(expected));
}
use of org.apache.cxf.service.model.ServiceInfo in project cxf by apache.
the class STSTokenRetrieverTest method prepareMessage.
private MessageImpl prepareMessage(Bus bus, STSClient stsClient, String serviceAddress) throws EndpointException {
MessageImpl message = new MessageImpl();
message.put(SecurityConstants.STS_CLIENT, stsClient);
message.put(Message.ENDPOINT_ADDRESS, serviceAddress);
Exchange exchange = new ExchangeImpl();
ServiceInfo si = new ServiceInfo();
Service s = new ServiceImpl(si);
EndpointInfo ei = new EndpointInfo();
Endpoint ep = new EndpointImpl(bus, s, ei);
ei.setBinding(new BindingInfo(si, null));
message.setExchange(exchange);
exchange.put(Endpoint.class, ep);
return message;
}
use of org.apache.cxf.service.model.ServiceInfo in project fabric8 by jboss-fuse.
the class ManagedApi method getJSONSchema.
@ManagedOperation(description = "get the JSON schema from a given endpoint", currencyTimeLimit = 60)
public String getJSONSchema() {
String ret = "";
if (!isWSDL()) {
Set<Class<?>> resourceTypes = getRESTResourceTypes();
if (resourceTypes != null) {
try {
ret = ret + getBeginIndentionWithReturn(1) + "\"" + "definitions" + "\" " + " : {" + getEol();
for (Class<?> cls : resourceTypes) {
if (JsonSchemaLookup.getSingleton().getSchemaForClass(cls).length() > 0) {
ret = ret + getIndention(2) + "\"" + cls.getName() + "\" : " + getEol();
ret = ret + rollbackEol(reformatIndent(JsonSchemaLookup.getSingleton().getSchemaForClass(cls), 3)) + "," + getEol();
}
}
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturn(1);
ret = ret + getEndIndentionWithReturn(0);
} catch (Throwable e) {
LOG.log(Level.WARNING, "getJSONSchema failed.", e);
}
}
} else {
try {
for (ServiceInfo serviceInfo : endpoint.getService().getServiceInfos()) {
for (BindingInfo bindingInfo : serviceInfo.getBindings()) {
ret = ret + getBeginIndentionWithReturn(1) + "\"operations\" : " + getBeginIndentionWithReturn(0);
for (BindingOperationInfo boi : bindingInfo.getOperations()) {
ret = ret + getIndention(2) + "\"" + boi.getOperationInfo().getName().getLocalPart() + "\" " + " : " + getBeginIndentionWithReturn(3);
if (boi.getInput() != null && boi.getInput().getMessageParts() != null) {
ret = ret + "\"input\" : " + getBeginIndentionWithReturn(4) + "\"type\" : \"" + boi.getOperationInfo().getInput().getName().getLocalPart() + "\"" + getEndIndentionWithReturn(3) + "," + getEol();
}
if (boi.getOutput() != null && boi.getOutput().getMessageParts() != null) {
ret = ret + getIndention(3) + "\"output\" : " + getBeginIndentionWithReturn(4) + "\"type\" : \"" + boi.getOperationInfo().getOutput().getName().getLocalPart() + "\"" + getEndIndentionWithReturn(3);
}
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturn(2) + "," + getEol();
}
if (ret.length() > 0) {
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturn(1) + ",";
}
Set<String> addedType = new HashSet<String>();
ret = ret + getEol() + getIndention(1) + "\"definitions\" : " + getBeginIndentionWithReturn(0);
for (BindingOperationInfo boi : bindingInfo.getOperations()) {
if (boi.getInput() != null && boi.getInput().getMessageParts() != null && !addedType.contains(boi.getOperationInfo().getInput().getName().getLocalPart())) {
ret = ret + getIndention(2) + "\"" + boi.getOperationInfo().getInput().getName().getLocalPart() + "\" : " + getBeginIndentionWithReturnForList(0);
for (MessagePartInfo mpi : boi.getInput().getMessageParts()) {
Class<?> partClass = mpi.getTypeClass();
if (partClass != null) {
ret = ret + rollbackEol(reformatIndent(JsonSchemaLookup.getSingleton().getSchemaForClass(partClass), 3)) + "," + getEol();
}
}
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturnForList(2) + "," + getEol();
addedType.add(boi.getOperationInfo().getInput().getName().getLocalPart());
}
if (boi.getOutput() != null && boi.getOutput().getMessageParts() != null && !addedType.contains(boi.getOperationInfo().getOutput().getName().getLocalPart())) {
ret = ret + getIndention(2) + "\"" + boi.getOperationInfo().getOutput().getName().getLocalPart() + "\" : " + getBeginIndentionWithReturnForList(0);
for (MessagePartInfo mpi : boi.getOutput().getMessageParts()) {
Class<?> partClass = mpi.getTypeClass();
if (partClass != null) {
ret = ret + rollbackEol(reformatIndent(JsonSchemaLookup.getSingleton().getSchemaForClass(partClass), 3)) + "," + getEol();
}
}
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturnForList(2) + "," + getEol();
addedType.add(boi.getOperationInfo().getOutput().getName().getLocalPart());
}
}
if (ret.length() > 0) {
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturn(1);
}
if (ret.length() > 0) {
ret = rollbackColon(ret) + getEndIndentionWithReturn(0);
}
}
}
} catch (Throwable e) {
LOG.log(Level.WARNING, "getJSONSchema failed.", e);
}
}
return ret;
}
use of org.apache.cxf.service.model.ServiceInfo in project fabric8 by jboss-fuse.
the class ManagedApi method getJSONSchemaForOperation.
@ManagedOperation(description = "get the JSON schema from a given soap endpoint for a given operation", currencyTimeLimit = 60)
public String getJSONSchemaForOperation(String operationName) {
if (!isWSDL()) {
return null;
}
String ret = "";
for (ServiceInfo serviceInfo : endpoint.getService().getServiceInfos()) {
for (BindingInfo bindingInfo : serviceInfo.getBindings()) {
for (BindingOperationInfo boi : bindingInfo.getOperations()) {
if (operationName.equals(boi.getOperationInfo().getName().getLocalPart())) {
ret = ret + getBeginIndentionWithReturn(1) + "\"" + boi.getOperationInfo().getName().getLocalPart() + "\" " + " : " + getBeginIndentionWithReturn(2);
if (boi.getInput() != null && boi.getInput().getMessageParts() != null) {
ret = ret + "\"input\" : " + getBeginIndentionWithReturn(4) + "\"type\" : \"" + boi.getOperationInfo().getInput().getName().getLocalPart() + "\"" + getEndIndentionWithReturn(2) + "," + getEol();
}
if (boi.getOutput() != null && boi.getOutput().getMessageParts() != null) {
ret = ret + getIndention(2) + "\"output\" : " + getBeginIndentionWithReturn(4) + "\"type\" : \"" + boi.getOperationInfo().getOutput().getName().getLocalPart() + "\"" + getEndIndentionWithReturn(2);
}
ret = rollbackColon(ret) + getEndIndentionWithReturn(1) + ",";
ret = ret + getEol() + getIndention(1) + "\"definitions\" : " + getBeginIndentionWithReturn(2);
if (boi.getInput() != null && boi.getInput().getMessageParts() != null) {
ret = ret + "\"" + boi.getOperationInfo().getInput().getName().getLocalPart() + "\" : " + getBeginIndentionWithReturnForList(0);
for (MessagePartInfo mpi : boi.getInput().getMessageParts()) {
Class<?> partClass = mpi.getTypeClass();
if (partClass != null) {
ret = ret + rollbackEol(reformatIndent(JsonSchemaLookup.getSingleton().getSchemaForClass(partClass), 3)) + "," + getEol();
}
}
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturnForList(2) + "," + getEol();
}
if (boi.getOutput() != null && boi.getOutput().getMessageParts() != null) {
ret = ret + getIndention(2) + "\"" + boi.getOperationInfo().getOutput().getName().getLocalPart() + "\" : " + getBeginIndentionWithReturnForList(0);
for (MessagePartInfo mpi : boi.getOutput().getMessageParts()) {
Class<?> partClass = mpi.getTypeClass();
if (partClass != null) {
ret = ret + rollbackEol(reformatIndent(JsonSchemaLookup.getSingleton().getSchemaForClass(partClass), 3)) + "," + getEol();
}
}
ret = rollbackColon(rollbackEol(ret)) + getEndIndentionWithReturnForList(2) + ",";
}
}
}
if (ret.length() > 0) {
ret = rollbackColon(ret) + getEndIndentionWithReturn(1);
}
if (ret.length() > 0) {
ret = rollbackColon(ret) + getEndIndentionWithReturn(0);
}
}
}
return ret;
}
Aggregations