This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-performance-tests.git
commit bd8fbbbe7c57a4cce0d1737d209b4cd95d6519a4 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Wed Mar 10 16:20:58 2021 +0100 CAMEL-16251 - Move Performance and jmh itests in a separated repository --- tests/camel-performance/README.adoc | 8 + tests/camel-performance/pom.xml | 170 +++++++++++++++++++++ .../src/test/data/1K_buyStocks.xml | 33 ++++ .../test/perf/AbstractBasePerformanceTest.java | 64 ++++++++ .../perf/ContentBasedRoutingPerformanceTest.java | 115 ++++++++++++++ .../perf/HeaderBasedRoutingPerformanceTest.java | 122 +++++++++++++++ .../camel/test/perf/SplitterPerformanceTest.java | 92 +++++++++++ .../perf/XPathBasedRoutingPerformanceTest.java | 81 ++++++++++ .../perf/XQueryBasedRoutingPerformanceTest.java | 81 ++++++++++ .../camel/test/perf/XsltPerformanceTest.java | 53 +++++++ .../src/test/resources/1K_buyStocks.xml | 33 ++++ .../src/test/resources/1K_buyStocks_secure.xml | 78 ++++++++++ .../test/resources/META-INF/xslt/transform.xslt | 35 +++++ .../src/test/resources/log4j2.properties | 29 ++++ .../camel-performance/src/test/resources/store.jks | Bin 0 -> 6377 bytes .../resources/wsdl/CBRWSDL-consumer-embedded.wsdl | 126 +++++++++++++++ .../resources/wsdl/CBRWSDL-provider-embedded.wsdl | 126 +++++++++++++++ .../wsdl/HBRSoapWSDL-consumer-embedded.wsdl | 139 +++++++++++++++++ .../wsdl/HBRSoapWSDL-provider-embedded.wsdl | 126 +++++++++++++++ .../wsdl/HBRTransportWSDL-consumer-embedded.wsdl | 126 +++++++++++++++ .../wsdl/HBRTransportWSDL-provider-embedded.wsdl | 126 +++++++++++++++ .../wsdl/ProxyWSDL-consumer-embedded.wsdl | 126 +++++++++++++++ .../wsdl/ProxyWSDL-provider-embedded.wsdl | 126 +++++++++++++++ .../wsdl/SecureProxyWSDL-consumer-embedded.wsdl | 126 +++++++++++++++ .../wsdl/SecureProxyWSDL-provider-embedded.wsdl | 126 +++++++++++++++ .../wsdl/TransformerWSDL-consumer-embedded.wsdl | 126 +++++++++++++++ .../wsdl/TransformerWSDL-provider-embedded.wsdl | 126 +++++++++++++++ .../src/test/resources/wssecurity.properties | 21 +++ .../src/test/resources/xslt/transform.xslt | 35 +++++ .../src/test/resources/xslt/transform_back.xslt | 32 ++++ tests/pom.xml | 1 + 31 files changed, 2608 insertions(+) diff --git a/tests/camel-performance/README.adoc b/tests/camel-performance/README.adoc new file mode 100644 index 0000000..a8f82fe --- /dev/null +++ b/tests/camel-performance/README.adoc @@ -0,0 +1,8 @@ += Camel Performance Tests + +== Overview + +This module is where you should add performance tests. + +All tests should be disabled by default to not run on the CI server because +we expect performance test are time and CPU consuming. \ No newline at end of file diff --git a/tests/camel-performance/pom.xml b/tests/camel-performance/pom.xml new file mode 100644 index 0000000..e97fc69 --- /dev/null +++ b/tests/camel-performance/pom.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.camel.tests</groupId> + <artifactId>tests</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>camel-performance</artifactId> + <name>Camel :: Performance Tests :: Performance</name> + <description>Performs cross component performance tests</description> + + <dependencyManagement> + <dependencies> + <!-- Add Camel BOM --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-bom</artifactId> + <version>${camel.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <!-- assuming camel is pulling aries 1.0.0, pull asm 4.0 first --> + <dependency> + <groupId>org.ow2.asm</groupId> + <artifactId>asm-all</artifactId> + <version>5.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi.core</artifactId> + <scope>test</scope> + <version>${osgi-version}</version> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi.cmpn</artifactId> + <scope>test</scope> + <version>${osgi-version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-test-junit5</artifactId> + <scope>test</scope> + </dependency> + + <!-- logging --> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-slf4j-impl</artifactId> + <scope>test</scope> + <version>${log4j2-version}</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-1.2-api</artifactId> + <scope>test</scope> + <version>${log4j2-version}</version> + </dependency> + + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>${commons-io-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-http</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-saxon</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-cxf</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-rt-ws-security</artifactId> + <scope>test</scope> + <version>${cxf-version}</version> + </dependency> + <dependency> + <groupId>org.apache.ws.security</groupId> + <artifactId>wss4j</artifactId> + <version>1.6.17</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.bouncycastle</groupId> + <artifactId>bcpg-jdk15on</artifactId> + <version>${bouncycastle-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.bouncycastle</groupId> + <artifactId>bcprov-jdk15on</artifactId> + <version>${bouncycastle-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + <version>${jetty9-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-servlet</artifactId> + <version>${jetty9-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-util</artifactId> + <version>${jetty9-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-io</artifactId> + <version>${jetty9-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-rt-transports-http</artifactId> + <scope>test</scope> + <version>${cxf-version}</version> + </dependency> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-rt-transports-http-jetty</artifactId> + <scope>test</scope> + <version>${cxf-version}</version> + </dependency> + </dependencies> +</project> diff --git a/tests/camel-performance/src/test/data/1K_buyStocks.xml b/tests/camel-performance/src/test/data/1K_buyStocks.xml new file mode 100644 index 0000000..c57a823 --- /dev/null +++ b/tests/camel-performance/src/test/data/1K_buyStocks.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> +<soapenv:Header><routing xmlns="http://someuri">xadmin;server1;community#1.0##</routing></soapenv:Header> +<soapenv:Body> +<m:buyStocks xmlns:m="http://services.samples/xsd"> +<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order> +<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>8030</volume></order> +<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>500</volume></order> +<order><symbol>GOOG</symbol><buyerID>chathura</buyerID><price>60.24</price><volume>40000</volume></order> +<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order> +<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>803000</volume></order> +<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>5000</volume></order> +</m:buyStocks> +</soapenv:Body> +</soapenv:Envelope> diff --git a/tests/camel-performance/src/test/java/org/apache/camel/test/perf/AbstractBasePerformanceTest.java b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/AbstractBasePerformanceTest.java new file mode 100644 index 0000000..87a4fbb --- /dev/null +++ b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/AbstractBasePerformanceTest.java @@ -0,0 +1,64 @@ +/* + * 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.camel.test.perf; + +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.test.junit5.CamelTestSupport; +import org.junit.jupiter.api.TestInstance; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public abstract class AbstractBasePerformanceTest extends CamelTestSupport { + + protected static final String BODY_1KB_PAYLOAD + = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" + + "<soapenv:Header><routing xmlns=\"http://someuri\">xadmin;server1;community#1.0##</routing></soapenv:Header>" + + "<soapenv:Body>" + + "<m:buyStocks xmlns:m=\"http://services.samples/xsd\">" + + "<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order>" + + "<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>8030</volume></order>" + + "<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>500</volume></order>" + + "<order><symbol>GOOG</symbol><buyerID>chathura</buyerID><price>60.24</price><volume>40000</volume></order>" + + "<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order>" + + "<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>803000</volume></order>" + + "<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>5000</volume></order>" + + "</m:buyStocks>" + + "</soapenv:Body>" + + "</soapenv:Envelope>"; + + protected final Logger log = LoggerFactory.getLogger(getClass()); + + protected String getPayload() { + return BODY_1KB_PAYLOAD; + } + + protected void resetMock(int count) { + MockEndpoint mock = getMockEndpoint("mock:end"); + mock.reset(); + mock.setRetainFirst(0); + mock.setRetainLast(0); + mock.expectedMessageCount(count); + } + + protected void execute(int count) { + for (int counter = 0; counter < count; counter++) { + template.sendBody(getPayload()); + } + } + +} diff --git a/tests/camel-performance/src/test/java/org/apache/camel/test/perf/ContentBasedRoutingPerformanceTest.java b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/ContentBasedRoutingPerformanceTest.java new file mode 100644 index 0000000..622480c --- /dev/null +++ b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/ContentBasedRoutingPerformanceTest.java @@ -0,0 +1,115 @@ +/* + * 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.camel.test.perf; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.util.StopWatch; +import org.junit.jupiter.api.Test; + +public class ContentBasedRoutingPerformanceTest extends AbstractBasePerformanceTest { + + private final int count = 30000; + + @Test + public void testChoiceSimple() throws InterruptedException { + template.setDefaultEndpointUri("direct:choice-simple"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testChoiceExpression() throws InterruptedException { + template.setDefaultEndpointUri("direct:choice-expression"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testFilterSimple() throws InterruptedException { + template.setDefaultEndpointUri("direct:filter-simple"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testFilterExpression() throws InterruptedException { + template.setDefaultEndpointUri("direct:filter-expression"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() throws Exception { + from("direct:filter-simple") + .filter().simple("${body} contains 'xadmin;server1;community#1.0##'") + .to("mock:end"); + + from("direct:filter-expression") + .filter(body().contains("<order><symbol>IBM</symbol><buyerID>asankha</buyerID>")) + .to("mock:end"); + + from("direct:choice-simple") + .choice() + .when().simple("${body} contains 'xadmin;server1;community#1.0##'") + .to("mock:end"); + + from("direct:choice-expression") + .choice() + .when(body().contains("<order><symbol>IBM</symbol><buyerID>asankha</buyerID>")) + .to("mock:end"); + } + }; + } +} diff --git a/tests/camel-performance/src/test/java/org/apache/camel/test/perf/HeaderBasedRoutingPerformanceTest.java b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/HeaderBasedRoutingPerformanceTest.java new file mode 100644 index 0000000..eae43fa --- /dev/null +++ b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/HeaderBasedRoutingPerformanceTest.java @@ -0,0 +1,122 @@ +/* + * 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.camel.test.perf; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.util.StopWatch; +import org.junit.jupiter.api.Test; + +public class HeaderBasedRoutingPerformanceTest extends AbstractBasePerformanceTest { + + private final int count = 30000; + + @Test + public void testChoiceSimple() throws InterruptedException { + template.setDefaultEndpointUri("direct:choice-simple"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testChoiceExpression() throws InterruptedException { + template.setDefaultEndpointUri("direct:choice-expression"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testFilterSimple() throws InterruptedException { + template.setDefaultEndpointUri("direct:filter-simple"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testFilterExpression() throws InterruptedException { + template.setDefaultEndpointUri("direct:filter-expression"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Override + protected void execute(int count) { + for (int counter = 0; counter < count; counter++) { + template.sendBodyAndHeader(getPayload(), "routing", "xadmin;server1;community#1.0##"); + } + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() throws Exception { + from("direct:filter-simple") + .filter(simple("${in.header.routing} == 'xadmin;server1;community#1.0##'")) + .to("mock:end"); + + from("direct:filter-expression") + .filter(header("routing").isEqualTo("xadmin;server1;community#1.0##")) + .to("mock:end"); + + from("direct:choice-simple") + .choice() + .when(simple("${in.header.routing} == 'xadmin;server1;community#1.0##'")) + .to("mock:end"); + + from("direct:choice-expression") + .choice() + .when(header("routing").isEqualTo("xadmin;server1;community#1.0##")) + .to("mock:end"); + } + }; + } +} diff --git a/tests/camel-performance/src/test/java/org/apache/camel/test/perf/SplitterPerformanceTest.java b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/SplitterPerformanceTest.java new file mode 100644 index 0000000..f0d0e68 --- /dev/null +++ b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/SplitterPerformanceTest.java @@ -0,0 +1,92 @@ +/* + * 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.camel.test.perf; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.util.StopWatch; +import org.junit.jupiter.api.Test; + +public class SplitterPerformanceTest extends AbstractBasePerformanceTest { + + protected static final String HEADER = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" + + "<soapenv:Header><routing xmlns=\"http://someuri\">xadmin;server1;community#1.0##</routing></soapenv:Header>" + + "<soapenv:Body>" + + "<m:buyStocks xmlns:m=\"http://services.samples/xsd\">"; + + protected static final String BODY + = "<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order>\n" + + "<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>8030</volume></order>\n" + + "<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>500</volume></order>\n" + + "<order><symbol>GOOG</symbol><buyerID>chathura</buyerID><price>60.24</price><volume>40000</volume></order>\n" + + "<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order>\n" + + "<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>803000</volume></order>\n" + + "<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>5000</volume></order>\n" + + "<order><symbol>GOOG</symbol><buyerID>chathura</buyerID><price>60.24</price><volume>40000</volume></order>\n" + + "<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order>\n" + + "<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>803000</volume></order>\n"; + + protected static final String TRAILER = "</m:buyStocks>" + + "</soapenv:Body>" + + "</soapenv:Envelope>"; + + protected static final String PAYLOAD; + + static { + StringBuilder builder = new StringBuilder(HEADER); + + for (int i = 0; i < 2000; i++) { + builder.append(BODY); + } + + builder.append(TRAILER); + PAYLOAD = builder.toString(); + } + + private final int count = 20001; + + @Test + public void testTokenize() throws InterruptedException { + template.setDefaultEndpointUri("direct:tokenize"); + + // warm up with 1 message so that the JIT compiler kicks in + execute(1); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(1); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Override + protected String getPayload() { + return PAYLOAD; + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() throws Exception { + from("direct:tokenize") + .split(body().tokenize("\n")) + .to("mock:end"); + } + }; + } +} diff --git a/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XPathBasedRoutingPerformanceTest.java b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XPathBasedRoutingPerformanceTest.java new file mode 100644 index 0000000..81bd5eb --- /dev/null +++ b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XPathBasedRoutingPerformanceTest.java @@ -0,0 +1,81 @@ +/* + * 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.camel.test.perf; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.util.StopWatch; +import org.junit.jupiter.api.Test; + +public class XPathBasedRoutingPerformanceTest extends AbstractBasePerformanceTest { + + private final int count = 30000; + + @Test + public void testChoice() throws InterruptedException { + template.setDefaultEndpointUri("direct:choice"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testFilter() throws InterruptedException { + template.setDefaultEndpointUri("direct:filter"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() throws Exception { + Map<String, String> namespaces = new HashMap<>(); + namespaces.put("soapenv", "http://schemas.xmlsoap.org/soap/envelope/"); + namespaces.put("m", "http://services.samples/xsd"); + + from("direct:filter") + .filter().xpath("/soapenv:Envelope/soapenv:Body/m:buyStocks/order[1]/symbol='IBM'", namespaces) + .to("mock:end"); + + from("direct:choice") + .choice() + .when().xpath("/soapenv:Envelope/soapenv:Body/m:buyStocks/order[1]/symbol='IBM'", namespaces) + .to("mock:end"); + } + }; + } +} diff --git a/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XQueryBasedRoutingPerformanceTest.java b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XQueryBasedRoutingPerformanceTest.java new file mode 100644 index 0000000..c501e7f --- /dev/null +++ b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XQueryBasedRoutingPerformanceTest.java @@ -0,0 +1,81 @@ +/* + * 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.camel.test.perf; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.util.StopWatch; +import org.junit.jupiter.api.Test; + +public class XQueryBasedRoutingPerformanceTest extends AbstractBasePerformanceTest { + + private final int count = 30000; + + @Test + public void testChoice() throws InterruptedException { + template.setDefaultEndpointUri("direct:choice"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Test + public void testFilter() throws InterruptedException { + template.setDefaultEndpointUri("direct:filter"); + + // warm up with 20.000 messages so that the JIT compiler kicks in + execute(20000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() throws Exception { + Map<String, String> namespaces = new HashMap<>(); + namespaces.put("soapenv", "http://schemas.xmlsoap.org/soap/envelope/"); + namespaces.put("m", "http://services.samples/xsd"); + + from("direct:filter") + .filter().xquery("/soapenv:Envelope/soapenv:Body/m:buyStocks/order[1]/symbol='IBM'", namespaces) + .to("mock:end"); + + from("direct:choice") + .choice() + .when().xquery("/soapenv:Envelope/soapenv:Body/m:buyStocks/order[1]/symbol='IBM'", namespaces) + .to("mock:end"); + } + }; + } +} diff --git a/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XsltPerformanceTest.java b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XsltPerformanceTest.java new file mode 100644 index 0000000..b3d2aa7 --- /dev/null +++ b/tests/camel-performance/src/test/java/org/apache/camel/test/perf/XsltPerformanceTest.java @@ -0,0 +1,53 @@ +/* + * 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.camel.test.perf; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.util.StopWatch; +import org.junit.jupiter.api.Test; + +public class XsltPerformanceTest extends AbstractBasePerformanceTest { + + private final int count = 10000; + + @Test + public void testXslt() throws InterruptedException { + template.setDefaultEndpointUri("direct:xslt"); + + // warm up with 1.000 messages so that the JIT compiler kicks in + execute(1000); + + resetMock(count); + + StopWatch watch = new StopWatch(); + execute(count); + + assertMockEndpointsSatisfied(); + log.warn("Ran {} tests in {}ms", count, watch.taken()); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() throws Exception { + from("direct:xslt") + .to("xslt://META-INF/xslt/transform.xslt") + .to("mock:end"); + } + }; + } +} diff --git a/tests/camel-performance/src/test/resources/1K_buyStocks.xml b/tests/camel-performance/src/test/resources/1K_buyStocks.xml new file mode 100644 index 0000000..c57a823 --- /dev/null +++ b/tests/camel-performance/src/test/resources/1K_buyStocks.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> +<soapenv:Header><routing xmlns="http://someuri">xadmin;server1;community#1.0##</routing></soapenv:Header> +<soapenv:Body> +<m:buyStocks xmlns:m="http://services.samples/xsd"> +<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order> +<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>8030</volume></order> +<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>500</volume></order> +<order><symbol>GOOG</symbol><buyerID>chathura</buyerID><price>60.24</price><volume>40000</volume></order> +<order><symbol>IBM</symbol><buyerID>asankha</buyerID><price>140.34</price><volume>2000</volume></order> +<order><symbol>MSFT</symbol><buyerID>ruwan</buyerID><price>23.56</price><volume>803000</volume></order> +<order><symbol>SUN</symbol><buyerID>indika</buyerID><price>14.56</price><volume>5000</volume></order> +</m:buyStocks> +</soapenv:Body> +</soapenv:Envelope> diff --git a/tests/camel-performance/src/test/resources/1K_buyStocks_secure.xml b/tests/camel-performance/src/test/resources/1K_buyStocks_secure.xml new file mode 100644 index 0000000..c5aa7cc --- /dev/null +++ b/tests/camel-performance/src/test/resources/1K_buyStocks_secure.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> +<soapenv:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1"><xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Id="id-1357383968943278000-1391997743"><xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><wsse:SecurityTokenReference><wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/ [...] +74Cg9Ot33to1CpQ4wl7SlszeomRx+AL3GA+QuouhO9eDJyAbjYIFy+FcUJ619P1AD1FR8VVdW5P4 +DvOxGfm+htl81tdP2kU=</xenc:CipherValue></xenc:CipherData><xenc:ReferenceList><xenc:DataReference URI="#id-1357383968943430000-1928238693"/></xenc:ReferenceList></xenc:EncryptedKey><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- [...] +DAVPQVNJUzEeMBwGA1UEAwwVT0FTSVMgSW50ZXJvcCBUZXN0IENBMB4XDTA1MDMxOTAwMDAwMFoX +DTE4MDMxOTIzNTk1OVowQjEOMAwGA1UECgwFT0FTSVMxIDAeBgNVBAsMF09BU0lTIEludGVyb3Ag +VGVzdCBDZXJ0MQ4wDAYDVQQDDAVBbGljZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoqi9 +9By1VYo0aHrkKCNT4DkIgPL/SgahbeKdGhrbu3K2XG7arfD9tqIBIKMfrX4Gp90NJa85AV1yiNsE +yvq+mUnMpNcKnLXLOjkTmMCqDYbbkehJlXPnaWLzve+mW0pJdPxtf3rbD4PS/cBQIvtpjmrDAU8V +sZKT8DN5Kyz+EZsCAwEAAaOBkzCBkDAJBgNVHRMEAjAAMDMGA1UdHwQsMCowKKImhiRodHRwOi8v +aW50ZXJvcC5iYnRlc3QubmV0L2NybC9jYS5jcmwwDgYDVR0PAQH/BAQDAgSwMB0GA1UdDgQWBBQK +4l0TUHZ1QV3V2QtlLNDm+PoxiDAfBgNVHSMEGDAWgBTAnSj8wes1oR3WqqqgHBpNwkkPDzANBgkq +hkiG9w0BAQUFAAOCAQEABTqpOpvW+6yrLXyUlP2xJbEkohXHI5OWwKWleOb9hlkhWntUalfcFOJA +gUyH30TTpHldzx1+vK2LPzhoUFKYHE1IyQvokBN2JjFO64BQukCKnZhldLRPxGhfkTdxQgdf5rCK +/wh3xVsZCNTfuMNmlAM6lOAg8QduDah3WFZpEA0s2nwQaCNQTNMjJC8tav1CBr6+E5FAmwPXP7pJ +xn9Fw9OXRyqbRA4v2y7YpbGkG2GI9UvOHw6SGvf4FRSthMMO35YbpikGsLix3vAsXWWi4rwfVOYz +QK0OFPNi9RMCUdSH06m9uLWckiCxjos0FQODZE9l4ATGy9s9hNVwryOJTw==</wsse:BinarySecurityToken><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> +<ds:SignedInfo> +<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> +<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> +<ds:Reference URI="#id-1357383968939063000-142227415"> +<ds:Transforms> +<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> +</ds:Transforms> +<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> +<ds:DigestValue>SZkK3D7xaoGDBMudnAhko4svV3Y=</ds:DigestValue> +</ds:Reference> +<ds:Reference URI="#id-1357383968938551000-396142871"> +<ds:Transforms> +<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> +</ds:Transforms> +<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> +<ds:DigestValue>HUHU6PCkHctVkkxdOVBTowAcTds=</ds:DigestValue> +</ds:Reference> +</ds:SignedInfo> +<ds:SignatureValue> +gAc34IGlAuClhIbQ6Vyd8iu8pw0RTw0eyXjNQEUzEzWt6/vdG1Z9clDup13SzyTvaVRkv0fbRzFy +5joMJ7CLjdMrHJg/FP6TMFUxDlit3QXbAaiB7J/VxMuJuQ05+MjnqCy/I4D8QCt7BhlbPiPozPsk +bhDz8LOeWQDzXSUJJ1U= +</ds:SignatureValue> +<ds:KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#id-1357383968942887000-228572128" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature><wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-1357383968938551000-396142871"><wsu:Created>2013-01-05T11:06:08.938Z</wsu:Created><wsu:Expires>2013-02-04T11:06:08.93 [...] +<soapenv:Body wsu:Id="id-1357383968939063000-142227415" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Id="id-1357383968943430000-1928238693" Type="http://www.w3.org/2001/04/xmlenc#Content"><xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> +<wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:Reference URI="#id-1357383968943278000-1391997743"/></wsse:SecurityTokenReference> +</ds:KeyInfo><xenc:CipherData><xenc:CipherValue>OaYLQwfFj0i01Zl7fCp8xclhoBR8/OJvqN6qdPUYcd2hHlYJOtHTnirPXev0xCxM4Y0/LHcFc64n +afRkz/cT+V4yLW5MSfZfeLFvLIfrz427UblCwQxQlgyiBxP16KkGVdGLws9duaNOPE4efKt7brnV +AOqvj2olsFLBz2LE7OAH/eDDQh2s19ivjy+OKqTDj11kOXtCb7fS6Egi5erzte9dKvE6rnUXVue3 +C+H5/NRkJXiayMznpJoVUwkmSobwHV7syuli8wF6tExKZVHZzJVJngRjvLsFJBAI9Zbcpu/VzV0U +NtmO7wbntC/WHnTW1gqzqsyFUVrKuLtT92z8qL2PEIl8lqCYfg2LdZzVPzUNXVLA9c7WSgbeoRty +euj20EGqLRWrMQx6/fwVoUHTqdBmI17IF0btRELVrBr+HXOOSg+WKZ2kRtQTC9fWjPHhxLaMQCMX +0ijls8JrHdRRIOUeB3IBM4hWQwA19mXwIR+apCcjaQld0K2SvIQAqSDdwYQleYoT+lYlxTNwqDSF +RNUPNygkDbGPF0wV4sMMgOj751VSiCSVcBNtbTsdMWxqtmvpr3IQO5HDvdr3jToDWN2a79bWBvkH +q40bvAOLiQshMgu+wLeTRmg5yv+5TYi6bDaz20aXTSp3nKHJIvnc8386ZrpKYx8RWEvfkXgm5+Bj +zLesMmGQLiaIcWnCDBOVa6XcGf5rxLi806vic6lqpl/12CseBuyfxN8UqvI4sRlJUbseQtUBKoov +c+EAPPbQatoBd1xOyy6h9zIkHinCCDGjMIPQ89pVb4vb5lH7VQKgJh96gT8LX1XgHQQKpaF0ab5L +zOd4d4Qlv+J9ZkvxrmNMYNoueDgqq/r6+Q4Q5d66lfv5jm/4GrrL6CYmC0ZasNnRBrO7B6QZnsp0 +Cjzzbl4rT0fuHGHAKnUVFCRe3puzS+nsumJ8lIMam+OQkCqvli+2wew1JtJjcll49x58hAnwRDgy +YzukmNt73HJirVdT6Yhe3s3R0kpqRARza1UPsVheL+XQP6hVpS8etabk5cBzGatoYUK6IIDRsz9a +RZKzN0cUEEJ/KlcsZE1hDz8/</xenc:CipherValue></xenc:CipherData></xenc:EncryptedData></soapenv:Body> +</soapenv:Envelope> \ No newline at end of file diff --git a/tests/camel-performance/src/test/resources/META-INF/xslt/transform.xslt b/tests/camel-performance/src/test/resources/META-INF/xslt/transform.xslt new file mode 100644 index 0000000..cbd3ebf --- /dev/null +++ b/tests/camel-performance/src/test/resources/META-INF/xslt/transform.xslt @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:stylesheet version="2.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:m0="http://services.samples/xsd" + xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> + + <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" exclude-result-prefixes="m0" /> + + <xsl:template match="m0:buyStocks"> + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> + <soapenv:Body> + <m:skcotSyub xmlns:m="http://services.samples/xsd"> + <xsl:for-each select="order"> + <redro> + <lobmys> + <xsl:value-of select="symbol" /> + </lobmys> + <DIreyub> + <xsl:value-of select="buyerID" /> + </DIreyub> + <ecirp> + <xsl:value-of select="price" /> + </ecirp> + <emulov> + <xsl:value-of select="volume" /> + </emulov> + </redro> + </xsl:for-each> + </m:skcotSyub> + </soapenv:Body> + </soapenv:Envelope> + </xsl:template> + + <xsl:template match="soapenv:Header"></xsl:template> +</xsl:stylesheet> \ No newline at end of file diff --git a/tests/camel-performance/src/test/resources/log4j2.properties b/tests/camel-performance/src/test/resources/log4j2.properties new file mode 100644 index 0000000..8957aa0 --- /dev/null +++ b/tests/camel-performance/src/test/resources/log4j2.properties @@ -0,0 +1,29 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +appender.file.type = File +appender.file.name = file +appender.file.fileName = target/camel-performance-test.log +appender.file.layout.type = PatternLayout +appender.file.layout.pattern = %d %-5p %c{1}.%M - %m%n +appender.out.type = Console +appender.out.name = out +appender.out.layout.type = PatternLayout +appender.out.layout.pattern = %d %-5p %c{1}.%M - %m%n +rootLogger.level = WARN +rootLogger.appenderRef.file.ref = file +rootLogger.appenderRef.out.ref = out diff --git a/tests/camel-performance/src/test/resources/store.jks b/tests/camel-performance/src/test/resources/store.jks new file mode 100644 index 0000000..02d7c4e Binary files /dev/null and b/tests/camel-performance/src/test/resources/store.jks differ diff --git a/tests/camel-performance/src/test/resources/wsdl/CBRWSDL-consumer-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/CBRWSDL-consumer-embedded.wsdl new file mode 100644 index 0000000..f61bfd0 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/CBRWSDL-consumer-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="CBRProxy"> + <port name="CBREchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:8192/service/CBRProxy"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/CBRWSDL-provider-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/CBRWSDL-provider-embedded.wsdl new file mode 100644 index 0000000..a6540d9 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/CBRWSDL-provider-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="CBREchoService"> + <port name="CBREchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:9000/service/EchoService"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/HBRSoapWSDL-consumer-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/HBRSoapWSDL-consumer-embedded.wsdl new file mode 100644 index 0000000..72d23cd --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/HBRSoapWSDL-consumer-embedded.wsdl @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://someuri" + xmlns:tns="http://someuri" + elementFormDefault="unqualified"> + <xsd:element name="routing" type="xsd:string"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="request_header" element="some:routing" xmlns:some="http://someuri"/> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:header use="literal" message="tns:EchoOperationRequest" part="request_header" required="true"/> + <soap:body use="literal" parts="parameters"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:header use="literal" message="tns:EchoOperationRequest" part="request_header" required="true"/> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:header use="literal" message="tns:EchoOperationRequest" part="request_header" required="true"/> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:header use="literal" message="tns:EchoOperationRequest" part="request_header" required="true"/> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:header use="literal" message="tns:EchoOperationRequest" part="request_header" required="true"/> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:header use="literal" message="tns:EchoOperationRequest" part="request_header" required="true"/> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="CBRSOAPHeaderProxy"> + <port name="CBRSOAPHeaderEchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:8192/service/CBRSOAPHeaderProxy"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/HBRSoapWSDL-provider-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/HBRSoapWSDL-provider-embedded.wsdl new file mode 100644 index 0000000..e2392f0 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/HBRSoapWSDL-provider-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="HBRSoapEchoService"> + <port name="HBRSoapEchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:9001/service/EchoService"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/HBRTransportWSDL-consumer-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/HBRTransportWSDL-consumer-embedded.wsdl new file mode 100644 index 0000000..4ece9fb --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/HBRTransportWSDL-consumer-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="CBRTransportHeaderProxy"> + <port name="CBRTransportHeaderEchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:8192/service/CBRTransportHeaderProxy"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/HBRTransportWSDL-provider-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/HBRTransportWSDL-provider-embedded.wsdl new file mode 100644 index 0000000..ee03250 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/HBRTransportWSDL-provider-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="HBRTransportEchoService"> + <port name="HBRTransportEchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:9000/service/EchoService"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/ProxyWSDL-consumer-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/ProxyWSDL-consumer-embedded.wsdl new file mode 100644 index 0000000..bb5bee0 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/ProxyWSDL-consumer-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="DirectProxy"> + <port name="EchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:8192/service/DirectProxy"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/ProxyWSDL-provider-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/ProxyWSDL-provider-embedded.wsdl new file mode 100644 index 0000000..7a62555 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/ProxyWSDL-provider-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="ProxyEchoService"> + <port name="EchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:9000/service/EchoService"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/SecureProxyWSDL-consumer-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/SecureProxyWSDL-consumer-embedded.wsdl new file mode 100644 index 0000000..5b34f98 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/SecureProxyWSDL-consumer-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="SecureProxy"> + <port name="EchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:8192/service/SecureProxy"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/SecureProxyWSDL-provider-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/SecureProxyWSDL-provider-embedded.wsdl new file mode 100644 index 0000000..57b8fa4 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/SecureProxyWSDL-provider-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="SecureEchoService"> + <port name="EchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:9000/service/EchoService"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/TransformerWSDL-consumer-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/TransformerWSDL-consumer-embedded.wsdl new file mode 100644 index 0000000..2591b6f --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/TransformerWSDL-consumer-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="XSLTProxy"> + <port name="EchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:8192/service/XSLTProxy"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wsdl/TransformerWSDL-provider-embedded.wsdl b/tests/camel-performance/src/test/resources/wsdl/TransformerWSDL-provider-embedded.wsdl new file mode 100644 index 0000000..6b9b3a1 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wsdl/TransformerWSDL-provider-embedded.wsdl @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="EchoWSDL" targetNamespace="http://services.samples/xsd" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://services.samples/xsd" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://services.samples/xsd" + xmlns:tns="http://services.samples/xsd" + elementFormDefault="unqualified"> + <xsd:complexType name="BuyStocks"> + <xsd:sequence> + <xsd:element name="order"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="symbol" type="xsd:string"></xsd:element> + <xsd:element name="buyerID" type="xsd:string"></xsd:element> + <xsd:element name="price" type="xsd:double"></xsd:element> + <xsd:element name="volume" type="xsd:int"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="buyStocks" type="tns:BuyStocks"></xsd:element> + </xsd:schema> + </types> + <message name="EchoOperationRequest"> + <part name="parameters" element="tns:buyStocks"/> + </message> + <message name="EchoOperationResponse"> + <part name="parameters" element="tns:buyStocks"/> + </message> + + <portType name="buyStocksPortType"> + <operation name="buyStocksOperation"> + <input name="message" message="tns:EchoOperationRequest"/> + <output name="message" message="tns:EchoOperationResponse"/> + </operation> + + <operation name="buyStocksOperation1K"> + <input name="message1K" message="tns:EchoOperationRequest"/> + <output name="message1K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation5K"> + <input name="message5K" message="tns:EchoOperationRequest"/> + <output name="message5K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation10K"> + <input name="message10K" message="tns:EchoOperationRequest"/> + <output name="message10K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation100K"> + <input name="message100K" message="tns:EchoOperationRequest"/> + <output name="message100K" message="tns:EchoOperationResponse"/> + </operation> + <operation name="buyStocksOperation500K"> + <input name="message500K" message="tns:EchoOperationRequest"/> + <output name="message500K" message="tns:EchoOperationResponse"/> + </operation> + </portType> + <binding name="EchoServiceSOAP11Binding" type="tns:buyStocksPortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="buyStocksOperation"> + <soap:operation soapAction="urn:buyStocks" style="document"/> + <input name="message"> + <soap:body use="literal"/> + </input> + <output name="message"> + <soap:body use="literal"/> + </output> + </operation> + + <operation name="buyStocksOperation1K"> + <soap:operation soapAction="urn:buyStocks.2" style="document"/> + <input name="message1K"> + <soap:body use="literal"/> + </input> + <output name="message1K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation5K"> + <soap:operation soapAction="urn:buyStocks.5" style="document"/> + <input name="message5K"> + <soap:body use="literal"/> + </input> + <output name="message5K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation10K"> + <soap:operation soapAction="urn:buyStocks.10" style="document"/> + <input name="message10K"> + <soap:body use="literal"/> + </input> + <output name="message10K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation100K"> + <soap:operation soapAction="urn:buyStocks.100" style="document"/> + <input name="message100K"> + <soap:body use="literal"/> + </input> + <output name="message100K"> + <soap:body use="literal"/> + </output> + </operation> + <operation name="buyStocksOperation500K"> + <soap:operation soapAction="urn:buyStocks.500" style="document"/> + <input name="message500K"> + <soap:body use="literal"/> + </input> + <output name="message500K"> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="XSLTEchoService"> + <port name="EchoServicePort" binding="tns:EchoServiceSOAP11Binding"> + <soap:address location="http://localhost:9000/service/EchoService"/> + </port> + </service> +</definitions> + diff --git a/tests/camel-performance/src/test/resources/wssecurity.properties b/tests/camel-performance/src/test/resources/wssecurity.properties new file mode 100644 index 0000000..68196c1 --- /dev/null +++ b/tests/camel-performance/src/test/resources/wssecurity.properties @@ -0,0 +1,21 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- +org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin +org.apache.ws.security.crypto.merlin.keystore.type=jks +org.apache.ws.security.crypto.merlin.keystore.password=password +org.apache.ws.security.crypto.merlin.file=store.jks +timeToLive=6307200000 \ No newline at end of file diff --git a/tests/camel-performance/src/test/resources/xslt/transform.xslt b/tests/camel-performance/src/test/resources/xslt/transform.xslt new file mode 100644 index 0000000..cbd3ebf --- /dev/null +++ b/tests/camel-performance/src/test/resources/xslt/transform.xslt @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:stylesheet version="2.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:m0="http://services.samples/xsd" + xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> + + <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" exclude-result-prefixes="m0" /> + + <xsl:template match="m0:buyStocks"> + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> + <soapenv:Body> + <m:skcotSyub xmlns:m="http://services.samples/xsd"> + <xsl:for-each select="order"> + <redro> + <lobmys> + <xsl:value-of select="symbol" /> + </lobmys> + <DIreyub> + <xsl:value-of select="buyerID" /> + </DIreyub> + <ecirp> + <xsl:value-of select="price" /> + </ecirp> + <emulov> + <xsl:value-of select="volume" /> + </emulov> + </redro> + </xsl:for-each> + </m:skcotSyub> + </soapenv:Body> + </soapenv:Envelope> + </xsl:template> + + <xsl:template match="soapenv:Header"></xsl:template> +</xsl:stylesheet> \ No newline at end of file diff --git a/tests/camel-performance/src/test/resources/xslt/transform_back.xslt b/tests/camel-performance/src/test/resources/xslt/transform_back.xslt new file mode 100644 index 0000000..04ea451 --- /dev/null +++ b/tests/camel-performance/src/test/resources/xslt/transform_back.xslt @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:stylesheet version="2.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:m0="http://services.samples/xsd"> + + <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" exclude-result-prefixes="m0" /> + + <xsl:template match="m0:skcotSyub"> + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> + <soapenv:Body> + <m:buyStocks xmlns:m="http://services.samples/xsd"> + <xsl:for-each select="redro"> + <order> + <symbol> + <xsl:value-of select="lobmys" /> + </symbol> + <buyerID> + <xsl:value-of select="DIreyub" /> + </buyerID> + <price> + <xsl:value-of select="ecirp" /> + </price> + <volume> + <xsl:value-of select="emulov" /> + </volume> + </order> + </xsl:for-each> + </m:buyStocks> + </soapenv:Body> + </soapenv:Envelope> + </xsl:template> +</xsl:stylesheet> \ No newline at end of file diff --git a/tests/pom.xml b/tests/pom.xml index a5e25db..4f56de4 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -36,6 +36,7 @@ <modules> <module>camel-jmh</module> + <module>camel-performance</module> </modules> </project>