-
Notifications
You must be signed in to change notification settings - Fork 146
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
203 additions
and
159 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
316 changes: 160 additions & 156 deletions
316
simple-tests/src/main/resources/wsdl/BookService.wsdl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,171 +1,175 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" | ||
xmlns:tns="http://www.cleverbuilder.com/BookService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" | ||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="BookService" | ||
xmlns:tns="http://www.cleverbuilder.com/BookService/" | ||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" | ||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" | ||
name="BookService" | ||
targetNamespace="http://www.cleverbuilder.com/BookService/"> | ||
<wsdl:documentation>Definition for a web service called BookService, | ||
which can be used to add or retrieve books from a collection. | ||
</wsdl:documentation> | ||
<wsdl:documentation>Definition for a web service called BookService, | ||
which can be used to add or retrieve books from a collection. | ||
</wsdl:documentation> | ||
|
||
<!-- | ||
The `types` element defines the data types (XML elements) | ||
that are used by the web service. | ||
--> | ||
<wsdl:types> | ||
<xsd:schema targetNamespace="http://www.cleverbuilder.com/BookService/"> | ||
<xsd:element name="Book"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element name="ID" type="xsd:string" minOccurs="0"/> | ||
<xsd:element name="Title" type="xsd:string"/> | ||
<xsd:element name="Author" type="xsd:string"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="Books"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="unbounded"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<!-- | ||
The `types` element defines the data types (XML elements) | ||
that are used by the web service. | ||
--> | ||
<wsdl:types> | ||
<xsd:schema targetNamespace="http://www.cleverbuilder.com/BookService/"> | ||
<xsd:element name="Book"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element name="ID" type="xsd:string" minOccurs="0"/> | ||
<xsd:element name="Title" type="xsd:string"/> | ||
<xsd:element name="Author" type="xsd:string"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="Books"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="unbounded"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
|
||
<xsd:element name="GetBook"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element name="ID" type="xsd:string" /> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="GetBookResponse"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="1"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="GetBook"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element name="ID" type="xsd:string"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="GetBookResponse"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="1"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
|
||
<xsd:element name="AddBook"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="1" maxOccurs="1"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="AddBookResponse"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="1"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="GetAllBooks"> | ||
<xsd:complexType /> | ||
</xsd:element> | ||
<xsd:element name="GetAllBooksResponse"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="unbounded"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
</xsd:schema> | ||
</wsdl:types> | ||
<xsd:element name="AddBook"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="1" maxOccurs="1"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="AddBookResponse"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="1"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
<xsd:element name="GetAllBooks"> | ||
<xsd:complexType/> | ||
</xsd:element> | ||
<xsd:element name="GetAllBooksResponse"> | ||
<xsd:complexType> | ||
<xsd:sequence> | ||
<xsd:element ref="tns:Book" minOccurs="0" maxOccurs="unbounded"/> | ||
</xsd:sequence> | ||
</xsd:complexType> | ||
</xsd:element> | ||
</xsd:schema> | ||
</wsdl:types> | ||
|
||
|
||
<!-- | ||
A wsdl `message` element is used to define a message | ||
exchanged between a web service, consisting of zero | ||
or more `part`s. | ||
--> | ||
<!-- | ||
A wsdl `message` element is used to define a message | ||
exchanged between a web service, consisting of zero | ||
or more `part`s. | ||
--> | ||
|
||
<wsdl:message name="GetBookRequest"> | ||
<wsdl:part element="tns:GetBook" name="parameters" /> | ||
</wsdl:message> | ||
<wsdl:message name="GetBookResponse"> | ||
<wsdl:part element="tns:GetBookResponse" name="parameters" /> | ||
</wsdl:message> | ||
<wsdl:message name="AddBookRequest"> | ||
<wsdl:part name="parameters" element="tns:AddBook"></wsdl:part> | ||
</wsdl:message> | ||
<wsdl:message name="AddBookResponse"> | ||
<wsdl:part name="parameters" element="tns:AddBookResponse"></wsdl:part> | ||
</wsdl:message> | ||
<wsdl:message name="GetAllBooksRequest"> | ||
<wsdl:part name="parameters" element="tns:GetAllBooks"></wsdl:part> | ||
</wsdl:message> | ||
<wsdl:message name="GetAllBooksResponse"> | ||
<wsdl:part name="parameters" element="tns:GetAllBooksResponse"></wsdl:part> | ||
</wsdl:message> | ||
<wsdl:message name="GetBookRequest"> | ||
<wsdl:part element="tns:GetBook" name="parameters"/> | ||
</wsdl:message> | ||
<wsdl:message name="GetBookResponse"> | ||
<wsdl:part element="tns:GetBookResponse" name="parameters"/> | ||
</wsdl:message> | ||
<wsdl:message name="AddBookRequest"> | ||
<wsdl:part name="parameters" element="tns:AddBook"></wsdl:part> | ||
</wsdl:message> | ||
<wsdl:message name="AddBookResponse"> | ||
<wsdl:part name="parameters" element="tns:AddBookResponse"></wsdl:part> | ||
</wsdl:message> | ||
<wsdl:message name="GetAllBooksRequest"> | ||
<wsdl:part name="parameters" element="tns:GetAllBooks"></wsdl:part> | ||
</wsdl:message> | ||
<wsdl:message name="GetAllBooksResponse"> | ||
<wsdl:part name="parameters" element="tns:GetAllBooksResponse"></wsdl:part> | ||
</wsdl:message> | ||
|
||
<!-- | ||
A WSDL `portType` is used to combine multiple `message`s | ||
(e.g. input, output) into a single operation. | ||
<!-- | ||
A WSDL `portType` is used to combine multiple `message`s | ||
(e.g. input, output) into a single operation. | ||
Here we define three synchronous (input/output) operations | ||
and the `message`s that must be used for each. | ||
--> | ||
<wsdl:portType name="BookService"> | ||
<wsdl:operation name="GetBook"> | ||
<wsdl:input message="tns:GetBookRequest" /> | ||
<wsdl:output message="tns:GetBookResponse" /> | ||
</wsdl:operation> | ||
<wsdl:operation name="AddBook"> | ||
<wsdl:input message="tns:AddBookRequest"></wsdl:input> | ||
<wsdl:output message="tns:AddBookResponse"></wsdl:output> | ||
</wsdl:operation> | ||
<wsdl:operation name="GetAllBooks"> | ||
<wsdl:input message="tns:GetAllBooksRequest"></wsdl:input> | ||
<wsdl:output message="tns:GetAllBooksResponse"></wsdl:output> | ||
</wsdl:operation> | ||
</wsdl:portType> | ||
Here we define three synchronous (input/output) operations | ||
and the `message`s that must be used for each. | ||
--> | ||
<wsdl:portType name="BookService"> | ||
<wsdl:operation name="GetBook"> | ||
<wsdl:input message="tns:GetBookRequest"/> | ||
<wsdl:output message="tns:GetBookResponse"/> | ||
</wsdl:operation> | ||
<wsdl:operation name="AddBook"> | ||
<wsdl:input message="tns:AddBookRequest"></wsdl:input> | ||
<wsdl:output message="tns:AddBookResponse"></wsdl:output> | ||
</wsdl:operation> | ||
<wsdl:operation name="GetAllBooks"> | ||
<wsdl:input message="tns:GetAllBooksRequest"></wsdl:input> | ||
<wsdl:output message="tns:GetAllBooksResponse"></wsdl:output> | ||
</wsdl:operation> | ||
</wsdl:portType> | ||
|
||
<!-- | ||
The `binding` element defines exactly how each | ||
`operation` will take place over the network. | ||
In this case, we are using SOAP. | ||
--> | ||
<wsdl:binding name="BookServiceSOAP" type="tns:BookService"> | ||
<soap:binding style="document" | ||
transport="http://schemas.xmlsoap.org/soap/http" /> | ||
<wsdl:operation name="GetBook"> | ||
<soap:operation soapAction="http://www.cleverbuilder.com/BookService/GetBook" /> | ||
<wsdl:input> | ||
<soap:body use="literal" /> | ||
</wsdl:input> | ||
<wsdl:output> | ||
<soap:body use="literal" /> | ||
</wsdl:output> | ||
</wsdl:operation> | ||
<wsdl:operation name="AddBook"> | ||
<soap:operation soapAction="http://www.cleverbuilder.com/BookService/AddBook" /> | ||
<wsdl:input> | ||
<soap:body use="literal" /> | ||
</wsdl:input> | ||
<wsdl:output> | ||
<soap:body use="literal" /> | ||
</wsdl:output> | ||
</wsdl:operation> | ||
<wsdl:operation name="GetAllBooks"> | ||
<soap:operation | ||
soapAction="http://www.cleverbuilder.com/BookService/GetAllBooks" /> | ||
<wsdl:input> | ||
<soap:body use="literal" /> | ||
</wsdl:input> | ||
<wsdl:output> | ||
<soap:body use="literal" /> | ||
</wsdl:output> | ||
</wsdl:operation> | ||
</wsdl:binding> | ||
<!-- | ||
The `binding` element defines exactly how each | ||
`operation` will take place over the network. | ||
In this case, we are using SOAP. | ||
--> | ||
<wsdl:binding name="BookServiceSOAP" type="tns:BookService"> | ||
<soap:binding style="document" | ||
transport="http://schemas.xmlsoap.org/soap/http"/> | ||
<wsdl:operation name="GetBook"> | ||
<soap:operation | ||
soapAction="http://www.cleverbuilder.com/BookService/GetBook"/> | ||
<wsdl:input> | ||
<soap:body use="literal"/> | ||
</wsdl:input> | ||
<wsdl:output> | ||
<soap:body use="literal"/> | ||
</wsdl:output> | ||
</wsdl:operation> | ||
<wsdl:operation name="AddBook"> | ||
<soap:operation | ||
soapAction="http://www.cleverbuilder.com/BookService/AddBook"/> | ||
<wsdl:input> | ||
<soap:body use="literal"/> | ||
</wsdl:input> | ||
<wsdl:output> | ||
<soap:body use="literal"/> | ||
</wsdl:output> | ||
</wsdl:operation> | ||
<wsdl:operation name="GetAllBooks"> | ||
<soap:operation | ||
soapAction="http://www.cleverbuilder.com/BookService/GetAllBooks"/> | ||
<wsdl:input> | ||
<soap:body use="literal"/> | ||
</wsdl:input> | ||
<wsdl:output> | ||
<soap:body use="literal"/> | ||
</wsdl:output> | ||
</wsdl:operation> | ||
</wsdl:binding> | ||
|
||
<!-- | ||
The `service` element finally says where the service | ||
can be accessed from - in other words, its endpoint. | ||
--> | ||
<wsdl:service name="BookService"> | ||
<wsdl:port binding="tns:BookServiceSOAP" name="BookServiceSOAP"> | ||
<soap:address location="http://www.example.org/BookService" /> | ||
</wsdl:port> | ||
</wsdl:service> | ||
<!-- | ||
The `service` element finally says where the service | ||
can be accessed from - in other words, its endpoint. | ||
--> | ||
<wsdl:service name="BookService"> | ||
<wsdl:port binding="tns:BookServiceSOAP" name="BookServiceSOAP"> | ||
<soap:address location="http://www.example.org/BookService"/> | ||
</wsdl:port> | ||
</wsdl:service> | ||
</wsdl:definitions> | ||
|
35 changes: 34 additions & 1 deletion
35
simple-tests/src/test/java/com/cleverbuilder/cameldemos/core/PredicatesTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,37 @@ | ||
package com.cleverbuilder.cameldemos.core; | ||
|
||
public class PredicatesTest { | ||
import org.apache.camel.RoutesBuilder; | ||
import org.apache.camel.builder.RouteBuilder; | ||
import org.apache.camel.component.mock.MockEndpoint; | ||
import org.apache.camel.test.junit4.CamelTestSupport; | ||
import org.junit.Test; | ||
|
||
public class PredicatesTest extends CamelTestSupport { | ||
|
||
@Test | ||
public void testBodyIsNull() throws Exception { | ||
MockEndpoint isNull = getMockEndpoint("mock:bodyisnull-isnull"); | ||
isNull.expectedMessageCount(1); | ||
|
||
template.sendBodyAndHeader("direct:bodyisnulltest", null, | ||
"MyCustomHeader", "foo"); | ||
|
||
assertMockEndpointsSatisfied(); | ||
|
||
} | ||
|
||
|
||
@Override | ||
protected RoutesBuilder createRouteBuilder() throws Exception { | ||
return new RouteBuilder() { | ||
@Override | ||
public void configure() throws Exception { | ||
from("direct:bodyisnulltest") | ||
.choice().when(body().isNull()) | ||
.to("mock:bodyisnull-isnull") | ||
.otherwise() | ||
.to("mock:bodyisnull-otherwise"); | ||
} | ||
}; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters