tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sl...@apache.org
Subject svn commit: r1296844 - in /tuscany/sca-java-2.x/trunk/testing/itest/performance: ./ performance-contribution1/ performance-contribution1/src/ performance-contribution1/src/main/ performance-contribution1/src/main/java/ performance-contribution1/src/mai...
Date Sun, 04 Mar 2012 17:43:56 GMT
Author: slaws
Date: Sun Mar  4 17:43:54 2012
New Revision: 1296844

URL: http://svn.apache.org/viewvc?rev=1296844&view=rev
Log:
Some test code I'm using to check that memory leak code copied from 1.x is working as expected.
Not in build. 

Added:
    tuscany/sca-java-2.x/trunk/testing/itest/performance/   (with props)
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/   (with
props)
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/pom.xml
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/BeanA.java
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/Helloworld.java
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldClientImpl.java
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldServiceImpl.java
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/resources/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/resources/PerformanceTest.composite
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/   (with props)
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/pom.xml
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/BeanA.java
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/Helloworld.java
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/test/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/test/performance/
    tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/test/performance/PerformanceTestCase.java
    tuscany/sca-java-2.x/trunk/testing/itest/performance/pom.xml

Propchange: tuscany/sca-java-2.x/trunk/testing/itest/performance/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Mar  4 17:43:54 2012
@@ -0,0 +1 @@
+target

Propchange: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Mar  4 17:43:54 2012
@@ -0,0 +1,4 @@
+.classpath
+.project
+.settings
+target

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/pom.xml?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/pom.xml
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/pom.xml
Sun Mar  4 17:43:54 2012
@@ -0,0 +1,50 @@
+<?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>
+    </parent>
+    <artifactId>itest-performance-contribution1</artifactId>
+    <name>Apache Tuscany SCA iTest Performance Contribution1</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-base-runtime-pom</artifactId>
+            <type>pom</type>
+            <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>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-jetty</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+</project>

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/BeanA.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/BeanA.java?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/BeanA.java
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/BeanA.java
Sun Mar  4 17:43:54 2012
@@ -0,0 +1,44 @@
+/*
+ * 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.test.performance;
+
+import org.oasisopen.sca.annotation.Reference;
+import org.oasisopen.sca.annotation.Service;
+
+public class BeanA {
+    
+    private String field1;
+    private int    field2;
+    
+    public String getField1() {
+        return field1;
+    }
+    
+    public void setField1(String field1) {
+        this.field1 = field1;
+    }
+    
+    public int getField2() {
+        return field2;
+    }
+    
+    public void setField2(int field2) {
+        this.field2 = field2;
+    }
+}

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/Helloworld.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/Helloworld.java?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/Helloworld.java
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/Helloworld.java
Sun Mar  4 17:43:54 2012
@@ -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.    
+ */
+package org.apache.tuscany.sca.test.performance;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface Helloworld {
+
+    String sayHello(String name, BeanA beanA);
+
+}

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldClientImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldClientImpl.java?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldClientImpl.java
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldClientImpl.java
Sun Mar  4 17:43:54 2012
@@ -0,0 +1,36 @@
+/*
+ * 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.test.performance.impl;
+
+import org.apache.tuscany.sca.test.performance.BeanA;
+import org.apache.tuscany.sca.test.performance.Helloworld;
+import org.oasisopen.sca.annotation.Reference;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(Helloworld.class)
+public class HelloworldClientImpl implements Helloworld {
+    
+    @Reference
+    public Helloworld helloWorld;
+
+    public String sayHello(String name, BeanA beanA) {
+        return "Hello " + helloWorld.sayHello(name, beanA);
+    }
+
+}

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldServiceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldServiceImpl.java?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldServiceImpl.java
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/java/org/apache/tuscany/sca/test/performance/impl/HelloworldServiceImpl.java
Sun Mar  4 17:43:54 2012
@@ -0,0 +1,30 @@
+/*
+ * 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.test.performance.impl;
+
+import org.apache.tuscany.sca.test.performance.BeanA;
+import org.apache.tuscany.sca.test.performance.Helloworld;
+
+public class HelloworldServiceImpl implements Helloworld {
+
+    public String sayHello(String name, BeanA beanA) {
+        return "Hello " + name + " " + beanA.getField1();
+    }
+
+}

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/resources/PerformanceTest.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/resources/PerformanceTest.composite?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/resources/PerformanceTest.composite
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-contribution1/src/main/resources/PerformanceTest.composite
Sun Mar  4 17:43:54 2012
@@ -0,0 +1,37 @@
+<?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:foo="http://foo" 
+           targetNamespace="http://foo"
+  name="PerformanceTest">
+  
+  <component name="HelloWorldClientComponent">
+    <implementation.java class="org.apache.tuscany.sca.test.performance.impl.HelloworldClientImpl"
/>
+    <reference name="helloWorld" target="HelloWorldServiceComponent" />
+  </component>
+
+  <component name="HelloWorldServiceComponent">
+    <implementation.java class="org.apache.tuscany.sca.test.performance.impl.HelloworldServiceImpl"
/>
+    <service name="Helloworld">
+        <binding.ws/>
+    </service>
+  </component>
+  
+</composite>

Propchange: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Mar  4 17:43:54 2012
@@ -0,0 +1,7 @@
+.classpath
+.project
+.settings
+heap_start.bin
+heap_stop.bin
+out.txt
+target

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/pom.xml?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/pom.xml (added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/pom.xml Sun Mar
 4 17:43:54 2012
@@ -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.    
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-itest</artifactId>
+        <version>2.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>itest-performance-test</artifactId>
+    <name>Apache Tuscany SCA iTest Performance Test</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-base-runtime-pom</artifactId>
+            <type>pom</type>
+            <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>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-jetty</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+               
+    </dependencies>
+</project>

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/BeanA.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/BeanA.java?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/BeanA.java
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/BeanA.java
Sun Mar  4 17:43:54 2012
@@ -0,0 +1,41 @@
+/*
+ * 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.test.performance.client;
+
+public class BeanA {
+    
+    private String field1;
+    private int    field2;
+    
+    public String getField1() {
+        return field1;
+    }
+    
+    public void setField1(String field1) {
+        this.field1 = field1;
+    }
+    
+    public int getField2() {
+        return field2;
+    }
+    
+    public void setField2(int field2) {
+        this.field2 = field2;
+    }
+}

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/Helloworld.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/Helloworld.java?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/Helloworld.java
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/main/java/org/apache/tuscany/sca/test/performance/client/Helloworld.java
Sun Mar  4 17:43:54 2012
@@ -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.    
+ */
+package org.apache.tuscany.sca.test.performance.client;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface Helloworld {
+
+    String sayHello(String name, BeanA beanA);
+
+}

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/test/performance/PerformanceTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/test/performance/PerformanceTestCase.java?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/test/performance/PerformanceTestCase.java
(added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/performance-test/src/test/java/org/apache/tuscany/sca/test/performance/PerformanceTestCase.java
Sun Mar  4 17:43:54 2012
@@ -0,0 +1,423 @@
+/*
+ * 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.test.performance;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.OperatingSystemMXBean;
+import java.lang.ref.WeakReference;
+
+import javax.management.MBeanServer;
+
+import org.apache.tuscany.sca.Node;
+import org.apache.tuscany.sca.TuscanyRuntime;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper;
+import org.apache.tuscany.sca.impl.NodeImpl;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceFactoryImpl;
+import org.apache.tuscany.sca.test.performance.client.BeanA;
+import org.apache.tuscany.sca.test.performance.client.Helloworld;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.sun.management.HotSpotDiagnosticMXBean;
+
+/*
+ * A test looking at memory and runtime performance. 
+ * TODO - only a couple of memory tests to start with
+ */
+public class PerformanceTestCase {
+    
+    public boolean writeHeapDump = false;
+
+    private static BufferedWriter resultsFile = null;
+    
+    private TuscanyRuntime runtime;
+    private Node node;
+    private ExtensionPointRegistry extensionPointRegistry;
+    private long lastTotal = 0;
+    private long lastFree = 0;
+    private long lastUsed = 0;
+    
+    @BeforeClass
+    public static void setUp() throws Exception {
+        FileWriter fileWriter = new FileWriter("out.txt");
+        resultsFile = new BufferedWriter(fileWriter);
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        resultsFile.flush();
+        resultsFile.close();
+    }
+
+    @Test
+    public void testInstallUninstall() {
+        dumpHeapStart();
+        
+        printRuntimeStats("createRuntime");
+        
+        createRuntime();
+        
+        printRuntimeStats("createNode");
+        
+        createNode();
+        
+        callInstallUninstallRepeatedly(10);
+        
+        checkCacheStatus();
+        
+        printRuntimeStats("stopNode");
+        
+        stopNode();
+        
+        printRuntimeStats("destroyNode");
+        
+        destroyNode();
+        
+        printRuntimeStats("stopRuntime");
+        
+        stopRuntime();
+        
+        printRuntimeStats("destroyRuntime");
+        
+        destroyRuntime();
+        
+        printRuntimeStats("End");
+        
+        dumpHeapEnd();
+    }
+    
+
+    @Test
+    public void testCall() {
+        dumpHeapStart();
+        
+        printRuntimeStats("createRuntime");
+        
+        createRuntime();
+        
+        printRuntimeStats("createNode");
+        
+        createNode();
+        
+        printRuntimeStats("installContribution");
+        
+        installContribution();
+        
+        printRuntimeStats("startNode");
+        
+        startComposite();
+        
+        printRuntimeStats("callServiceRepeatedly 10000 times");
+        
+        callServiceRepeatedly(10000);
+        
+        printRuntimeStats("stopCompositeAndUninstallUnused");
+        
+        stopCompositeAndUninstallUnused();
+        
+        //printRuntimeStats("uninstallContribution");
+        
+        //uninstallContribution();
+        
+        printRuntimeStats("stopNode");
+        
+        stopNode();
+        
+        printRuntimeStats("destroyNode");
+        
+        destroyNode();
+        
+        printRuntimeStats("stopRuntime");
+        
+        stopRuntime();
+        
+        printRuntimeStats("destroyRuntime");
+        
+        destroyRuntime();
+        
+        printRuntimeStats("End");
+        
+        dumpHeapEnd();
+    }
+    
+    public void checkCacheStatus(){
+        UtilityExtensionPoint utilityExtensionPoint = extensionPointRegistry.getExtensionPoint(UtilityExtensionPoint.class);
+        JAXBContextHelper jaxbContextHelper = utilityExtensionPoint.getUtility(JAXBContextHelper.class);
+        
+        Assert.assertEquals("JAXBContextCache > 1", 1, jaxbContextHelper.getJAXBContextCache().getCache().keySet().size());
+        
+        FactoryExtensionPoint factoryExtensionPoint = extensionPointRegistry.getExtensionPoint(FactoryExtensionPoint.class);
+        JavaInterfaceFactory javaInterfaceFactory = factoryExtensionPoint.getFactory(JavaInterfaceFactory.class);
+        Assert.assertEquals("JavaInterfaceFactoryImpl.normalCache > 1", 1, ((JavaInterfaceFactoryImpl)javaInterfaceFactory).getNormalCache().keySet().size());
+        
+    }
+    
+    // ============================================================
+    
+    public void callInstallUninstallRepeatedly(int repeatCount) {
+        for (int i =0; i < repeatCount; i++){
+            printRuntimeStats("install/unistall contribution");
+            
+            installContribution();
+            
+            startComposite();
+            
+            callService();       
+            
+            stopCompositeAndUninstallUnused();
+            
+            //uninstallContribution();
+        }
+    }
+    
+    public void callServiceRepeatedly(int repeatCount) {
+        for (int i =0; i < repeatCount; i++){
+            callService();
+        }
+    }
+    
+    // ============================================================
+    
+    public void dumpHeapStart(){
+        if (writeHeapDump){
+            dumpHeap("heap_start.bin");
+        }
+    }
+    
+    public void dumpHeapEnd(){
+        if (writeHeapDump){
+            dumpHeap("heap_stop.bin");
+            
+            System.out.println("You can watch a JVM run using \n" +
+                               " jconsole \n" + 
+                               "You can manually dump the heap using \n" +
+                               " jmap -dump:file=heapdump.bin 345" +
+                               "Where 345 is the process id from jconsole \n" +
+                               "The program dumps the heap at the start and end. You can
look at them using \n" +
+                               " jhat -J-Xmx512m heap_start.bin\n" +
+                               " jhat -J-Xmx512m heap_stop.bin\n" +
+                               "Then point your browser at\n" +
+                               " http://localhost:7000/");
+        } else {
+            System.out.println("NO HEAP DUMPS WRITTEN");
+        }
+    }
+    
+    public void createRuntime() {
+        runtime = TuscanyRuntime.newInstance();
+    }
+    
+    public void createNode() {
+        node = runtime.createNode("default");
+        extensionPointRegistry = ((NodeImpl)node).getExtensionPointRegistry();
+    }
+    
+    public void installContribution() {
+        try {
+            node.installContribution("performance", "../performance-contribution1/target/itest-performance-contribution1-2.0-SNAPSHOT.jar",
null, null);
+        } catch (Exception ex){
+            ex.printStackTrace();
+        }
+    }
+    
+    public void startComposite() {
+        try {
+            node.startComposite("performance", "PerformanceTest.composite");
+        } catch (Exception ex){
+            ex.printStackTrace();
+        }
+    }
+    
+    public void stopCompositeAndUninstallUnused(){
+        try { 
+            node.stopCompositeAndUninstallUnused("performance", "PerformanceTest.composite");
+        } catch (Exception ex){
+            ex.printStackTrace();
+        }            
+    }
+    
+    public void uninstallContribution(){
+        try {
+            node.installContribution("performance");
+        } catch (Exception ex){
+            ex.printStackTrace();
+        }
+    }
+    
+    public void stopNode(){
+        node.stop();
+    }
+    
+    public void destroyNode() {
+        node = null;
+    }
+    
+    public void stopRuntime() {
+        runtime.stop();
+    }
+    
+    public void destroyRuntime() {
+        runtime = null;
+    }
+    
+    public void callService() {
+        try {
+            Helloworld helloWorldClient = node.getService(Helloworld.class, "HelloWorldClientComponent");
+            
+            assertNotNull(helloWorldClient);  
+            
+            BeanA beanA = new BeanA();
+            beanA.setField1("Smith");
+            beanA.setField2(13);
+            
+            assertEquals("Hello Hello Jane Smith", helloWorldClient.sayHello("Jane", beanA));
+        } catch (Exception ex) {
+            fail(ex.toString());
+        }
+    }
+    
+    public void printRuntimeStats(String step){
+        tryToGC();
+        
+        Runtime runtime = Runtime.getRuntime();
+        
+        long used  = runtime.totalMemory() - runtime.freeMemory();
+        long free  = runtime.freeMemory();
+        long total = runtime.totalMemory();
+        
+        String stats = "U " + used  + "[" + (used  - lastUsed ) + "] \t" +
+                       "F " + free  + "[" + (free  - lastFree ) + "] \t" +
+                       "T " + total + "[" + (total - lastTotal) + "] \t" +
+                       step + "\n";
+            
+        try {
+            resultsFile.write(stats);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+            
+        System.out.print(stats);
+        
+        lastTotal = total;
+        lastFree  = free;
+        lastUsed  = used;
+    }
+    
+    /** 
+     * We can't rely on GC doing anything sensible
+     * but I'm just playing here to see if I can 
+     * force it to GC
+     */
+    public void tryToGC(){
+
+        Runtime runtime = Runtime.getRuntime();
+        
+/*        
+        // force OOME
+        StringBuffer sb = new StringBuffer();
+        try {
+            while(true)
+            {
+                sb.append("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
+            }
+        } catch (OutOfMemoryError ex){
+            // we are going to GC now
+            System.out.println("OOME");
+        }
+        sb = null;
+       
+        
+        for (int i = 0; i < 10; i++){
+            Object obj = new Object();
+            WeakReference ref = new WeakReference<Object>(obj);
+            obj = null;
+            while(ref.get() != null) {
+                runtime.runFinalization();
+                runtime.gc();
+                try {
+                    Thread.sleep(100);
+                } catch (InterruptedException e) {
+                    // Do nothing
+                }
+            }
+        }
+*/         
+    }
+    
+    public void dumpHeap(String heapName){
+        String vendor = System.getProperty("java.vendor");
+        if (vendor.contains("Sun")){
+            dumpHeapSun(heapName);
+        }
+    }
+    
+
+    public void dumpHeapSun(String heapName){
+        final MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
+        final OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean();
+        final MBeanServer platformBean = ManagementFactory.getPlatformMBeanServer();
+        
+        HotSpotDiagnosticMXBean bean = null;
+        
+        try {
+            bean = ManagementFactory.newPlatformMXBeanProxy(platformBean,
+                                                            "com.sun.management:type=HotSpotDiagnostic",

+                                                            HotSpotDiagnosticMXBean.class);
+            deleteFile(heapName);
+            bean.dumpHeap(heapName, false);
+        } catch(Exception ex){
+            ex.printStackTrace();
+        } 
+    }
+    
+    public void dumpHeapIBM(){
+        
+    }
+    
+    public void deleteFile(String filename){
+        File theFile = new File(filename);
+        theFile.delete();
+    }
+    
+    public void waitForInput() {
+        System.out.println("Press a key to end");
+        try {
+            System.in.read();
+        } catch (Exception ex) {
+        }
+        System.out.println("Continuing");
+    }  
+    
+    // final MemoryMXBean mb = ManagementFactory.getMemoryMXBean();
+    // com.sun.management.OperatingSystemMXBean if java.lang.management.OperationSystemMXBean
+}

Added: tuscany/sca-java-2.x/trunk/testing/itest/performance/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/performance/pom.xml?rev=1296844&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/performance/pom.xml (added)
+++ tuscany/sca-java-2.x/trunk/testing/itest/performance/pom.xml Sun Mar  4 17:43:54 2012
@@ -0,0 +1,36 @@
+<?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 iTest Performance</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>performance-contribution1</module>
+        <module>performance-test</module>
+    </modules>
+</project>



Mime
View raw message