diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-08 03:18:03 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-08 03:18:03 +0000 |
commit | d566b772b185beb77ca72a51c9250a767b239bfb (patch) | |
tree | acca9d8622c013ab46d4f9ac2066b779e654b9db /sandbox/lresende | |
parent | 6b7a8a38f609117572820711638508a23ad57850 (diff) |
Adding some tests to measure performance of local and remote invocation
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@907547 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/lresende')
15 files changed, 880 insertions, 0 deletions
diff --git a/sandbox/lresende/sca-2.x/itest/performance/pom.xml b/sandbox/lresende/sca-2.x/itest/performance/pom.xml new file mode 100644 index 0000000000..4c5bdd20de --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/pom.xml @@ -0,0 +1,168 @@ +<?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> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-performance</artifactId> + <name>Apache Tuscany SCA Performance Driver</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-feature-api</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-feature-core</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-feature-webservice</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <!-- + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-impl</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.apache.ant</groupId> + <artifactId>ant-nodeps</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.axis2</groupId> + <artifactId>addressing</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-xmlbeans</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-adb-codegen</artifactId> + </exclusion> + <exclusion> + <groupId>bouncycastle</groupId> + <artifactId>bcprov-jdk15</artifactId> + </exclusion> + <exclusion> + <groupId>opensaml</groupId> + <artifactId>opensaml</artifactId> + </exclusion> + </exclusions> + </dependency> + --> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-jsonrpc-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-jetty</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-monitor</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>junitperf</groupId> + <artifactId>junitperf</artifactId> + <version>1.8</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <systemProperties> + <property> + <name>log4j.configuration</name> + <value>log4j.properties</value> + </property> + <property> + <name>java.util.logging.config.file</name> + <value>logging.properties</value> + </property> + </systemProperties> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/Catalog.java b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/Catalog.java new file mode 100644 index 0000000000..b5e504fe11 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/Catalog.java @@ -0,0 +1,27 @@ +/* + * 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 services; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Catalog { + Item[] get(); +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/Item.java b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/Item.java new file mode 100644 index 0000000000..04110cdc13 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/Item.java @@ -0,0 +1,50 @@ +/* + * 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 services; + +public class Item { + private String name; + private double price; + + public Item() { + } + + public Item(String name, double price) { + this.name = name; + this.price = price; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/CatalogAggregatorImpl.java b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/CatalogAggregatorImpl.java new file mode 100644 index 0000000000..6999106ab9 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/CatalogAggregatorImpl.java @@ -0,0 +1,56 @@ +/* + * 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 services.sca; + +import org.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.Scope; +import org.oasisopen.sca.annotation.Service; + +import services.Catalog; +import services.Item; + +@Service(Catalog.class) +@Scope("COMPOSITE") +public class CatalogAggregatorImpl implements Catalog { + + @Reference + public Catalog fruitsCatalog; + + @Reference + public Catalog vegetablesCatalog; + + public Item[] get() { + Item[] fruits = fruitsCatalog.get(); + Item[] vegetables = vegetablesCatalog.get(); + + Item[] catalog = new Item[fruits.length + vegetables.length]; + int i =0; + for (Item item: fruits) { + catalog[i++] = item; + } + + for (Item item: vegetables) { + catalog[i++] = item; + } + + return catalog; + } + +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/FruitsCatalogImpl.java b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/FruitsCatalogImpl.java new file mode 100644 index 0000000000..b4c78a6ab4 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/FruitsCatalogImpl.java @@ -0,0 +1,30 @@ +package services.sca; + +import java.util.ArrayList; +import java.util.List; + +import org.oasisopen.sca.annotation.Init; +import org.oasisopen.sca.annotation.Scope; +import org.oasisopen.sca.annotation.Service; + +import services.Catalog; +import services.Item; + +@Service(Catalog.class) +@Scope("COMPOSITE") +public class FruitsCatalogImpl implements Catalog { + private List<Item> catalog = new ArrayList<Item>(); + + @Init + public void init() { + catalog.add(new Item("Apple", 2.99)); + catalog.add(new Item("Orange", 3.55)); + catalog.add(new Item("Pear", 1.55)); + } + + public Item[] get() { + Item[] catalogArray = new Item[catalog.size()]; + catalog.toArray(catalogArray); + return catalogArray; + } +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/VegetablesCatalogImpl.java b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/VegetablesCatalogImpl.java new file mode 100644 index 0000000000..06d13b3804 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/main/java/services/sca/VegetablesCatalogImpl.java @@ -0,0 +1,46 @@ +/* + * 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 services.sca; + +import java.util.ArrayList; +import java.util.List; + +import org.oasisopen.sca.annotation.Init; + +import services.Catalog; +import services.Item; + +public class VegetablesCatalogImpl implements Catalog { + + private List<Item> catalog = new ArrayList<Item>(); + + @Init + public void init() { + catalog.add(new Item("Broccoli", 2.99)); + catalog.add(new Item("Asparagus", 3.55)); + catalog.add(new Item("Cauliflower", 1.55)); + } + + public Item[] get() { + Item[] catalogArray = new Item[catalog.size()]; + catalog.toArray(catalogArray); + return catalogArray; + } +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogLocalTest.java b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogLocalTest.java new file mode 100644 index 0000000000..9914995e04 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogLocalTest.java @@ -0,0 +1,52 @@ +/* + * 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.tuscany.sca.performance; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Node; +import org.junit.Assert; +import org.junit.Test; + +import services.Catalog; + +/** + * @version $Rev$ $Date$ + */ +public class CatalogLocalTest extends TestCase { + public static String COMPOSITE = "catalog-local.composite"; + + private Node node; + + public CatalogLocalTest() { + super(); + } + + public CatalogLocalTest(String name, Node node) { + super(name); + this.node = node; + } + + @Test + public void testCatalog() throws Exception { + Catalog catalogService = node.getService(Catalog.class, "CatalogAggregator"); + Assert.assertEquals(6, catalogService.get().length); + } +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteJsonRPCTest.java b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteJsonRPCTest.java new file mode 100644 index 0000000000..cfebd1c52b --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteJsonRPCTest.java @@ -0,0 +1,48 @@ +/* + * 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.tuscany.sca.performance; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Node; +import org.junit.Assert; +import org.junit.Test; + +import services.Catalog; + +/** + * @version $Rev$ $Date$ + */ +public class CatalogRemoteJsonRPCTest extends TestCase { + public static String COMPOSITE = "catalog-remote-jsonrpc.composite"; + + private Node node; + + public CatalogRemoteJsonRPCTest(String name, Node node) { + super(name); + this.node = node; + } + + @Test + public void testCatalog() throws Exception { + Catalog catalogService = node.getService(Catalog.class, "CatalogAggregator"); + Assert.assertEquals(6, catalogService.get().length); + } +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteWsTest.java b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteWsTest.java new file mode 100644 index 0000000000..075789a327 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteWsTest.java @@ -0,0 +1,48 @@ +/* + * 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.tuscany.sca.performance; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Node; +import org.junit.Assert; +import org.junit.Test; + +import services.Catalog; + +/** + * @version $Rev$ $Date$ + */ +public class CatalogRemoteWsTest extends TestCase { + public static String COMPOSITE = "catalog-remote-ws.composite"; + + private Node node; + + public CatalogRemoteWsTest(String name, Node node) { + super(name); + this.node = node; + } + + @Test + public void testCatalog() throws Exception { + Catalog catalogService = node.getService(Catalog.class, "CatalogAggregator"); + Assert.assertEquals(6, catalogService.get().length); + } +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/LoadTestCase.java b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/LoadTestCase.java new file mode 100644 index 0000000000..57648a7137 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/java/org/apache/tuscany/sca/performance/LoadTestCase.java @@ -0,0 +1,129 @@ +/* + * 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.tuscany.sca.performance; + +import java.text.NumberFormat; +import java.util.concurrent.TimeUnit; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.Test; + +import com.clarkware.junitperf.ConstantTimer; +import com.clarkware.junitperf.LoadTest; +import com.clarkware.junitperf.Timer; + +public class LoadTestCase { + private static int USERS = 50; + private static int ITERATIONS = 10; + private static Timer TIMER = new ConstantTimer(10); + + protected static synchronized Node initializeTuscanyRuntime(String composite) { + System.out.println(">>> initializing Tuscany Runtime...."); + + /* + Node node = null; + + NodeFactory factory = NodeFactory.getInstance(); + + String location = ContributionLocationHelper.getContributionLocation(LoadTestCase.class); + + ContributionConfiguration contributionConfiguration = + factory.createContributionConfiguration() + .addDeploymentComposite(composite) + .setURI("c") + .setLocation(location); + + NodeConfiguration configuration = + factory.createNodeConfiguration() + //.setDomainURI("tuscany:performance") + .addContribution(contributionConfiguration); + + node = factory.createNode(configuration); + node.start(); + */ + + /**/ + long startTime = 0; + long endTime = 0; + long duration = 0; + + Node node = null; + + startTime = System.nanoTime(); + + String location = ContributionLocationHelper.getContributionLocation(LoadTestCase.class); + node = NodeFactory.newInstance().createNode(composite, new Contribution("c", location)); + node.start(); + + endTime = System.nanoTime(); + duration = TimeUnit.MILLISECONDS.convert(endTime - startTime, TimeUnit.NANOSECONDS); + + System.out.println(">>> >>> Runtime initialization: " + + NumberFormat.getInstance().format(duration) + " ms"); + + /**/ + + return node; + } + + public static junit.framework.Test localTests() { + System.out.println("#### Local Tests"); + Node node = initializeTuscanyRuntime(CatalogLocalTest.COMPOSITE); + junit.framework.Test testCase = new CatalogLocalTest("testCatalog", node); + junit.framework.Test loadTest = new LoadTest(testCase, USERS, ITERATIONS, TIMER); + //node.stop(); + return loadTest; + } + + public static junit.framework.Test jsonTests() { + System.out.println("#### JSON-RPC Remote Tests"); + Node node = initializeTuscanyRuntime(CatalogRemoteJsonRPCTest.COMPOSITE); + junit.framework.Test testCase = new CatalogRemoteJsonRPCTest("testCatalog", node); + junit.framework.Test loadTest = new LoadTest(testCase, USERS, ITERATIONS, TIMER); + //node.stop(); + return loadTest; + } + + public static junit.framework.Test wsTests() { + System.out.println("#### WS Remote Tests"); + Node node = initializeTuscanyRuntime(CatalogRemoteWsTest.COMPOSITE); + junit.framework.Test testCase = new CatalogRemoteJsonRPCTest("testCatalog", node ); + junit.framework.Test loadTest = new LoadTest(testCase, USERS, ITERATIONS, TIMER); + //node.stop(); + return loadTest; + } + + @Test + public void run() throws Exception { + junit.textui.TestRunner.run(localTests()); + junit.textui.TestRunner.run(jsonTests()); + junit.textui.TestRunner.run(wsTests()); + } + + + public static void main(String[] args) throws Exception { + LoadTestCase loadTest = new LoadTestCase(); + loadTest.run(); + } + +} diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-local.composite b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-local.composite new file mode 100644 index 0000000000..707bc5ae32 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-local.composite @@ -0,0 +1,51 @@ +<?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. +--> +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" + targetNamespace="http://store" + name="catalog-local"> + + <component name="CatalogAggregator"> + <implementation.java class="services.sca.CatalogAggregatorImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog"/> + </service> + <reference name="fruitsCatalog" target="FruitsCatalog"> + <interface.java interface="services.Catalog"/> + </reference> + <reference name="vegetablesCatalog" target="VegetablesCatalog"> + <interface.java interface="services.Catalog"/> + </reference> + </component> + + <component name="FruitsCatalog"> + <implementation.java class="services.sca.FruitsCatalogImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog"/> + </service> + </component> + + <component name="VegetablesCatalog"> + <implementation.java class="services.sca.FruitsCatalogImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog"/> + </service> + </component> +</composite> diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-remote-jsonrpc.composite b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-remote-jsonrpc.composite new file mode 100644 index 0000000000..545b9d7b10 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-remote-jsonrpc.composite @@ -0,0 +1,55 @@ +<?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. +--> +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" + targetNamespace="http://store" + name="catalog-remote-jsonrpc"> + + <component name="CatalogAggregator"> + <implementation.java class="services.sca.CatalogAggregatorImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog" remotable="true"/> + </service> + <reference name="fruitsCatalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <tuscany:binding.jsonrpc uri="http://localhost:8085/FruitsCatalog"/> + </reference> + <reference name="vegetablesCatalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <tuscany:binding.jsonrpc uri="http://localhost:8085/VegetableCatalog" /> + </reference> + </component> + + <component name="FruitsCatalog"> + <implementation.java class="services.sca.FruitsCatalogImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <tuscany:binding.jsonrpc uri="http://localhost:8085/FruitsCatalog" /> + </service> + </component> + + <component name="VegetablesCatalog"> + <implementation.java class="services.sca.FruitsCatalogImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <tuscany:binding.jsonrpc uri="http://localhost:8085/VegetableCatalog" /> + </service> + </component> +</composite> diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-remote-ws.composite b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-remote-ws.composite new file mode 100644 index 0000000000..5ad7789e84 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/catalog-remote-ws.composite @@ -0,0 +1,55 @@ +<?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. +--> +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" + targetNamespace="http://store" + name="catalog-remote-ws"> + + <component name="CatalogAggregator"> + <implementation.java class="services.sca.CatalogAggregatorImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog" remotable="true"/> + </service> + <reference name="fruitsCatalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <binding.ws uri="http://localhost:8086/FruitsCatalog"/> + </reference> + <reference name="vegetablesCatalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <binding.ws uri="http://localhost:8086/VegetableCatalog"/> + </reference> + </component> + + <component name="FruitsCatalog"> + <implementation.java class="services.sca.FruitsCatalogImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <binding.ws uri="http://localhost:8086/FruitsCatalog"/> + </service> + </component> + + <component name="VegetablesCatalog"> + <implementation.java class="services.sca.FruitsCatalogImpl"/> + <service name="Catalog"> + <interface.java interface="services.Catalog" remotable="true"/> + <binding.ws uri="http://localhost:8086/VegetableCatalog"/> + </service> + </component> +</composite> diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/log4j.properties b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/log4j.properties new file mode 100644 index 0000000000..05e7450068 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/log4j.properties @@ -0,0 +1,28 @@ +# +# +# 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. +# +# + +# Configure the console as our one appender +log4j.appender.A1=org.apache.log4j.ConsoleAppender +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n + +#tuscany debug messages +log4j.category.org.apache.tuscany=DEBUG,A1 diff --git a/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/logging.properties b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/logging.properties new file mode 100644 index 0000000000..d7f03147b2 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/performance/src/test/resources/logging.properties @@ -0,0 +1,37 @@ +# +# +# 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. +# +# +# A default java.util.logging configuration. +# (All App Engine logging is through java.util.logging by default). +# +# To use this configuration, copy it into your application's WEB-INF +# folder and add the following to your appengine-web.xml: +# +# <system-properties> +# <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> +# </system-properties> +# + +# Set the default logging level for all loggers to WARNING +.level = DEBUG + +#tuscany debug messages +org.apache.tuscany.level = DEBUG + |