summaryrefslogtreecommitdiffstats
path: root/java/sca-1.x-contrib/demos
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:56:01 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:56:01 +0000
commitcf61fc6ced05607d9674781ebfc0c45fa1300124 (patch)
tree0aa8205859f8315055f820e13b7636765cd99a78 /java/sca-1.x-contrib/demos
parent3a23c5a6a783a4b7330d9be300013919d4256ca4 (diff)
Moving 1.x contribs
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835167 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca-1.x-contrib/demos')
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/LICENSE205
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/NOTICE6
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/README76
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/build-tomcat.xml96
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/build.xml125
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/pom.xml349
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java57
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java33
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java35
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java31
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java42
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java96
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite33
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml24
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite32
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml37
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf28
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties18
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml391
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml26
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml391
-rw-r--r--java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml391
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/LICENSE205
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/NOTICE6
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/build.xml446
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/pom.xml148
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNode.java57
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNodeDaemon.java79
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/TestJob.java82
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolDaemon.java271
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolNode.java179
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/workerRules1.drl13
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MetaComponentWorker.java85
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MyWorker.java46
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/NullJob.java43
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/ResultJob.java54
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/Trigger.java29
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManager.java31
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManagerImpl.java213
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerService.java56
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceCallback.java27
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceImpl.java171
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBean.java162
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBeanListener.java25
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolEvent.java71
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManager.java48
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManagerImpl.java555
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolService.java91
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolServiceImpl.java416
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/META-INF/sca-contribution.xml24
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/Workpool.composite47
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/META-INF/sca-contribution.xml24
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/Workpool.composite38
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/META-INF/sca-contribution.xml24
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/Workpool.composite38
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/META-INF/sca-contribution.xml24
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/Workpool.composite38
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/META-INF/sca-contribution.xml24
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/Workpool.composite38
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/src/test/java/workpool/AComponent.java25
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/workerRules.drl9
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/workerRules1.drl9
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/workerRules2.drl8
-rw-r--r--java/sca-1.x-contrib/demos/workpool-distributed/workerRules3.drl14
64 files changed, 0 insertions, 6515 deletions
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/LICENSE b/java/sca-1.x-contrib/demos/load-balancing-webapp/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
-
-
-
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/NOTICE b/java/sca-1.x-contrib/demos/load-balancing-webapp/NOTICE
deleted file mode 100644
index fdfa0e9faa..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2008 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/README b/java/sca-1.x-contrib/demos/load-balancing-webapp/README
deleted file mode 100644
index b7bbb64b1a..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/README
+++ /dev/null
@@ -1,76 +0,0 @@
-WebApp Load Balancing Demo
-===========================
-
-Demonstrates balancing load acoss SCA services by deploying an SCA composite
-to two tomcat servers in a cluster. The tomcat servers sit behind an Apache
-server which directs load to one or other tomcat server based on a set of rules.
-
-The mvn pom distributed with this sample will download, install and configure
-two Tomcat servers automatically to act as workers. You need to install the
-Apache web server and configure it manually.
-
-1 - Install and configure the Tomcat workers
-
-mvn
-
-This results in two tomcat servers at
-
-target/tomcat-8085
-target/tomcat-8086
-
-2 - Install and configure the Apache server to balance load
-
-In this case we've chosen to use the native JK connector. There are several
-resources that tell you how to configure Apache for load balancing Tomcat with
-the JK connector. For example,
-
-http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
-http://www.crazysquirrel.com/computing/debian/servers/tomcat55.jspx
-
-Here is a high level summary
-
-Download the latest version of Apache 2.2 (this demo was built with Apache 2.2.6)
- http://httpd.apache.org/
- Install in a local director called, say, apache
-
-Download the mod_jk module (in binary form if you can)
- http://tomcat.apache.org/download-connectors.cgi
- Install it in apache/modules
-
-Configure the mod_jk module
- Copy src/test/resources/apache-80/conf/workers.properties to apache/conf
- Append the contents of src/test/resources/apache-80/conf/httpd.conf to apache/conf/httpf.conf
-
-3 - Start the apache and tomcat servers
-
-In three command prompts
-
-cd target/tomcat-8085
-bin/catalina run
-
-cd target/tomcat-8086
-bin/catalina run
-
-cd apache
-bin/httpd
-
-4 - Run the client
-
-run the LanchClient program - TBD - need a script
-
-5 - Result
-
-The client will make 10 calls to the SCA service described in the helloworldws.composite that
-is part of the webapp deployed to the tomcat servers. You will see the result of this
-service call reported at the client in the form
-
-Called getGreetings
-Hello World 6
-
-If you look at the Tomcat consoles you will see that each server deals with half the requests
-as the load is balanced equally between the two of them.
-
-
-
-
-
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/build-tomcat.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/build-tomcat.xml
deleted file mode 100644
index 7e1dc4b0e9..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/build-tomcat.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?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 name="TomcatZipInstaller">
-
- <!--property name="tomcat.series" value="6"/>
- <property name="tomcat.version" value="6.0.16"/-->
- <property name="tomcat.series" value="5"/>
- <property name="tomcat.version" value="5.5.26"/>
- <property name="unpack.location" value="${basedir}/target/tomcat"/>
- <property name="repo.location" value="${basedir}/target/repo"/>
-
- <target name="check-tomcat-downloaded">
- <condition property="already.downloaded" >
- <available file="${repo.location}/apache-tomcat-${tomcat.version}.zip"/>
- </condition>
- <condition property="maven.suffix" value="">
- <os family="unix"/>
- </condition>
- <condition property="maven.suffix" value=".bat">
- <os family="windows"/>
- </condition>
- </target>
-
- <target name="download-tomcat" depends="check-tomcat-downloaded" unless="already.downloaded">
- <mkdir dir="${repo.location}"/>
- <get src="http://www.apache.org/dist/jakarta/tomcat-${tomcat.series}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip"
- dest="${repo.location}/apache-tomcat-${tomcat.version}.zip"
- verbose="true"
- usetimestamp="true"/>
- </target>
-
- <target name="check-tomcat-unpacked">
- <condition property="already.unpacked" >
- <available file="${unpack.location}-${port}"/>
- </condition>
- </target>
-
- <target name="unpack-tomcat" depends="check-tomcat-downloaded, check-tomcat-unpacked" unless="already.unpacked">
- <fail message="tomcat zip file not downloaded" unless="already.downloaded"/>
- <mkdir dir="${unpack.location}-${port}/"/>
- <unzip src="${repo.location}/apache-tomcat-${tomcat.version}.zip"
- dest="."
- overwrite="false">
- </unzip>
- <move file="apache-tomcat-${tomcat.version}"
- tofile="${unpack.location}-${port}/"
- overwrite="false"
- verbose="false"/>
- <delete dir="apache-tomcat-${tomcat.version}"/>
- </target>
-
- <target name="configure-tomcat" depends="check-tomcat-downloaded, check-tomcat-unpacked">
- <fail message="tomcat zip file not downloaded" unless="already.downloaded"/>
- <fail message="tomcat zip file not unpacked" unless="already.unpacked"/>
- <copy todir="${unpack.location}-${port}/"
- overwrite="true"
- verbose="false">
- <fileset dir="${basedir}/src/test/resources/tomcat-${port}"/>
- </copy>
- <mkdir dir="${unpack.location}-${port}/webapps/balancer/WEB-INF/classes/org"/>
- <copy todir="${unpack.location}-${port}/webapps/balancer/WEB-INF/classes/org"
- overwrite="true"
- verbose="false">
- <fileset dir="${basedir}/target/classes/org"/>
- </copy>
-
- </target>
-
- <target name="copy-webapp" depends="check-tomcat-downloaded, check-tomcat-unpacked">
- <fail message="tomcat zip file not downloaded" unless="already.downloaded"/>
- <fail message="tomcat zip file not unpacked" unless="already.unpacked"/>
- <copy file="${basedir}/target/demo-load-balancing-webapp.war"
- todir="${unpack.location}-${port}/webapps/"
- overwrite="true"
- verbose="false">
- </copy>
- </target>
-
-</project>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/build.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/build.xml
deleted file mode 100644
index 506fa61015..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/build.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<!--
- * 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 name="calculator" >
- <property name="test.jar" value="sample-calculator-distributed.jar" />
-
- <target name="init">
- <mkdir dir="target/classes"/>
- </target>
-
- <!--target name="compile" depends="init">
- <javac srcdir="src/main/java"
- destdir="target/classes"
- debug="on"
- source="1.5"
- target="1.5">
- <classpath>
- <pathelement location="../../modules/tuscany-sca-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-launcher-1.6-SNAPSHOT.jar"/>
- </classpath>
- </javac>
- <copy todir="target/classes">
- <fileset dir="src/main/resources"/>
- </copy>
- <jar destfile="target/${test.jar}" basedir="target/classes">
- <manifest>
- <attribute name="Main-Class" value="${test.class}" />
- </manifest>
- </jar>
- </target-->
-
- <!--target name="runDomain">
- <java classname="node.LaunchDomain"
- fork="true">
- <classpath>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../modules/tuscany-sca-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-launcher-1.6-SNAPSHOT.jar"/>
- </classpath>
- </java>
- </target-->
-
- <target name="runClient">
- <java classname="node.LaunchCalculatorNodeA"
- fork="true">
- <classpath>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../modules/tuscany-sca-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-launcher-1.6-SNAPSHOT.jar"/>
- </classpath>
- </java>
- </target>
-
- <target name="run8085">
- <java classname="node.LaunchCalculatorNodeA"
- fork="true">
- <classpath>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../modules/tuscany-sca-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-launcher-1.6-SNAPSHOT.jar"/>
- </classpath>
- </java>
- </target>
-
- <target name="run8086">
- <java classname="node.LaunchCalculatorNodeB"
- fork="true">
- <classpath>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../modules/tuscany-sca-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-launcher-1.6-SNAPSHOT.jar"/>
- </classpath>
- </java>
- </target>
-
- <target name="run8087">
- <java classname="node.LaunchCalculatorNodeC"
- fork="true">
- <classpath>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../modules/tuscany-sca-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-api-1.6-SNAPSHOT.jar"/>
- <pathelement location="../../modules/tuscany-node2-launcher-1.6-SNAPSHOT.jar"/>
- </classpath>
- </java>
- </target>
-
- <target name="clean">
- <delete quiet="true" includeemptydirs="true">
- <fileset dir="target"/>
- </delete>
- </target>
-
-
-</project>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/pom.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/pom.xml
deleted file mode 100644
index 22662f2526..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/pom.xml
+++ /dev/null
@@ -1,349 +0,0 @@
-<?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-demos</artifactId>
- <version>1.6-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>demo-load-balancing-webapp</artifactId>
- <packaging>war</packaging>
- <name>Apache Tuscany SCA WebApp Load Balancing Demo</name>
- <description>A sample SCA application that is deployed as a webapp to a cluster of tomcat servers</description>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-host-webapp</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-implementation-java-runtime</artifactId>
- <version>1.6-SNAPSHOT</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-binding-ws-axis2</artifactId>
- <version>1.6-SNAPSHOT</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-monitor</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-node2-impl</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>tomcat</groupId>
- <artifactId>catalina-balancer</artifactId>
- <version>5.5.12</version>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version> <!-- to keep compatible with older servlet containers -->
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.2</version>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
- <properties>
- <http.port>8085</http.port>
- <http.base>http://127.0.0.1:${http.port}</http.base>
- <tomcat.home>${env.CATALINA_HOME}</tomcat.home>
- </properties>
-
- <build>
- <finalName>${artifactId}</finalName>
-
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.1</version>
-
- <dependencies>
- <dependency>
- <groupId>ant</groupId>
- <artifactId>ant-trax</artifactId>
- <version>1.6.5</version>
- </dependency>
- </dependencies>
-
- <executions>
- <execution>
- <id>download-tomcat</id>
- <phase>validate</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="download-tomcat">
-
- </ant>
- </tasks>
- </configuration>
- </execution>
- <!--execution>
- <id>unpack-tomcat-8085</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="unpack-tomcat">
- <property name="port" value="8085" />
- </ant>
- </tasks>
- </configuration>
- </execution-->
- <execution>
- <id>unpack-tomcat-8086</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="unpack-tomcat">
- <property name="port" value="8086" />
- </ant>
- </tasks>
- </configuration>
- </execution>
- <execution>
- <id>unpack-tomcat-8087</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="unpack-tomcat">
- <property name="port" value="8087" />
- </ant>
- </tasks>
- </configuration>
- </execution>
- <!--execution>
- <id>configure-tomcat-8085</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="configure-tomcat">
- <property name="port" value="8085" />
- </ant>
- </tasks>
- </configuration>
- </execution-->
- <execution>
- <id>configure-tomcat-8086</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="configure-tomcat">
- <property name="port" value="8086" />
- </ant>
- </tasks>
- </configuration>
- </execution>
- <execution>
- <id>configure-tomcat-8087</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="configure-tomcat">
- <property name="port" value="8087" />
- </ant>
- </tasks>
- </configuration>
- </execution>
-
- <execution>
- <id>copy-webapp-8086</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="copy-webapp">
- <property name="port" value="8086" />
- </ant>
- </tasks>
- </configuration>
- </execution>
- <execution>
- <id>copy-webapp-8087</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <ant antfile="./build-tomcat.xml" target="copy-webapp">
- <property name="port" value="8087" />
- </ant>
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <!--plugin>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-maven-web-junit</artifactId>
- <version>1.6-SNAPSHOT</version>
- <executions>
- <execution>
- <id>generate-web-xml</id>
- <phase>process-resources</phase>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- <execution>
- <id>web-junit-test</id>
- <configuration>
- <url>${http.base}/${project.build.finalName}/junit?op=runAll</url>
- </configuration>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- </execution>
- </executions>
- </plugin-->
- <!--plugin>
- <groupId>org.codehaus.cargo</groupId>
- <artifactId>cargo-maven2-plugin</artifactId>
- <executions>
- <execution>
- <id>start-container</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start</goal>
- </goals>
- </execution>
- <execution>
- <id>stop-container</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>stop</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <container>
- <containerId>tomcat5x</containerId>
- <type>runtime</type>
- <home>${tomcat.home}</home>
- <systemProperties>
- <org.apache.commons.logging.Log>
- org.apache.commons.logging.impl.SimpleLog
- </org.apache.commons.logging.Log>
- </systemProperties>
- </container>
- <wait>false</wait>
- <configuration>
- <properties>
- <cargo.servlet.port>8085</cargo.servlet.port>
- </properties>
- <deployables>
- <deployable>
- <location>${project.build.directory}/${project.build.finalName}.war</location>
- <pingURL>${http.base}/${project.build.finalName}/junit?op=list</pingURL>
- <type>war</type>
- </deployable>
- </deployables>
- <home>${project.build.directory}/cargo-tomcat</home>
- </configuration>
- </configuration>
- </plugin-->
-
-
-
- <!--plugin>
- <groupId>org.codehaus.cargo</groupId>
- <artifactId>cargo-maven2-plugin</artifactId>
- <executions>
- <execution>
- <id>tomcat-execution</id>
- <phase>integration-test</phase>
- <goals>
- <goal>install</goal>
- </goals>
- <configuration>
- <wait>false</wait>
- <container>
- <containerId>tomcat5x</containerId>
- <log>${project.build.directory}/tomcat-8085/cargo.log</log>
- <zipUrlInstaller>
- <url>http://www.apache.org/dist/jakarta/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip</url>
- <installDir>${project.build.directory}/tomcat-8085</installDir>
- </zipUrlInstaller>
- </container>
- <configuration>
- <home>${project.build.directory}/tomcat-8085/container</home>
- <properties>
- <cargo.servlet.port>8085</cargo.servlet.port>
- <cargo.logging>high</cargo.logging>
- </properties>
- </configuration>
- </configuration>
- </execution>
- </executions>
- </plugin-->
- </plugins>
- </build>
-
-</project>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java
deleted file mode 100644
index efa89b4fe9..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/client/LaunchClient.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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 client;
-
-import java.io.File;
-
-import helloworld.HelloWorldService;
-
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCANode2;
-import org.apache.tuscany.sca.node.SCANode2Factory;
-import org.apache.tuscany.sca.node.SCANode2Factory.SCAContribution;
-import org.osoa.sca.ServiceRuntimeException;
-
-public class LaunchClient {
- public static void main(String[] args) throws Exception {
-
- SCANode2 node = null;
- try {
-
- SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
- node = nodeFactory.createSCANode(new File("src/main/resources/client-contribution/helloworldwsclient.composite").toURL().toString(),
- new SCAContribution("TestContribution",
- new File("src/main/resources/client-contribution").toURL().toString()));
-
- node.start();
- HelloWorldService helloWorldService = ((SCAClient)node).getService(HelloWorldService.class, "HelloWorldClientComponent");
-
-
- for (int i=0; i < 10; i++){
- System.out.println(helloWorldService.getGreetings("World " + i));
- }
-
- node.stop();
-
- } catch (Exception e) {
- throw new ServiceRuntimeException(e);
- }
- }
-}
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java
deleted file mode 100644
index 33c37869a3..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/domain/LaunchDomain.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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 domain;
-
-//import org.apache.tuscany.sca.node.launcher.DomainManagerLauncher;
-
-/**
- * This server program that loads a composite to provide simple registry function.
- * This server can be replaced with any registry that is appropriate but the components
- * in each node that talk to the registry should be replaced also.
- */
-public class LaunchDomain {
- public static void main(String[] args) throws Exception {
- // DomainManagerLauncher.main(args);
- }
-
-}
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java
deleted file mode 100644
index 65dc030d89..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldImpl.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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 helloworld;
-
-import org.osoa.sca.annotations.Service;
-
-/**
- * This class implements the HelloWorld service.
- */
-@Service(HelloWorldService.class)
-public class HelloWorldImpl implements HelloWorldService {
-
- public String getGreetings(String name) {
- String message = "Hello " + name;
- System.err.println(message);
- return message;
- }
-
-}
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java
deleted file mode 100644
index 7245513b2a..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldService.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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 helloworld;
-
-import org.osoa.sca.annotations.Remotable;
-
-/**
- * This is the business interface of the HelloWorld greetings service.
- */
-@Remotable
-public interface HelloWorldService {
-
- public String getGreetings(String name);
-}
-
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java
deleted file mode 100644
index f3d2fdb2ed..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/helloworld/HelloWorldServiceClient.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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 helloworld;
-
-/**
- * The HelloWorld service implementation
- */
-public class HelloWorldServiceClient implements HelloWorldService {
-
- HelloWorldService helloWorldService;
-
- public String getGreetings(String name) {
- System.out.println("Called getGreetings");
- return helloWorldService.getGreetings(name);
- }
-
- public HelloWorldService getHelloWorldService() {
- System.out.println("Got Injected helloWorldService");
- return helloWorldService;
- }
-
- public void setHelloWorldService(HelloWorldService helloWorldService) {
- System.out.println("Injected helloWorldService");
- this.helloWorldService = helloWorldService;
- }
-} \ No newline at end of file
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java
deleted file mode 100644
index 5dc1b6671b..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/java/org/apache/tuscany/sca/demos/loadbalancer/rule/RoundRobinRule.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.demos.loadbalancer.rule;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.webapp.balancer.rules.BaseRule;
-
-
-public class RoundRobinRule extends BaseRule {
- /**
- * The number of worker nodes that load will
- * be balanced across
- */
- private int workerCount;
-
- private int currentCount = 1;
-
-
- /**
- * Sets the worker count.
- *
- * @param workerCount The worker count
- */
- public void setWorkerCount(int workerCount) {
- if (workerCount == 0) {
- throw new IllegalArgumentException(
- "worker count cannot be 0.");
- } else {
- this.workerCount = workerCount;
- }
- }
-
- /**
- * Returns the worker count.
- *
- * @return int The worker count
- */
- protected int getWorkerCount() {
- return workerCount;
- }
-
-
-
- /**
- * @see org.apache.webapp.balancer.Rule#matches(HttpServletRequest)
- */
- public boolean matches(HttpServletRequest request) {
-
- if (currentCount == workerCount){
- currentCount = 1;
- return true;
- } else {
- currentCount++;
- return false;
- }
- }
-
- /**
- * Returns a String representation of this object.
- *
- * @return String
- */
- public String toString() {
- StringBuffer buffer = new StringBuffer();
-
- buffer.append("[");
- buffer.append(getClass().getName());
- buffer.append(": ");
-
- buffer.append("Worker count: ");
- buffer.append(getWorkerCount());
- buffer.append(" / ");
-
- buffer.append("Redirect URL: ");
- buffer.append(getRedirectUrl());
-
- buffer.append("]");
-
- return buffer.toString();
- }
-}
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite
deleted file mode 100644
index 9b6052741e..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/resources/client-contribution/helloworldwsclient.composite
+++ /dev/null
@@ -1,33 +0,0 @@
-<?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://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://helloworld"
- xmlns:hw="http://helloworld"
- name="helloworldwsclient">
-
- <component name="HelloWorldClientComponent">
- <implementation.java class="helloworld.HelloWorldServiceClient"/>
- <reference name="helloWorldService">
- <binding.ws uri="http://localhost/demo-load-balancing-webapp/HelloWorldServiceComponent"/>
- </reference>
- </component>
-
-
-</composite>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml
deleted file mode 100644
index 11347004f9..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-contribution.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
--->
-<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://helloworld"
- xmlns:credit="http://helloworld">
- <deployable composite="tns:helloworldws"/>
-</contribution> \ No newline at end of file
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite
deleted file mode 100644
index 1ab78d802d..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/META-INF/sca-deployables/helloworldws.composite
+++ /dev/null
@@ -1,32 +0,0 @@
-<?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://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://helloworld"
- xmlns:hw="http://helloworld"
- name="helloworldws">
-
- <component name="HelloWorldServiceComponent">
- <implementation.java class="helloworld.HelloWorldImpl" />
- <service name="HelloWorldService">
- <binding.ws/>
- </service>
- </component>
-
-</composite>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 8d47ae2207..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- * 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.
--->
-
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
-Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-<web-app>
-
- <display-name>Apache Tuscany Load Balancing Demo</display-name>
-
- <filter>
- <filter-name>tuscany</filter-name>
- <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>tuscany</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
-</web-app>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf
deleted file mode 100644
index 37cf284d35..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/httpd.conf
+++ /dev/null
@@ -1,28 +0,0 @@
-# Load mod_jk module
-# Update this path to match your modules location
-LoadModule jk_module modules/mod_jk.so
-
-# Declare the module for <IfModule directive> (remove this line on Apache 2.x)
-# AddModule mod_jk.c
-# Where to find workers.properties
-# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
-JkWorkersFile conf/workers.properties
-
-# Where to put jk shared memory
-# Update this path to match your local state directory or logs directory
-JkShmFile logs/mod_jk.shm
-
-# Where to put jk logs
-# Update this path to match your logs directory location (put mod_jk.log next to access_log)
-JkLogFile logs/mod_jk.log
-
-# Set the jk log level [debug/error/info]
-JkLogLevel info
-
-# Select the timestamp log format
-JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
-
-# Send everything for context /examples to worker named worker1 (ajp13)
-# JkMount /examples/* worker1
-# Send everything for context /* to the router
-JkMount /* router
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties
deleted file mode 100644
index 9228c4fd8e..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/apache-80/conf/workers.properties
+++ /dev/null
@@ -1,18 +0,0 @@
- # Load balancer looks after the workers
- worker.list=router
-
- # The load balacer
- worker.router.type=lb
- worker.router.balance_workers=worker1,worker2
-
- # Set properties for worker1 (ajp13)
- worker.worker1.type=ajp13
- worker.worker1.host=localhost
- worker.worker1.port=8010
- worker.worker1.lbfactor=1
-
- # Set properties for worker1 (ajp13)
- worker.worker2.type=ajp13
- worker.worker2.host=localhost
- worker.worker2.port=8011
- worker.worker2.lbfactor=1
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml
deleted file mode 100644
index 920fa7b037..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/conf/server.xml
+++ /dev/null
@@ -1,391 +0,0 @@
-<?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.
--->
-<!-- Example Server Configuration File -->
-<!-- Note that component elements are nested corresponding to their
- parent-child relationships with each other -->
-
-<!-- A "Server" is a singleton element that represents the entire JVM,
- which may contain one or more "Service" instances. The Server
- listens for a shutdown command on the indicated port.
-
- Note: A "Server" is not itself a "Container", so you may not
- define subcomponents such as "Valves" or "Loggers" at this level.
- -->
-
-<Server port="8005" shutdown="SHUTDOWN">
-
- <!-- Comment these entries out to disable JMX MBeans support used for the
- administration web application -->
- <Listener className="org.apache.catalina.core.AprLifecycleListener" />
- <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
-
- <!-- Global JNDI resources -->
- <GlobalNamingResources>
-
- <!-- Test entry for demonstration purposes -->
- <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
-
- <!-- Editable user database that can also be used by
- UserDatabaseRealm to authenticate users -->
- <Resource name="UserDatabase" auth="Container"
- type="org.apache.catalina.UserDatabase"
- description="User database that can be updated and saved"
- factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
- pathname="conf/tomcat-users.xml" />
-
- </GlobalNamingResources>
-
- <!-- A "Service" is a collection of one or more "Connectors" that share
- a single "Container" (and therefore the web applications visible
- within that Container). Normally, that Container is an "Engine",
- but this is not required.
-
- Note: A "Service" is not itself a "Container", so you may not
- define subcomponents such as "Valves" or "Loggers" at this level.
- -->
-
- <!-- Define the Tomcat Stand-Alone Service -->
- <Service name="Catalina">
-
- <!-- A "Connector" represents an endpoint by which requests are received
- and responses are returned. Each Connector passes requests on to the
- associated "Container" (normally an Engine) for processing.
-
- By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
- You can also enable an SSL HTTP/1.1 Connector on port 8443 by
- following the instructions below and uncommenting the second Connector
- entry. SSL support requires the following steps (see the SSL Config
- HOWTO in the Tomcat 5 documentation bundle for more detailed
- instructions):
- * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
- later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
- * Execute:
- %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
- $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
- with a password value of "changeit" for both the certificate and
- the keystore itself.
-
- By default, DNS lookups are enabled when a web application calls
- request.getRemoteHost(). This can have an adverse impact on
- performance, so you can disable it by setting the
- "enableLookups" attribute to "false". When DNS lookups are disabled,
- request.getRemoteHost() will return the String version of the
- IP address of the remote client.
- -->
-
- <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
- <Connector port="8085" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- connectionTimeout="20000" disableUploadTimeout="true" />
- <!-- Note : To disable connection timeouts, set connectionTimeout value
- to 0 -->
-
- <!-- Note : To use gzip compression you could set the following properties :
-
- compression="on"
- compressionMinSize="2048"
- noCompressionUserAgents="gozilla, traviata"
- compressableMimeType="text/html,text/xml"
- -->
-
- <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
- <!--
- <Connector port="8443" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" disableUploadTimeout="true"
- acceptCount="100" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" />
- -->
-
- <!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector port="8009"
- enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
-
- <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
- <!-- See proxy documentation for more information about using this. -->
- <!--
- <Connector port="8082"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" acceptCount="100" connectionTimeout="20000"
- proxyPort="80" disableUploadTimeout="true" />
- -->
-
- <!-- An Engine represents the entry point (within Catalina) that processes
- every request. The Engine implementation for Tomcat stand alone
- analyzes the HTTP headers included with the request, and passes them
- on to the appropriate Host (virtual host). -->
-
- <!-- You should set jvmRoute to support load-balancing via AJP ie :
- <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
- -->
-
- <!-- Define the top level container in our container hierarchy -->
- <Engine name="Catalina" defaultHost="localhost">
-
- <!-- The request dumper valve dumps useful debugging information about
- the request headers and cookies that were received, and the response
- headers and cookies that were sent, for all requests received by
- this instance of Tomcat. If you care only about requests to a
- particular virtual host, or a particular application, nest this
- element inside the corresponding <Host> or <Context> entry instead.
-
- For a similar mechanism that is portable to all Servlet 2.4
- containers, check out the "RequestDumperFilter" Filter in the
- example application (the source for this filter may be found in
- "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
-
- Note that this Valve uses the platform's default character encoding.
- This may cause problems for developers in another encoding, e.g.
- UTF-8. Use the RequestDumperFilter instead.
-
- Also note that enabling this Valve will write a ton of stuff to your
- logs. They are likely to grow quite large. This extensive log writing
- will definitely slow down your server.
-
- Request dumping is disabled by default. Uncomment the following
- element to enable it. -->
- <!--
- <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
- -->
-
- <!-- Because this Realm is here, an instance will be shared globally -->
-
- <!-- This Realm uses the UserDatabase configured in the global JNDI
- resources under the key "UserDatabase". Any edits
- that are performed against this UserDatabase are immediately
- available for use by the Realm. -->
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
-
- <!-- Comment out the old realm but leave here for now in case we
- need to go back quickly -->
- <!--
- <Realm className="org.apache.catalina.realm.MemoryRealm" />
- -->
-
- <!-- Replace the above Realm with one of the following to get a Realm
- stored in a database and accessed via JDBC -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="org.gjt.mm.mysql.Driver"
- connectionURL="jdbc:mysql://localhost/authority"
- connectionName="test" connectionPassword="test"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="oracle.jdbc.driver.OracleDriver"
- connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
- connectionName="scott" connectionPassword="tiger"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="sun.jdbc.odbc.JdbcOdbcDriver"
- connectionURL="jdbc:odbc:CATALINA"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!-- Define the default virtual host
- Note: XML Schema validation will not work with Xerces 2.2.
- -->
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false">
-
- <!-- Defines a cluster for this node,
- By defining this element, means that every manager will be changed.
- So when running a cluster, only make sure that you have webapps in there
- that need to be clustered and remove the other ones.
- A cluster has the following parameters:
-
- className = the fully qualified name of the cluster class
-
- clusterName = a descriptive name for your cluster, can be anything
-
- mcastAddr = the multicast address, has to be the same for all the nodes
-
- mcastPort = the multicast port, has to be the same for all the nodes
-
- mcastBindAddress = bind the multicast socket to a specific address
-
- mcastTTL = the multicast TTL if you want to limit your broadcast
-
- mcastSoTimeout = the multicast readtimeout
-
- mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
-
- mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
-
- tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
-
- tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
- in case of multiple ethernet cards.
- auto means that address becomes
- InetAddress.getLocalHost().getHostAddress()
-
- tcpListenPort = the tcp listen port
-
- tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
- has a wakup bug in java.nio. Set to 0 for no timeout
-
- printToScreen = true means that managers will also print to std.out
-
- expireSessionsOnShutdown = true means that
-
- useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
- false means to replicate the session after each request.
- false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
- <%
- HashMap map = (HashMap)session.getAttribute("map");
- map.put("key","value");
- %>
- replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
- * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
- * Synchronous means that the thread that executes the request, is also the
- thread the replicates the data to the other nodes, and will not return until all
- nodes have received the information.
- * Asynchronous means that there is a specific 'sender' thread for each cluster node,
- so the request thread will queue the replication request into a "smart" queue,
- and then return to the client.
- The "smart" queue is a queue where when a session is added to the queue, and the same session
- already exists in the queue from a previous request, that session will be replaced
- in the queue instead of replicating two requests. This almost never happens, unless there is a
- large network delay.
- -->
- <!--
- When configuring for clustering, you also add in a valve to catch all the requests
- coming in, at the end of the request, the session may or may not be replicated.
- A session is replicated if and only if all the conditions are met:
- 1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
- 2. a session exists (has been created)
- 3. the request is not trapped by the "filter" attribute
-
- The filter attribute is to filter out requests that could not modify the session,
- hence we don't replicate the session after the end of this request.
- The filter is negative, ie, anything you put in the filter, you mean to filter out,
- ie, no replication will be done on requests that match one of the filters.
- The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
-
- filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
- ending with .gif and .js are intercepted.
-
- The deployer element can be used to deploy apps cluster wide.
- Currently the deployment only deploys/undeploys to working members in the cluster
- so no WARs are copied upons startup of a broken node.
- The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
- When a new war file is added the war gets deployed to the local instance,
- and then deployed to the other instances in the cluster.
- When a war file is deleted from the watchDir the war is undeployed locally
- and cluster wide
- -->
-
- <!--
- <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
- managerClassName="org.apache.catalina.cluster.session.DeltaManager"
- expireSessionsOnShutdown="false"
- useDirtyFlag="true"
- notifyListenersOnReplication="true">
-
- <Membership
- className="org.apache.catalina.cluster.mcast.McastService"
- mcastAddr="228.0.0.4"
- mcastPort="45564"
- mcastFrequency="500"
- mcastDropTime="3000"/>
-
- <Receiver
- className="org.apache.catalina.cluster.tcp.ReplicationListener"
- tcpListenAddress="auto"
- tcpListenPort="4001"
- tcpSelectorTimeout="100"
- tcpThreadCount="6"/>
-
- <Sender
- className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
- replicationMode="pooled"
- ackTimeout="15000"
- waitForAck="true"/>
-
- <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
- filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
-
- <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
- tempDir="/tmp/war-temp/"
- deployDir="/tmp/war-deploy/"
- watchDir="/tmp/war-listen/"
- watchEnabled="false"/>
-
- <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
- </Cluster>
- -->
-
-
-
- <!-- Normally, users must authenticate themselves to each web app
- individually. Uncomment the following entry if you would like
- a user to be authenticated the first time they encounter a
- resource protected by a security constraint, and then have that
- user identity maintained across *all* web applications contained
- in this virtual host. -->
- <!--
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
- -->
-
- <!-- Access log processes all requests for this virtual host. By
- default, log files are created in the "logs" directory relative to
- $CATALINA_HOME. If you wish, you can specify a different
- directory with the "directory" attribute. Specify either a relative
- (to $CATALINA_HOME) or absolute path to the desired directory.
- -->
- <!--
- <Valve className="org.apache.catalina.valves.AccessLogValve"
- directory="logs" prefix="localhost_access_log." suffix=".txt"
- pattern="common" resolveHosts="false"/>
- -->
-
- <!-- Access log processes all requests for this virtual host. By
- default, log files are created in the "logs" directory relative to
- $CATALINA_HOME. If you wish, you can specify a different
- directory with the "directory" attribute. Specify either a relative
- (to $CATALINA_HOME) or absolute path to the desired directory.
- This access log implementation is optimized for maximum performance,
- but is hardcoded to support only the "common" and "combined" patterns.
- -->
- <!--
- <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
- directory="logs" prefix="localhost_access_log." suffix=".txt"
- pattern="common" resolveHosts="false"/>
- -->
-
- </Host>
-
- </Engine>
-
- </Service>
-
-</Server>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml
deleted file mode 100644
index 7486dc8148..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8085/webapps/balancer/WEB-INF/config/rules.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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.
--->
-<rules>
- <rule className="org.apache.tuscany.sca.demos.loadbalancer.rule.RoundRobinRule"
- workerCount="2"
- redirectUrl="http://localhost:8086" />
-
- <rule className="org.apache.tuscany.sca.demos.loadbalancer.rule.RoundRobinRule"
- workerCount="1"
- redirectUrl="http://localhost:8087" />
-</rules>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml
deleted file mode 100644
index 5ecb8fe5c4..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8086/conf/server.xml
+++ /dev/null
@@ -1,391 +0,0 @@
-<?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.
--->
-<!-- Example Server Configuration File -->
-<!-- Note that component elements are nested corresponding to their
- parent-child relationships with each other -->
-
-<!-- A "Server" is a singleton element that represents the entire JVM,
- which may contain one or more "Service" instances. The Server
- listens for a shutdown command on the indicated port.
-
- Note: A "Server" is not itself a "Container", so you may not
- define subcomponents such as "Valves" or "Loggers" at this level.
- -->
-
-<Server port="8006" shutdown="SHUTDOWN">
-
- <!-- Comment these entries out to disable JMX MBeans support used for the
- administration web application -->
- <Listener className="org.apache.catalina.core.AprLifecycleListener" />
- <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
-
- <!-- Global JNDI resources -->
- <GlobalNamingResources>
-
- <!-- Test entry for demonstration purposes -->
- <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
-
- <!-- Editable user database that can also be used by
- UserDatabaseRealm to authenticate users -->
- <Resource name="UserDatabase" auth="Container"
- type="org.apache.catalina.UserDatabase"
- description="User database that can be updated and saved"
- factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
- pathname="conf/tomcat-users.xml" />
-
- </GlobalNamingResources>
-
- <!-- A "Service" is a collection of one or more "Connectors" that share
- a single "Container" (and therefore the web applications visible
- within that Container). Normally, that Container is an "Engine",
- but this is not required.
-
- Note: A "Service" is not itself a "Container", so you may not
- define subcomponents such as "Valves" or "Loggers" at this level.
- -->
-
- <!-- Define the Tomcat Stand-Alone Service -->
- <Service name="Catalina">
-
- <!-- A "Connector" represents an endpoint by which requests are received
- and responses are returned. Each Connector passes requests on to the
- associated "Container" (normally an Engine) for processing.
-
- By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
- You can also enable an SSL HTTP/1.1 Connector on port 8443 by
- following the instructions below and uncommenting the second Connector
- entry. SSL support requires the following steps (see the SSL Config
- HOWTO in the Tomcat 5 documentation bundle for more detailed
- instructions):
- * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
- later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
- * Execute:
- %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
- $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
- with a password value of "changeit" for both the certificate and
- the keystore itself.
-
- By default, DNS lookups are enabled when a web application calls
- request.getRemoteHost(). This can have an adverse impact on
- performance, so you can disable it by setting the
- "enableLookups" attribute to "false". When DNS lookups are disabled,
- request.getRemoteHost() will return the String version of the
- IP address of the remote client.
- -->
-
- <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
- <Connector port="8086" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- connectionTimeout="20000" disableUploadTimeout="true" />
- <!-- Note : To disable connection timeouts, set connectionTimeout value
- to 0 -->
-
- <!-- Note : To use gzip compression you could set the following properties :
-
- compression="on"
- compressionMinSize="2048"
- noCompressionUserAgents="gozilla, traviata"
- compressableMimeType="text/html,text/xml"
- -->
-
- <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
- <!--
- <Connector port="8443" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" disableUploadTimeout="true"
- acceptCount="100" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" />
- -->
-
- <!-- Define an AJP 1.3 Connector on port 8010 -->
- <Connector port="8010"
- enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
-
- <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
- <!-- See proxy documentation for more information about using this. -->
- <!--
- <Connector port="8082"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" acceptCount="100" connectionTimeout="20000"
- proxyPort="80" disableUploadTimeout="true" />
- -->
-
- <!-- An Engine represents the entry point (within Catalina) that processes
- every request. The Engine implementation for Tomcat stand alone
- analyzes the HTTP headers included with the request, and passes them
- on to the appropriate Host (virtual host). -->
-
- <!-- You should set jvmRoute to support load-balancing via AJP ie :
- <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
- -->
-
- <!-- Define the top level container in our container hierarchy -->
- <Engine name="Catalina" defaultHost="localhost">
-
- <!-- The request dumper valve dumps useful debugging information about
- the request headers and cookies that were received, and the response
- headers and cookies that were sent, for all requests received by
- this instance of Tomcat. If you care only about requests to a
- particular virtual host, or a particular application, nest this
- element inside the corresponding <Host> or <Context> entry instead.
-
- For a similar mechanism that is portable to all Servlet 2.4
- containers, check out the "RequestDumperFilter" Filter in the
- example application (the source for this filter may be found in
- "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
-
- Note that this Valve uses the platform's default character encoding.
- This may cause problems for developers in another encoding, e.g.
- UTF-8. Use the RequestDumperFilter instead.
-
- Also note that enabling this Valve will write a ton of stuff to your
- logs. They are likely to grow quite large. This extensive log writing
- will definitely slow down your server.
-
- Request dumping is disabled by default. Uncomment the following
- element to enable it. -->
- <!--
- <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
- -->
-
- <!-- Because this Realm is here, an instance will be shared globally -->
-
- <!-- This Realm uses the UserDatabase configured in the global JNDI
- resources under the key "UserDatabase". Any edits
- that are performed against this UserDatabase are immediately
- available for use by the Realm. -->
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
-
- <!-- Comment out the old realm but leave here for now in case we
- need to go back quickly -->
- <!--
- <Realm className="org.apache.catalina.realm.MemoryRealm" />
- -->
-
- <!-- Replace the above Realm with one of the following to get a Realm
- stored in a database and accessed via JDBC -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="org.gjt.mm.mysql.Driver"
- connectionURL="jdbc:mysql://localhost/authority"
- connectionName="test" connectionPassword="test"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="oracle.jdbc.driver.OracleDriver"
- connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
- connectionName="scott" connectionPassword="tiger"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="sun.jdbc.odbc.JdbcOdbcDriver"
- connectionURL="jdbc:odbc:CATALINA"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!-- Define the default virtual host
- Note: XML Schema validation will not work with Xerces 2.2.
- -->
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false">
-
- <!-- Defines a cluster for this node,
- By defining this element, means that every manager will be changed.
- So when running a cluster, only make sure that you have webapps in there
- that need to be clustered and remove the other ones.
- A cluster has the following parameters:
-
- className = the fully qualified name of the cluster class
-
- clusterName = a descriptive name for your cluster, can be anything
-
- mcastAddr = the multicast address, has to be the same for all the nodes
-
- mcastPort = the multicast port, has to be the same for all the nodes
-
- mcastBindAddress = bind the multicast socket to a specific address
-
- mcastTTL = the multicast TTL if you want to limit your broadcast
-
- mcastSoTimeout = the multicast readtimeout
-
- mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
-
- mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
-
- tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
-
- tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
- in case of multiple ethernet cards.
- auto means that address becomes
- InetAddress.getLocalHost().getHostAddress()
-
- tcpListenPort = the tcp listen port
-
- tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
- has a wakup bug in java.nio. Set to 0 for no timeout
-
- printToScreen = true means that managers will also print to std.out
-
- expireSessionsOnShutdown = true means that
-
- useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
- false means to replicate the session after each request.
- false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
- <%
- HashMap map = (HashMap)session.getAttribute("map");
- map.put("key","value");
- %>
- replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
- * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
- * Synchronous means that the thread that executes the request, is also the
- thread the replicates the data to the other nodes, and will not return until all
- nodes have received the information.
- * Asynchronous means that there is a specific 'sender' thread for each cluster node,
- so the request thread will queue the replication request into a "smart" queue,
- and then return to the client.
- The "smart" queue is a queue where when a session is added to the queue, and the same session
- already exists in the queue from a previous request, that session will be replaced
- in the queue instead of replicating two requests. This almost never happens, unless there is a
- large network delay.
- -->
- <!--
- When configuring for clustering, you also add in a valve to catch all the requests
- coming in, at the end of the request, the session may or may not be replicated.
- A session is replicated if and only if all the conditions are met:
- 1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
- 2. a session exists (has been created)
- 3. the request is not trapped by the "filter" attribute
-
- The filter attribute is to filter out requests that could not modify the session,
- hence we don't replicate the session after the end of this request.
- The filter is negative, ie, anything you put in the filter, you mean to filter out,
- ie, no replication will be done on requests that match one of the filters.
- The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
-
- filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
- ending with .gif and .js are intercepted.
-
- The deployer element can be used to deploy apps cluster wide.
- Currently the deployment only deploys/undeploys to working members in the cluster
- so no WARs are copied upons startup of a broken node.
- The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
- When a new war file is added the war gets deployed to the local instance,
- and then deployed to the other instances in the cluster.
- When a war file is deleted from the watchDir the war is undeployed locally
- and cluster wide
- -->
-
- <!--
- <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
- managerClassName="org.apache.catalina.cluster.session.DeltaManager"
- expireSessionsOnShutdown="false"
- useDirtyFlag="true"
- notifyListenersOnReplication="true">
-
- <Membership
- className="org.apache.catalina.cluster.mcast.McastService"
- mcastAddr="228.0.0.4"
- mcastPort="45564"
- mcastFrequency="500"
- mcastDropTime="3000"/>
-
- <Receiver
- className="org.apache.catalina.cluster.tcp.ReplicationListener"
- tcpListenAddress="auto"
- tcpListenPort="4001"
- tcpSelectorTimeout="100"
- tcpThreadCount="6"/>
-
- <Sender
- className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
- replicationMode="pooled"
- ackTimeout="15000"
- waitForAck="true"/>
-
- <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
- filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
-
- <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
- tempDir="/tmp/war-temp/"
- deployDir="/tmp/war-deploy/"
- watchDir="/tmp/war-listen/"
- watchEnabled="false"/>
-
- <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
- </Cluster>
- -->
-
-
-
- <!-- Normally, users must authenticate themselves to each web app
- individually. Uncomment the following entry if you would like
- a user to be authenticated the first time they encounter a
- resource protected by a security constraint, and then have that
- user identity maintained across *all* web applications contained
- in this virtual host. -->
- <!--
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
- -->
-
- <!-- Access log processes all requests for this virtual host. By
- default, log files are created in the "logs" directory relative to
- $CATALINA_HOME. If you wish, you can specify a different
- directory with the "directory" attribute. Specify either a relative
- (to $CATALINA_HOME) or absolute path to the desired directory.
- -->
- <!--
- <Valve className="org.apache.catalina.valves.AccessLogValve"
- directory="logs" prefix="localhost_access_log." suffix=".txt"
- pattern="common" resolveHosts="false"/>
- -->
-
- <!-- Access log processes all requests for this virtual host. By
- default, log files are created in the "logs" directory relative to
- $CATALINA_HOME. If you wish, you can specify a different
- directory with the "directory" attribute. Specify either a relative
- (to $CATALINA_HOME) or absolute path to the desired directory.
- This access log implementation is optimized for maximum performance,
- but is hardcoded to support only the "common" and "combined" patterns.
- -->
- <!--
- <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
- directory="logs" prefix="localhost_access_log." suffix=".txt"
- pattern="common" resolveHosts="false"/>
- -->
-
- </Host>
-
- </Engine>
-
- </Service>
-
-</Server>
diff --git a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml b/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml
deleted file mode 100644
index f83c68191c..0000000000
--- a/java/sca-1.x-contrib/demos/load-balancing-webapp/src/test/resources/tomcat-8087/conf/server.xml
+++ /dev/null
@@ -1,391 +0,0 @@
-<?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.
--->
-<!-- Example Server Configuration File -->
-<!-- Note that component elements are nested corresponding to their
- parent-child relationships with each other -->
-
-<!-- A "Server" is a singleton element that represents the entire JVM,
- which may contain one or more "Service" instances. The Server
- listens for a shutdown command on the indicated port.
-
- Note: A "Server" is not itself a "Container", so you may not
- define subcomponents such as "Valves" or "Loggers" at this level.
- -->
-
-<Server port="8007" shutdown="SHUTDOWN">
-
- <!-- Comment these entries out to disable JMX MBeans support used for the
- administration web application -->
- <Listener className="org.apache.catalina.core.AprLifecycleListener" />
- <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
-
- <!-- Global JNDI resources -->
- <GlobalNamingResources>
-
- <!-- Test entry for demonstration purposes -->
- <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
-
- <!-- Editable user database that can also be used by
- UserDatabaseRealm to authenticate users -->
- <Resource name="UserDatabase" auth="Container"
- type="org.apache.catalina.UserDatabase"
- description="User database that can be updated and saved"
- factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
- pathname="conf/tomcat-users.xml" />
-
- </GlobalNamingResources>
-
- <!-- A "Service" is a collection of one or more "Connectors" that share
- a single "Container" (and therefore the web applications visible
- within that Container). Normally, that Container is an "Engine",
- but this is not required.
-
- Note: A "Service" is not itself a "Container", so you may not
- define subcomponents such as "Valves" or "Loggers" at this level.
- -->
-
- <!-- Define the Tomcat Stand-Alone Service -->
- <Service name="Catalina">
-
- <!-- A "Connector" represents an endpoint by which requests are received
- and responses are returned. Each Connector passes requests on to the
- associated "Container" (normally an Engine) for processing.
-
- By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
- You can also enable an SSL HTTP/1.1 Connector on port 8443 by
- following the instructions below and uncommenting the second Connector
- entry. SSL support requires the following steps (see the SSL Config
- HOWTO in the Tomcat 5 documentation bundle for more detailed
- instructions):
- * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
- later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
- * Execute:
- %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
- $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
- with a password value of "changeit" for both the certificate and
- the keystore itself.
-
- By default, DNS lookups are enabled when a web application calls
- request.getRemoteHost(). This can have an adverse impact on
- performance, so you can disable it by setting the
- "enableLookups" attribute to "false". When DNS lookups are disabled,
- request.getRemoteHost() will return the String version of the
- IP address of the remote client.
- -->
-
- <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
- <Connector port="8087" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- connectionTimeout="20000" disableUploadTimeout="true" />
- <!-- Note : To disable connection timeouts, set connectionTimeout value
- to 0 -->
-
- <!-- Note : To use gzip compression you could set the following properties :
-
- compression="on"
- compressionMinSize="2048"
- noCompressionUserAgents="gozilla, traviata"
- compressableMimeType="text/html,text/xml"
- -->
-
- <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
- <!--
- <Connector port="8443" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" disableUploadTimeout="true"
- acceptCount="100" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" />
- -->
-
- <!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector port="8011"
- enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
-
- <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
- <!-- See proxy documentation for more information about using this. -->
- <!--
- <Connector port="8082"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" acceptCount="100" connectionTimeout="20000"
- proxyPort="80" disableUploadTimeout="true" />
- -->
-
- <!-- An Engine represents the entry point (within Catalina) that processes
- every request. The Engine implementation for Tomcat stand alone
- analyzes the HTTP headers included with the request, and passes them
- on to the appropriate Host (virtual host). -->
-
- <!-- You should set jvmRoute to support load-balancing via AJP ie :
- <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
- -->
-
- <!-- Define the top level container in our container hierarchy -->
- <Engine name="Catalina" defaultHost="localhost">
-
- <!-- The request dumper valve dumps useful debugging information about
- the request headers and cookies that were received, and the response
- headers and cookies that were sent, for all requests received by
- this instance of Tomcat. If you care only about requests to a
- particular virtual host, or a particular application, nest this
- element inside the corresponding <Host> or <Context> entry instead.
-
- For a similar mechanism that is portable to all Servlet 2.4
- containers, check out the "RequestDumperFilter" Filter in the
- example application (the source for this filter may be found in
- "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
-
- Note that this Valve uses the platform's default character encoding.
- This may cause problems for developers in another encoding, e.g.
- UTF-8. Use the RequestDumperFilter instead.
-
- Also note that enabling this Valve will write a ton of stuff to your
- logs. They are likely to grow quite large. This extensive log writing
- will definitely slow down your server.
-
- Request dumping is disabled by default. Uncomment the following
- element to enable it. -->
- <!--
- <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
- -->
-
- <!-- Because this Realm is here, an instance will be shared globally -->
-
- <!-- This Realm uses the UserDatabase configured in the global JNDI
- resources under the key "UserDatabase". Any edits
- that are performed against this UserDatabase are immediately
- available for use by the Realm. -->
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
-
- <!-- Comment out the old realm but leave here for now in case we
- need to go back quickly -->
- <!--
- <Realm className="org.apache.catalina.realm.MemoryRealm" />
- -->
-
- <!-- Replace the above Realm with one of the following to get a Realm
- stored in a database and accessed via JDBC -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="org.gjt.mm.mysql.Driver"
- connectionURL="jdbc:mysql://localhost/authority"
- connectionName="test" connectionPassword="test"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="oracle.jdbc.driver.OracleDriver"
- connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
- connectionName="scott" connectionPassword="tiger"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!--
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="sun.jdbc.odbc.JdbcOdbcDriver"
- connectionURL="jdbc:odbc:CATALINA"
- userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name" />
- -->
-
- <!-- Define the default virtual host
- Note: XML Schema validation will not work with Xerces 2.2.
- -->
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false">
-
- <!-- Defines a cluster for this node,
- By defining this element, means that every manager will be changed.
- So when running a cluster, only make sure that you have webapps in there
- that need to be clustered and remove the other ones.
- A cluster has the following parameters:
-
- className = the fully qualified name of the cluster class
-
- clusterName = a descriptive name for your cluster, can be anything
-
- mcastAddr = the multicast address, has to be the same for all the nodes
-
- mcastPort = the multicast port, has to be the same for all the nodes
-
- mcastBindAddress = bind the multicast socket to a specific address
-
- mcastTTL = the multicast TTL if you want to limit your broadcast
-
- mcastSoTimeout = the multicast readtimeout
-
- mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
-
- mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
-
- tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
-
- tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
- in case of multiple ethernet cards.
- auto means that address becomes
- InetAddress.getLocalHost().getHostAddress()
-
- tcpListenPort = the tcp listen port
-
- tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
- has a wakup bug in java.nio. Set to 0 for no timeout
-
- printToScreen = true means that managers will also print to std.out
-
- expireSessionsOnShutdown = true means that
-
- useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
- false means to replicate the session after each request.
- false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
- <%
- HashMap map = (HashMap)session.getAttribute("map");
- map.put("key","value");
- %>
- replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
- * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
- * Synchronous means that the thread that executes the request, is also the
- thread the replicates the data to the other nodes, and will not return until all
- nodes have received the information.
- * Asynchronous means that there is a specific 'sender' thread for each cluster node,
- so the request thread will queue the replication request into a "smart" queue,
- and then return to the client.
- The "smart" queue is a queue where when a session is added to the queue, and the same session
- already exists in the queue from a previous request, that session will be replaced
- in the queue instead of replicating two requests. This almost never happens, unless there is a
- large network delay.
- -->
- <!--
- When configuring for clustering, you also add in a valve to catch all the requests
- coming in, at the end of the request, the session may or may not be replicated.
- A session is replicated if and only if all the conditions are met:
- 1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
- 2. a session exists (has been created)
- 3. the request is not trapped by the "filter" attribute
-
- The filter attribute is to filter out requests that could not modify the session,
- hence we don't replicate the session after the end of this request.
- The filter is negative, ie, anything you put in the filter, you mean to filter out,
- ie, no replication will be done on requests that match one of the filters.
- The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
-
- filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
- ending with .gif and .js are intercepted.
-
- The deployer element can be used to deploy apps cluster wide.
- Currently the deployment only deploys/undeploys to working members in the cluster
- so no WARs are copied upons startup of a broken node.
- The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
- When a new war file is added the war gets deployed to the local instance,
- and then deployed to the other instances in the cluster.
- When a war file is deleted from the watchDir the war is undeployed locally
- and cluster wide
- -->
-
- <!--
- <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
- managerClassName="org.apache.catalina.cluster.session.DeltaManager"
- expireSessionsOnShutdown="false"
- useDirtyFlag="true"
- notifyListenersOnReplication="true">
-
- <Membership
- className="org.apache.catalina.cluster.mcast.McastService"
- mcastAddr="228.0.0.4"
- mcastPort="45564"
- mcastFrequency="500"
- mcastDropTime="3000"/>
-
- <Receiver
- className="org.apache.catalina.cluster.tcp.ReplicationListener"
- tcpListenAddress="auto"
- tcpListenPort="4001"
- tcpSelectorTimeout="100"
- tcpThreadCount="6"/>
-
- <Sender
- className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
- replicationMode="pooled"
- ackTimeout="15000"
- waitForAck="true"/>
-
- <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
- filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
-
- <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
- tempDir="/tmp/war-temp/"
- deployDir="/tmp/war-deploy/"
- watchDir="/tmp/war-listen/"
- watchEnabled="false"/>
-
- <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
- </Cluster>
- -->
-
-
-
- <!-- Normally, users must authenticate themselves to each web app
- individually. Uncomment the following entry if you would like
- a user to be authenticated the first time they encounter a
- resource protected by a security constraint, and then have that
- user identity maintained across *all* web applications contained
- in this virtual host. -->
- <!--
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
- -->
-
- <!-- Access log processes all requests for this virtual host. By
- default, log files are created in the "logs" directory relative to
- $CATALINA_HOME. If you wish, you can specify a different
- directory with the "directory" attribute. Specify either a relative
- (to $CATALINA_HOME) or absolute path to the desired directory.
- -->
- <!--
- <Valve className="org.apache.catalina.valves.AccessLogValve"
- directory="logs" prefix="localhost_access_log." suffix=".txt"
- pattern="common" resolveHosts="false"/>
- -->
-
- <!-- Access log processes all requests for this virtual host. By
- default, log files are created in the "logs" directory relative to
- $CATALINA_HOME. If you wish, you can specify a different
- directory with the "directory" attribute. Specify either a relative
- (to $CATALINA_HOME) or absolute path to the desired directory.
- This access log implementation is optimized for maximum performance,
- but is hardcoded to support only the "common" and "combined" patterns.
- -->
- <!--
- <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
- directory="logs" prefix="localhost_access_log." suffix=".txt"
- pattern="common" resolveHosts="false"/>
- -->
-
- </Host>
-
- </Engine>
-
- </Service>
-
-</Server>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/LICENSE b/java/sca-1.x-contrib/demos/workpool-distributed/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
-
-
-
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/NOTICE b/java/sca-1.x-contrib/demos/workpool-distributed/NOTICE
deleted file mode 100644
index 94481d6cfa..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2007 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/build.xml b/java/sca-1.x-contrib/demos/workpool-distributed/build.xml
deleted file mode 100644
index 9e10e8ec91..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/build.xml
+++ /dev/null
@@ -1,446 +0,0 @@
-<!--
- * 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 name="workpool" default="runDomainNode">
- <property name="node.class" value="node.WorkpoolNode" />
- <property name="domain.class" value="node.DomainNode" />
- <property name="test.jar" value="sample-workpool-distributed-dynamic.jar" />
-
- <target name="init">
- <mkdir dir="target/classes"/>
- </target>
-
- <target name="compile" depends="init">
- <javac srcdir="src/main/java"
- destdir="target/classes"
- debug="on"
- source="1.5"
- target="1.5">
- <classpath>
- <fileset dir="./rule-engine" id="drools.jar">
- <include name="*.jar"/>
- </fileset>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
- </classpath>
- </javac>
- <copy todir="target/classes">
- <fileset dir="src/main/resources"/>
- </copy>
- <jar destfile="target/${test.jar}" basedir="target/classes">
- <manifest>
- <attribute name="Main-Class" value="${node.class}" />
- </manifest>
- </jar>
- </target>
-
- <target name="runDomainNode">
- <java classname="${domain.class}"
- fork="true">
- <classpath>
- <fileset dir="./rule-engine" id="drools.jar">
- <include name="*.jar"/>
- </fileset>
-
-
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
- </classpath>
- </java>
- </target>
-
- <target name="runNodeA">
- <java classname="${node.class}"
- fork="true">
- <classpath>
-<fileset dir="./rule-engine" id="drools.jar">
- <include name="*.jar"/>
- </fileset>
-
-
-
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
-
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeA"/>
- <!-- iterations -->
- <arg value="10"/>
- <!-- jobs -->
- <arg value="1024"/>
- <!-- workers -->
- <arg value="4" />
- </java>
- </target>
-
- <target name="runNodeB">
- <java classname="${node.class}"
- fork="true">
- <classpath>
-<fileset dir="./rule-engine" id="drools.jar">
- <include name="*.jar"/>
- </fileset>
-
-
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
-
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeB"/>
- <!-- iterations -->
- <arg value="1000000"/>
- <!-- jobs -->
- <arg value="1024"/>
- <!-- workers -->
- <arg value="4" />
- </java>
- </target>
-
- <target name="runNodeC">
- <java classname="${node.class}"
- fork="true">
- <classpath>
- <fileset dir="./rule-engine" id="drools.jar">
- <include name="*.jar"/>
- </fileset>
-
- <pathelement location="${drools.jar}"/>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeC"/>
- <!-- iterations -->
- <arg value="1000000"/>
- <!-- jobs -->
- <arg value="1024"/>
- <!-- workers -->
- <arg value="4" />
- </java>
- </target>
- <target name="runNodeD">
- <java classname="${node.class}"
- fork="true">
- <classpath>
- <fileset dir="./rule-engine" id="drools.jar">
- <include name="*.jar"/>
- </fileset>
-
- <pathelement location="${drools.jar}"/>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeD"/>
- <!-- iterations -->
- <arg value="1000000"/>
- <!-- jobs -->
- <arg value="1024"/>
- <!-- workers -->
- <arg value="4" />
- </java>
- </target>
- <target name="runNodeE">
- <java classname="${node.class}"
- fork="true">
- <classpath>
- <fileset dir="./rule-engine" id="drools.jar">
- <include name="*.jar"/>
- </fileset>
-
- <pathelement location="${drools.jar}"/>
- <pathelement path="src/main/resources"/>
- <pathelement path="target/classes"/>
- <pathelement path="target/${test.jar}"/>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeE"/>
- <!-- iterations -->
- <arg value="1000000"/>
- <!-- jobs -->
- <arg value="1024"/>
- <!-- workers -->
- <arg value="4" />
- </java>
- </target>
-
- <target name="clean">
- <delete quiet="true" includeemptydirs="true">
- <fileset dir="target"/>
- </delete>
- </target>
-
- <!-- If you want to test without building the distribution jars set the -->
- <!-- localtion value of the m2.repo on your machine and use the targets below -->
- <property name="m2.repo" value="/var/cache/maven/repo" />
- <path id="repo.classpath">
- <pathelement location="target/classes"/>
- <pathelement location="/var/cache/maven/repo/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
- <pathelement location="/var/cache/maven/repo/antlr/stringtemplate/2.3b6/stringtemplate-2.3b6.jar"/>
- <pathelement location="${m2.repo}\xerces\xercesImpl\2.8.1\xercesImpl-2.8.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1\geronimo-jms_1.1_spec-1.1.jar"/>
- <pathelement location="${m2.repo}\wsdl4j\wsdl4j\1.6.2\wsdl4j-1.6.2.jar"/>
- <pathelement location="${m2.repo}\commons-codec\commons-codec\1.3\commons-codec-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-sca\1.0-incubating\tuscany-binding-sca-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\xml-apis\xml-apis\1.3.03\xml-apis-1.3.03.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\security\wss4j\1.5.3\wss4j-1.5.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-assembly-xml\1.0-incubating\tuscany-assembly-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\rampart\rampart-trust\1.3\rampart-trust-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\axiom\axiom-api\1.2.5\axiom-api-1.2.5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-assembly\1.0-incubating\tuscany-assembly-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-wsdl\1.0-incubating\tuscany-interface-wsdl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-kernel\1.3\axis2-kernel-1.3.jar"/>
- <pathelement location="${m2.repo}\cglib\cglib-nodep\2.1_3\cglib-nodep-2.1_3.jar"/>
- <pathelement location="${m2.repo}\backport-util-concurrent\backport-util-concurrent\2.2\backport-util-concurrent-2.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\httpcomponents\httpcore\4.0-alpha5\httpcore-4.0-alpha5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface\1.0-incubating\tuscany-interface-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-policy-xml\1.0-incubating\tuscany-policy-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\commons-logging\commons-logging\1.1\commons-logging-1.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-domain-api\1.0-incubating\tuscany-domain-api-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-extension-helper\1.0-incubating\tuscany-extension-helper-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-activation_1.1_spec\1.0-M1\geronimo-activation_1.1_spec-1.0-M1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-jsonrpc\1.0-incubating\tuscany-binding-jsonrpc-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\logkit\logkit\1.0.1\logkit-1.0.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-java-xml\1.0-incubating\tuscany-interface-java-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\bouncycastle\bcprov-jdk15\136\bcprov-jdk15-136.jar"/>
- <pathelement location="${m2.repo}\commons-fileupload\commons-fileupload\1.1.1\commons-fileupload-1.1.1.jar"/>
- <pathelement location="${m2.repo}\annogen\annogen\0.1.0\annogen-0.1.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-node\1.0-incubating\tuscany-node-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-adb\1.3\axis2-adb-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-mtompolicy\1.3\axis2-mtompolicy-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-definitions\1.0-incubating\tuscany-definitions-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-host-embedded\1.0-incubating\tuscany-host-embedded-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\commons-httpclient\commons-httpclient\3.0.1\commons-httpclient-3.0.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-java2wsdl\1.3\axis2-java2wsdl-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\httpcomponents\httpcore-nio\4.0-alpha5\httpcore-nio-4.0-alpha5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-ws-xml\1.0-incubating\tuscany-binding-ws-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution-java\1.0-incubating\tuscany-contribution-java-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-domain-impl\1.0-incubating\tuscany-domain-impl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\xalan\xalan\2.7.0\xalan-2.7.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\rampart\rampart-core\1.3\rampart-core-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-commonj_1.1_spec\1.0\geronimo-commonj_1.1_spec-1.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-policy-security\1.0-incubating\tuscany-policy-security-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-core-spi\1.0-incubating\tuscany-core-spi-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-sca-axis2\1.0-incubating\tuscany-binding-sca-axis2-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\ant\ant-launcher\1.7.0\ant-launcher-1.7.0.jar"/>
- <pathelement location="${m2.repo}\jaxen\jaxen\1.1-beta-9\jaxen-1.1-beta-9.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-sca-api\1.0-incubating\tuscany-sca-api-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\rampart\rampart-policy\1.3\rampart-policy-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\httpcomponents\httpcore-niossl\4.0-alpha5\httpcore-niossl-4.0-alpha5.jar"/>
- <pathelement location="${m2.repo}\com\metaparadigm\json-rpc\1.0\json-rpc-1.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\axiom\axiom-impl\1.2.5\axiom-impl-1.2.5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-ws\1.0-incubating\tuscany-binding-ws-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution-namespace\1.0-incubating\tuscany-contribution-namespace-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-policy\1.0-incubating\tuscany-policy-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\neethi\neethi\2.0.2\neethi-2.0.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-wsdl-xml\1.0-incubating\tuscany-interface-wsdl-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\javax\activation\activation\1.1\activation-1.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\ant\ant\1.7.0\ant-1.7.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-core\1.0-incubating\tuscany-core-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-domain\1.0-incubating\tuscany-domain-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-javamail_1.4_spec\1.0-M1\geronimo-javamail_1.4_spec-1.0-M1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution\1.0-incubating\tuscany-contribution-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\avalon-framework\avalon-framework\4.1.3\avalon-framework-4.1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-node-impl\1.0-incubating\tuscany-node-impl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\santuario\xmlsec\1.4.0\xmlsec-1.4.0.jar"/>
- <pathelement location="${m2.repo}\commons-io\commons-io\1.2\commons-io-1.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-databinding\1.0-incubating\tuscany-databinding-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\axiom\axiom-dom\1.2.5\axiom-dom-1.2.5.jar"/>
- <pathelement location="${m2.repo}\log4j\log4j\1.2.12\log4j-1.2.12.jar"/>
- <pathelement location="${m2.repo}\javax\mail\mail\1.4\mail-1.4.jar"/>
- <pathelement location="${m2.repo}\org\codehaus\woodstox\wstx-asl\3.2.1\wstx-asl-3.2.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-ws-axis2\1.0-incubating\tuscany-binding-ws-axis2-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-host-http\1.0-incubating\tuscany-host-http-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-databinding-axiom\1.0-incubating\tuscany-databinding-axiom-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution-impl\1.0-incubating\tuscany-contribution-impl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-java\1.0-incubating\tuscany-interface-java-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\stax\stax-api\1.0.1\stax-api-1.0.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\schema\XmlSchema\1.3.2\XmlSchema-1.3.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\woden\woden\1.0-incubating-M7b\woden-1.0-incubating-M7b.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-sca-xml\1.0-incubating\tuscany-binding-sca-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-core-databinding\1.0-incubating\tuscany-core-databinding-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\wsdl4j\wsdl4j\1.6.2\wsdl4j-1.6.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-sca\1.0-incubating\tuscany-binding-sca-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-implementation-resource\1.0-incubating\tuscany-implementation-resource-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\rampart\rampart-trust\1.3\rampart-trust-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\axiom\axiom-api\1.2.5\axiom-api-1.2.5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-assembly\1.0-incubating\tuscany-assembly-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\cglib\cglib-nodep\2.1_3\cglib-nodep-2.1_3.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-policy-xml\1.0-incubating\tuscany-policy-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-extension-helper\1.0-incubating\tuscany-extension-helper-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-node-api\1.0-incubating\tuscany-node-api-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-activation_1.1_spec\1.0-M1\geronimo-activation_1.1_spec-1.0-M1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-host-tomcat\1.0-incubating\tuscany-host-tomcat-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\opensaml\opensaml\1.1\opensaml-1.1.jar"/>
- <pathelement location="${m2.repo}\logkit\logkit\1.0.1\logkit-1.0.1.jar"/>
- <pathelement location="${m2.repo}\bouncycastle\bcprov-jdk15\136\bcprov-jdk15-136.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-assembly-xsd\1.0-incubating\tuscany-assembly-xsd-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\annogen\annogen\0.1.0\annogen-0.1.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-xmlbeans\1.3\axis2-xmlbeans-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-adb\1.3\axis2-adb-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-mtompolicy\1.3\axis2-mtompolicy-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-http\1.0-incubating\tuscany-binding-http-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-java2wsdl\1.3\axis2-java2wsdl-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\httpcomponents\httpcore-nio\4.0-alpha5\httpcore-nio-4.0-alpha5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution-java\1.0-incubating\tuscany-contribution-java-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-domain-impl\1.0-incubating\tuscany-domain-impl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\rampart\rampart-core\1.3\rampart-core-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-commonj_1.1_spec\1.0\geronimo-commonj_1.1_spec-1.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-policy-security\1.0-incubating\tuscany-policy-security-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tomcat\catalina\6.0.10\catalina-6.0.10.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-core-spi\1.0-incubating\tuscany-core-spi-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-sca-axis2\1.0-incubating\tuscany-binding-sca-axis2-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\jaxen\jaxen\1.1-beta-9\jaxen-1.1-beta-9.jar"/>
- <pathelement location="${m2.repo}\org\apache\rampart\rampart-policy\1.3\rampart-policy-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\httpcomponents\httpcore-niossl\4.0-alpha5\httpcore-niossl-4.0-alpha5.jar"/>
- <pathelement location="${m2.repo}\junit\junit\4.2\junit-4.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution-namespace\1.0-incubating\tuscany-contribution-namespace-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-implementation-java-xml\1.0-incubating\tuscany-implementation-java-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-wsdl-xml\1.0-incubating\tuscany-interface-wsdl-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\javax\activation\activation\1.1\activation-1.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\ant\ant\1.7.0\ant-1.7.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-core\1.0-incubating\tuscany-core-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-domain\1.0-incubating\tuscany-domain-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-javamail_1.4_spec\1.0-M1\geronimo-javamail_1.4_spec-1.0-M1.jar"/>
- <pathelement location="${m2.repo}\avalon-framework\avalon-framework\4.1.3\avalon-framework-4.1.3.jar"/>
- <pathelement location="${m2.repo}\commons-io\commons-io\1.2\commons-io-1.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\axiom\axiom-dom\1.2.5\axiom-dom-1.2.5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-host-http\1.0-incubating\tuscany-host-http-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-java\1.0-incubating\tuscany-interface-java-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution-impl\1.0-incubating\tuscany-contribution-impl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\schema\XmlSchema\1.3.2\XmlSchema-1.3.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\woden\woden\1.0-incubating-M7b\woden-1.0-incubating-M7b.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-sca-xml\1.0-incubating\tuscany-binding-sca-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\xerces\xercesImpl\2.8.1\xercesImpl-2.8.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1\geronimo-jms_1.1_spec-1.1.jar"/>
- <pathelement location="${m2.repo}\commons-codec\commons-codec\1.3\commons-codec-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\security\wss4j\1.5.3\wss4j-1.5.3.jar"/>
- <pathelement location="${m2.repo}\xml-apis\xml-apis\1.3.03\xml-apis-1.3.03.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-assembly-xml\1.0-incubating\tuscany-assembly-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-wsdl\1.0-incubating\tuscany-interface-wsdl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-kernel\1.3\axis2-kernel-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\httpcomponents\httpcore\4.0-alpha5\httpcore-4.0-alpha5.jar"/>
- <pathelement location="${m2.repo}\backport-util-concurrent\backport-util-concurrent\2.2\backport-util-concurrent-2.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface\1.0-incubating\tuscany-interface-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\commons-logging\commons-logging\1.1\commons-logging-1.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-jsonrpc\1.0-incubating\tuscany-binding-jsonrpc-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-interface-java-xml\1.0-incubating\tuscany-interface-java-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\commons-fileupload\commons-fileupload\1.1.1\commons-fileupload-1.1.1.jar"/>
- <pathelement location="${m2.repo}\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-node\1.0-incubating\tuscany-node-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-definitions\1.0-incubating\tuscany-definitions-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\commons-httpclient\commons-httpclient\3.0.1\commons-httpclient-3.0.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-host-embedded\1.0-incubating\tuscany-host-embedded-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\commons-collections\commons-collections\3.1\commons-collections-3.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-ws-xml\1.0-incubating\tuscany-binding-ws-xml-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-implementation-java-runtime\1.0-incubating\tuscany-implementation-java-runtime-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\xalan\xalan\2.7.0\xalan-2.7.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\ant\ant-launcher\1.7.0\ant-launcher-1.7.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-adb-codegen\1.3\axis2-adb-codegen-1.3.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-sca-api\1.0-incubating\tuscany-sca-api-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tomcat\coyote\6.0.10\coyote-6.0.10.jar"/>
- <pathelement location="${m2.repo}\com\metaparadigm\json-rpc\1.0\json-rpc-1.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\ws\commons\axiom\axiom-impl\1.2.5\axiom-impl-1.2.5.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-ws\1.0-incubating\tuscany-binding-ws-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\commons-discovery\commons-discovery\0.2\commons-discovery-0.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\neethi\neethi\2.0.2\neethi-2.0.2.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-policy\1.0-incubating\tuscany-policy-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-implementation-java\1.0-incubating\tuscany-implementation-java-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-contribution\1.0-incubating\tuscany-contribution-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tomcat\annotations-api\6.0.10\annotations-api-6.0.10.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-node-impl\1.0-incubating\tuscany-node-impl-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\santuario\xmlsec\1.4.0\xmlsec-1.4.0.jar"/>
- <pathelement location="${m2.repo}\org\apache\tomcat\juli\6.0.10\juli-6.0.10.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-databinding\1.0-incubating\tuscany-databinding-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\log4j\log4j\1.2.12\log4j-1.2.12.jar"/>
- <pathelement location="${m2.repo}\javax\mail\mail\1.4\mail-1.4.jar"/>
- <pathelement location="${m2.repo}\org\apache\axis2\axis2-codegen\1.3\axis2-codegen-1.3.jar"/>
- <pathelement location="${m2.repo}\org\codehaus\woodstox\wstx-asl\3.2.1\wstx-asl-3.2.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-binding-ws-axis2\1.0-incubating\tuscany-binding-ws-axis2-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-databinding-axiom\1.0-incubating\tuscany-databinding-axiom-1.0-incubating.jar"/>
- <pathelement location="${m2.repo}\stax\stax-api\1.0.1\stax-api-1.0.1.jar"/>
- <pathelement location="${m2.repo}\org\apache\tuscany\sca\tuscany-core-databinding\1.0-incubating\tuscany-core-databinding-1.0-incubating.jar"/>
- </path>
-
- <target name="runDomainNodeRepo">
- <java classname="${domain.class}"
- fork="true">
- <classpath>
- <path refid="repo.classpath"/>
- </classpath>
- </java>
- </target>
-
- <target name="runNodeARepo">
- <java classname="${node.class}"
- fork="true">
- <classpath>
- <path refid="repo.classpath"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeA"/>
- </java>
- </target>
-
- <target name="runNodeARepoLoop">
- <java classname="${node.class}"
- fork="true">
- <classpath>
- <path refid="repo.classpath"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeA"/>
- <arg value="loop"/>
- </java>
- </target>
-
- <target name="runNodeBRepo">
- <java classname="${node.class}"
- fork="true">
- <classpath>
- <path refid="repo.classpath"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeB"/>
- </java>
- </target>
-
- <target name="runNodeCRepo">
- <java classname="${node.class}"
- fork="true">
- <classpath>
- <path refid="repo.classpath"/>
- </classpath>
- <arg value="http://u12:8877/"/>
- <arg value="nodeC"/>
- </java>
- </target>
-
-</project>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/pom.xml b/java/sca-1.x-contrib/demos/workpool-distributed/pom.xml
deleted file mode 100644
index 2f821d76a5..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/pom.xml
+++ /dev/null
@@ -1,148 +0,0 @@
-<?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-sca</artifactId>
- <version>1.6-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
- <artifactId>demo-workpool-distributed</artifactId>
- <name>Apache Tuscany SCA Distributed Job Workpool Demo</name>
-
- <repositories>
- <repository>
- <id>apache.incubator</id>
- <url>
- http://people.apache.org/repo/m2-incubating-repository
- </url>
- </repository>
- <repository>
- <id>org.drools</id>
- <url>http://repository.jboss.com/maven2/org/drools/</url>
- </repository>
- </repositories>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-host-embedded</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools</artifactId>
- <version>4.0.4</version>
- </dependency>
-
- <dependency>
- <groupId>antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>2.7.1</version>
- </dependency>
- <dependency>
- <groupId>commons-daemon</groupId>
- <artifactId>commons-daemon</artifactId>
- <version>1.0.1</version>
- </dependency>
-
- <dependency>
- <groupId>antlr</groupId>
- <artifactId>stringtemplate</artifactId>
- <version>2.3b6</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-node-impl</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-domain-impl</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-binding-sca-axis2</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-binding-jsonrpc-runtime</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-binding-http-runtime</artifactId>
- <version>1.6-SNAPSHOT</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-databinding-job</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution-updater</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-databinding-xstream</artifactId>
- <version>1.6-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-implementation-resource-runtime</artifactId>
- <version>1.6-SNAPSHOT</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-host-tomcat</artifactId>
- <version>1.6-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.2</version>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
- <build>
- <finalName>${artifactId}</finalName>
- </build>
-</project>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNode.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNode.java
deleted file mode 100644
index a278499aae..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNode.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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 node;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import org.apache.tuscany.sca.domain.SCADomain;
-import org.apache.tuscany.sca.domain.SCADomainFactory;
-
-/**
- * This server program that loads a composite to provide simple registry
- * function. This server can be replaced with any registry that is appropriate
- * but the components in each node that talk to the registry should be replaced
- * also.
- */
-public class DomainNode {
-
- private static String DEFAULT_DOMAIN_URI = "http://u12:8877";
- private boolean stopped = true;
-
- public static void main(String[] args) {
-
- try {
-
- SCADomainFactory domainFactory = SCADomainFactory.newInstance();
- SCADomain domain = domainFactory
- .createSCADomain(DEFAULT_DOMAIN_URI);
-
- System.out.println("Domain started (press enter to shutdown)");
- System.in.read();
- // waitForever();
- domain.destroy();
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- System.out.println("Domain stopped");
- }
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNodeDaemon.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNodeDaemon.java
deleted file mode 100644
index 9d05761ad6..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/DomainNodeDaemon.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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 node;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import org.apache.commons.daemon.Daemon;
-import org.apache.commons.daemon.DaemonContext;
-import org.apache.tuscany.sca.domain.SCADomain;
-import org.apache.tuscany.sca.domain.SCADomainFactory;
-
-/**
- * This server program that loads a composite to provide simple registry
- * function. This server can be replaced with any registry that is appropriate
- * but the components in each node that talk to the registry should be replaced
- * also.
- */
-public class DomainNodeDaemon implements Daemon {
-
- private SCADomain domain;
- private static String DEFAULT_DOMAIN_URI = "http://u12:8877";
- private boolean stopped = true;
-
- private synchronized void waitForever() {
- while (!stopped) {
- try {
- wait();
- } catch (InterruptedException ex) {
- stopped = true;
- return;
- }
- }
-
- }
-
- public void destroy() {
- // TODO Auto-generated method stub
-
- }
-
- public void init(DaemonContext arg0) throws Exception {
- // TODO Auto-generated method stub
-
- }
-
- public void start() throws Exception {
-
- SCADomainFactory domainFactory = SCADomainFactory.newInstance();
- domain = domainFactory.createSCADomain(DEFAULT_DOMAIN_URI);
-
- System.out.println("Domain started (press enter to shutdown)");
- waitForever();
-
- }
-
- public void stop() throws Exception {
- // TODO Auto-generated method stub
- Thread.currentThread().interrupt();
- domain.destroy();
- }
-} \ No newline at end of file
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/TestJob.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/TestJob.java
deleted file mode 100644
index f48e647bd6..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/TestJob.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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 node;
-
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.apache.tuscany.sca.databinding.job.JobDataMap;
-import org.apache.tuscany.sca.databinding.job.JobExecutionContext;
-import org.apache.tuscany.sca.databinding.job.RemoteJob;
-
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
-
-public class TestJob extends RemoteJob<Double> implements java.io.Serializable {
- private boolean EOS = false;
- private Double value;
-
- public TestJob(Double x, long iterations, int[] items) {
- JobDataMap map = new JobDataMap();
- map.addJobData("value", x);
- map.addJobData("iterations", iterations);
- map.addJobData("items", items);
- context.setJobData(map);
- }
-
- public TestJob(Double i, boolean eos) {
- value = i;
- this.EOS = eos;
- }
-
- public TestJob(String jsonData) {
- JobExecutionContext ctxt = new JobExecutionContext();
- ctxt.storeJSONData(jsonData);
- }
-
- public int getType() {
- return Job.REGULAR_JOB;
- }
-
- public void setEOS() {
- EOS = true;
- }
-
- public boolean eos() {
- return EOS;
- }
-
- @Override
- public Double compute(JobExecutionContext context) {
- JobDataMap contextMap = context.getJobData();
- Long iterations = (Long) contextMap.getJobDataObject("iterations");
- Double value = (Double) contextMap.getJobDataObject("value");
- double x = value.doubleValue();
- System.out.println("Computing sinx for " + value + " for "
- + iterations.intValue() + " times");
- long computing_start = System.currentTimeMillis();
- for (long i = 0; i < iterations.longValue(); ++i) {
- x = Math.sin(x);
- }
- long computing_end = System.currentTimeMillis();
- System.out.println("Computing time= "
- + (computing_end - computing_start));
- System.out.println("Send result = " + x);
- return new Double(x);
- }
-
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolDaemon.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolDaemon.java
deleted file mode 100644
index 1f2a4d1f9a..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolDaemon.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * 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 node;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.commons.daemon.Daemon;
-import org.apache.commons.daemon.DaemonContext;
-import org.apache.commons.daemon.DaemonController;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.DeployedArtifact;
-import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
-import org.apache.tuscany.sca.domain.SCADomain;
-import org.apache.tuscany.sca.node.NodeException;
-import org.apache.tuscany.sca.node.NodeManagerInitService;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
-import org.apache.tuscany.sca.node.impl.SCANodeImpl;
-import org.apache.tuscany.sca.node.management.SCANodeManagerInitService;
-
-import java.net.URI;
-
-import workpool.WorkerManager;
-import workpool.WorkerManagerImpl;
-import workpool.WorkpoolManager;
-import workpool.WorkpoolService;
-import workpool.WorkpoolServiceImpl;
-
-/**
- * This client program shows how to run a distributed SCA node. In this case a
- * calculator node has been constructed specifically for running the calculator
- * composite. Internally it creates a representation of a node and associates a
- * distributed domain with the node. This separation is made different
- * implementations of the distributed domain can be provided.
- */
-public class WorkpoolDaemon implements Daemon, Runnable {
- private String domainName;
- private String nodeName;
- private long iterations;
- private long jobsNo;
- private long workerNo;
- private SCANode node;
- private boolean stopped = false;
- private DaemonController controller = null;
- private Thread thread = null;
- private String ruleFile = "workerRules.drl";
-
- /*
- * public static void main(String[] args) throws Exception {
- * // Check that the correct arguments have been provided if (null == args ||
- * args.length < 4) { System.err.println("Usage: java WorkpoolNode
- * domainname nodename iterTest workerNo"); System.exit(1); }
- *
- * try { String domainName = args[0]; String nodeName = args[1]; long
- * iterations = Long.parseLong(args[2]); long jobsNo =
- * Long.parseLong(args[3]); long workerNo = Long.parseLong(args[4]);
- * ClassLoader cl = WorkpoolDaemon.class.getClassLoader();
- *
- * SCANodeFactory nodeFactory = SCANodeFactory.newInstance(); node =
- * nodeFactory.createSCANode(null, domainName);
- * node.addContribution(nodeName, cl.getResource(nodeName + "/"));
- * node.addToDomainLevelComposite(new QName("http://sample", "Workpool"));
- * node.start(); // nodeA is the head node and runs some tests while all
- * other nodes // simply listen for incoming messages
- *
- * FileReader rules = new FileReader("workerRules.drl"); StringBuffer buffer =
- * new StringBuffer();
- *
- * BufferedReader br = new BufferedReader(rules); String ruleString; do {
- * ruleString = br.readLine(); if (ruleString!=null) {
- * buffer.append(ruleString);} } while (ruleString!=null);
- *
- * if ( nodeName.equals("nodeA") ) { // do some application stuff
- * WorkpoolService workpoolService =
- * node.getDomain().getService(WorkpoolService.class,
- * "WorkpoolServiceComponent"); workpoolService.start();
- * NodeManagerInitService nodeInit =
- * node.getDomain().getService(NodeManagerInitService.class,
- * "WorkpoolManagerComponent/NodeManagerInitService");
- * nodeInit.setNode(node); WorkpoolManager workpoolManager =
- * node.getDomain().getService(WorkpoolManager.class,
- * "WorkpoolManagerComponent/WorkpoolManager");
- * workpoolManager.setWorkpoolReference(node.getDomain().getServiceReference(WorkpoolService.class,
- * "WorkpoolServiceComponent"));
- * workpoolManager.acceptRules(buffer.toString()); workpoolManager.start();
- * int items[] = {3,4,5,6,3,6,3,5,9,5,6};
- *
- * double x = 398349; for (int i = 0; i < jobsNo; ++i)
- * workpoolService.submit(new TestJob(x,iterations,items));
- *
- * TestJob j = new TestJob(-1.0,true); for (int i = 0; i < workerNo+1; ++i){
- * j.setEOS(); workpoolService.submit(j); } } try { if
- * (nodeName.equals("nodeB")) { NodeManagerInitService serviceNodeB =
- * node.getDomain().getService(NodeManagerInitService.class,"WorkerManagerNodeBComponent/NodeManagerInitService");
- * serviceNodeB.setNode(node); } if (nodeName.equals("nodeC")) {
- * NodeManagerInitService workerManagerC =
- * node.getDomain().getService(NodeManagerInitService.class,"WorkerManagerNodeCComponent/NodeManagerInitService");
- * workerManagerC.setNode(node); } if (nodeName.equals("nodeD")) {
- * NodeManagerInitService workerManagerD =
- * node.getDomain().getService(NodeManagerInitService.class,"WorkerManagerNodeDComponent/NodeManagerInitService");
- * workerManagerD.setNode(node); } if (nodeName.equals("nodeE")) {
- * NodeManagerInitService workerManagerE =
- * node.getDomain().getService(NodeManagerInitService.class,"WorkerManagerNodeEComponent/NodeManagerInitService");
- * workerManagerE.setNode(node); }
- *
- * System.out.println("Node started (press enter to shutdown)");
- * System.in.read(); } catch (IOException e) { e.printStackTrace(); } //
- * stop the node and all the domains in it node.stop(); node.destroy();
- * System.exit(0); } catch(Exception ex) { System.err.println("Exception in
- * node - " + ex.getMessage()); ex.printStackTrace(System.err); } }
- */
- public void destroy() {
- // TODO Auto-generated method stub
-
- }
-
- public void init(DaemonContext arg0) throws Exception {
- String[] args = arg0.getArguments();
- domainName = args[0];
- nodeName = args[1];
- iterations = Long.parseLong(args[2]);
- jobsNo = Long.parseLong(args[3]);
- workerNo = Long.parseLong(args[4]);
- if (args.length == 6) {
- ruleFile = args[5];
- }
- this.controller = arg0.getController();
- // this.thread=new Thread(this);
- }
-
- public void start() throws Exception {
-
- ClassLoader cl = WorkpoolDaemon.class.getClassLoader();
-
- SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
- node = nodeFactory.createSCANode(null, domainName);
- node.addContribution(nodeName, cl.getResource(nodeName + "/"));
- node.addToDomainLevelComposite(new QName("http://sample", "Workpool"));
- node.start();
- // nodeA is the head node and runs some tests while all other nodes
- // simply listen for incoming messages
-
- FileReader rules = new FileReader(ruleFile);
- StringBuffer buffer = new StringBuffer();
-
- BufferedReader br = new BufferedReader(rules);
- String ruleString;
- do {
- ruleString = br.readLine();
- if (ruleString != null) {
- buffer.append(ruleString + "\n");
- }
- } while (ruleString != null);
-
- if (nodeName.equals("nodeA")) {
- // do some application stuff
- WorkpoolService workpoolService = node.getDomain().getService(
- WorkpoolService.class, "WorkpoolServiceComponent");
- workpoolService.start();
- SCANodeManagerInitService nodeInit = node.getDomain().getService(
- SCANodeManagerInitService.class,
- "WorkpoolManagerComponent/NodeManagerInitService");
- nodeInit.setNode(node);
- WorkpoolManager workpoolManager = node.getDomain().getService(
- WorkpoolManager.class,
- "WorkpoolManagerComponent/WorkpoolManager");
- workpoolManager.setWorkpoolReference(node.getDomain()
- .getServiceReference(WorkpoolService.class,
- "WorkpoolServiceComponent"));
- workpoolManager.acceptRules(buffer.toString());
- workpoolManager.start();
-
- int items[] = { 3, 4, 5, 6, 3, 6, 3, 5, 9, 5, 6 };
-
- double x = 398349;
- for (int i = 0; i < jobsNo; ++i) {
- workpoolService.submit(new TestJob(x, iterations, items));
- }
- TestJob j = new TestJob(-1.0, true);
- for (int i = 0; i < workerNo + 1; ++i) {
- j.setEOS();
- workpoolService.submit(j);
- }
-
- }
- if (nodeName.equals("nodeB")) {
- SCANodeManagerInitService workerManagerNodeB = node
- .getDomain()
- .getService(SCANodeManagerInitService.class,
- "WorkerManagerNodeBComponent/NodeManagerInitService");
- workerManagerNodeB.setNode(node);
- }
-
- if (nodeName.equals("nodeC")) {
- SCANodeManagerInitService workerManagerNodeC = node
- .getDomain()
- .getService(SCANodeManagerInitService.class,
- "WorkerManagerNodeCComponent/NodeManagerInitService");
- workerManagerNodeC.setNode(node);
- }
-
- if (nodeName.equals("nodeD")) {
- SCANodeManagerInitService workerManagerNodeD = node
- .getDomain()
- .getService(SCANodeManagerInitService.class,
- "WorkerManagerNodeDComponent/NodeManagerInitService");
- workerManagerNodeD.setNode(node);
- }
-
- if (nodeName.equals("nodeE")) {
- SCANodeManagerInitService workerManagerNodeE = node
- .getDomain()
- .getService(SCANodeManagerInitService.class,
- "WorkerManagerNodeEComponent/NodeManagerInitService");
- workerManagerNodeE.setNode(node);
- }
-
- this.waitForever();
- // this.thread.start();
- }
-
- public void stop() throws Exception {
- Thread.currentThread().interrupt();
- // thread.interrupt();
- node.stop();
- node.destroy();
- }
-
- private synchronized void waitForever() {
- while (!stopped) {
- try {
- wait();
- } catch (InterruptedException ex) {
- stopped = true;
- return;
- }
- }
- }
-
- public void run() {
- waitForever();
- }
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolNode.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolNode.java
deleted file mode 100644
index 86557548af..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/WorkpoolNode.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * 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 node;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.DeployedArtifact;
-import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
-import org.apache.tuscany.sca.domain.SCADomain;
-import org.apache.tuscany.sca.node.NodeManagerInitService;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
-import org.apache.tuscany.sca.node.impl.SCANodeImpl;
-import java.net.URI;
-
-import workpool.WorkerManager;
-import workpool.WorkerManagerImpl;
-import workpool.WorkpoolManager;
-import workpool.WorkpoolService;
-import workpool.WorkpoolServiceImpl;
-
-/**
- * This client program shows how to run a distributed SCA node. In this case a
- * calculator node has been constructed specifically for running the calculator
- * composite. Internally it creates a representation of a node and associates a
- * distributed domain with the node. This separation is made different
- * implementations of the distributed domain can be provided.
- */
-public class WorkpoolNode {
-
- public static void main(String[] args) throws Exception {
-
- // Check that the correct arguments have been provided
- if (null == args || args.length < 4) {
- System.err
- .println("Useage: java WorkpoolNode domainname nodename iterTest workerNo");
- System.exit(1);
- }
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- String domainName = args[0];
- String nodeName = args[1];
- long iterations = Long.parseLong(args[2]);
- long jobsNo = Long.parseLong(args[3]);
- long workerNo = Long.parseLong(args[4]);
- ClassLoader cl = WorkpoolNode.class.getClassLoader();
-
- SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
- SCANode node = nodeFactory.createSCANode(null, domainName);
- node.addContribution(nodeName, cl.getResource(nodeName + "/"));
- node.addToDomainLevelComposite(new QName("http://sample", "Workpool"));
- node.start();
- // nodeA is the head node and runs some tests while all other nodes
- // simply listen for incoming messages
-
- FileReader rules = new FileReader("workerRules.drl");
- StringBuffer buffer = new StringBuffer();
-
- BufferedReader br = new BufferedReader(rules);
- String ruleString;
- do {
- ruleString = br.readLine();
- if (ruleString != null) {
- buffer.append(ruleString + "\n");
- }
- } while (ruleString != null);
-
- if (nodeName.equals("nodeA")) {
- // do some application stuff
- WorkpoolService workpoolService = node.getDomain().getService(
- WorkpoolService.class, "WorkpoolServiceComponent");
- workpoolService.start();
- NodeManagerInitService nodeInit = node.getDomain().getService(
- NodeManagerInitService.class,
- "WorkpoolManagerComponent/NodeManagerInitService");
- nodeInit.setNode(node);
- WorkpoolManager workpoolManager = node.getDomain().getService(
- WorkpoolManager.class,
- "WorkpoolManagerComponent/WorkpoolManager");
- workpoolManager.setWorkpoolReference(node.getDomain()
- .getServiceReference(WorkpoolService.class,
- "WorkpoolServiceComponent"));
- workpoolManager.setCycleTime(8000);
- workpoolManager.acceptRules(buffer.toString());
- workpoolManager.start();
- int items[] = { 3, 4, 5, 6, 3, 6, 3, 5, 9, 5, 6 };
-
- double x = 398349;
-
- for (int i = 0; i < jobsNo; ++i)
- workpoolService.submit(new TestJob(x, iterations, items));
-
- TestJob j = new TestJob(-1.0, true);
- for (int i = 0; i < workerNo + 1; ++i) {
- j.setEOS();
- workpoolService.submit(j);
- }
-
- }
- try {
- if (nodeName.equals("nodeB")) {
- NodeManagerInitService serviceNodeB = node
- .getDomain()
- .getService(NodeManagerInitService.class,
- "WorkerManagerNodeBComponent/NodeManagerInitService");
- serviceNodeB.setNode(node);
- }
- if (nodeName.equals("nodeC")) {
- NodeManagerInitService workerManagerC = node
- .getDomain()
- .getService(NodeManagerInitService.class,
- "WorkerManagerNodeCComponent/NodeManagerInitService");
- workerManagerC.setNode(node);
- }
- if (nodeName.equals("nodeD")) {
- NodeManagerInitService workerManagerD = node
- .getDomain()
- .getService(NodeManagerInitService.class,
- "WorkerManagerNodeDComponent/NodeManagerInitService");
- workerManagerD.setNode(node);
- }
- if (nodeName.equals("nodeE")) {
- NodeManagerInitService workerManagerE = node
- .getDomain()
- .getService(NodeManagerInitService.class,
- "WorkerManagerNodeEComponent/NodeManagerInitService");
- workerManagerE.setNode(node);
- }
-
- System.out.println("Node started (press enter to shutdown)");
- String buff;
- for (;;) {
- try {
- buff = in.readLine();
- if (buff == null)
- break;
- System.out.print(in.readLine());
- } catch (IOException ex) {
- break; // Exit thread.
- }
- }
- // stop the node and all the domains in it
- node.stop();
- node.destroy();
- System.exit(0);
- } catch (Exception ex) {
- System.err.println("Exception in node - " + ex.getMessage());
- ex.printStackTrace(System.err);
- }
- }
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/workerRules1.drl b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/workerRules1.drl
deleted file mode 100644
index 9c5a5d1b7f..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/node/workerRules1.drl
+++ /dev/null
@@ -1,13 +0,0 @@
-package workpool
-import workpool.*;
-rule "WorkerAdder1"
- when
- $workerBean: WorkpoolBean(singleAction == false && (jobComputed > 500))
- then
- $workerBean.setSingleAction()
- $workerBean.addWorkerToNode("nodeB")
- $workerBean.addWorkerToNode("nodeC")
- $workerBean.addWorkerToNode("nodeD")
- $workerBean.addWorkerToNode("nodeE")
-end
- \ No newline at end of file
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MetaComponentWorker.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MetaComponentWorker.java
deleted file mode 100644
index cdd0f30b34..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MetaComponentWorker.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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 workpool;
-
-import java.io.StringReader;
-import java.net.URI;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.util.logging.Logger;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.tuscany.sca.assembly.MetaComponent;
-import org.apache.tuscany.sca.assembly.impl.DefaultMetaComponent;
-
-public class MetaComponentWorker extends DefaultMetaComponent {
-
- private SecureRandom prng;
- private String componentName;
- private String scdl;
- private String javaClass;
- private boolean loadedFromString = false;
- private Logger log = Logger.getLogger(MetaComponentWorker.class.getName());
-
- public MetaComponentWorker() {
- componentName = "WorkerComponent"
- + java.util.UUID.randomUUID().toString();
- }
-
- public void setWorkerName(String componentName) {
- this.componentName = componentName;
- }
-
- public void setWorkerClass(String javaClass) {
- this.javaClass = javaClass;
- }
-
- private String generateSCDL() {
- StringBuffer buffer = new StringBuffer(512);
- buffer
- .append("<component xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" name=\"");
- buffer.append(this.componentName);
- buffer.append("\">\n");
- buffer.append("<implementation.java class=\"");
- buffer.append(this.javaClass);
- buffer.append("\"/>");
- buffer.append("<property name=\"workerName\">");
- buffer.append(this.componentName);
- buffer.append("</property>\n</component>");
- return buffer.toString();
- }
-
- @Override
- public XMLStreamReader build() throws Exception {
- XMLInputFactory factory = XMLInputFactory.newInstance();
- if (!loadedFromString)
- scdl = generateSCDL();
- return factory.createXMLStreamReader(new StringReader(scdl));
-
- }
-
- public String getName() {
-
- return componentName;
- }
-
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MyWorker.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MyWorker.java
deleted file mode 100644
index c45696e3cf..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/MyWorker.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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 workpool;
-
-import org.apache.tuscany.sca.core.context.CallableReferenceImpl;
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.apache.tuscany.sca.databinding.job.JobDataMap;
-import org.apache.tuscany.sca.databinding.job.JobExecutionContext;
-import org.apache.tuscany.sca.databinding.job.RemoteJob;
-import org.osoa.sca.annotations.Scope;
-
-@Scope("COMPOSITE")
-public class MyWorker extends WorkerServiceImpl<Object, Double> {
- private static int resultcount = 0;
-
- @Override
- public ResultJob computeTask(Job<Object, Double> job) {
-
- RemoteJob remoteJob = (RemoteJob) job;
- System.out.println("Computing the job");
- JobExecutionContext context = remoteJob.getContext();
- ResultJob resultJob = new ResultJob();
- JobDataMap resultMap = new JobDataMap();
- resultMap.addJobData("result", remoteJob.compute(context));
- resultJob.setJobDataMap(resultMap);
- System.out.println("Count result = " + (++resultcount));
- return resultJob;
- }
-
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/NullJob.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/NullJob.java
deleted file mode 100644
index fb930adf2e..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/NullJob.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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 workpool;
-
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.apache.tuscany.sca.databinding.job.JobDataMap;
-
-public class NullJob implements Job, java.io.Serializable {
-
- public Object compute(Object arg0) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public JobDataMap getDataMap() {
- return null;
- }
-
- public boolean eos() {
- return false;
- }
-
- public int getType() {
- return Job.NULL_JOB;
- }
-
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/ResultJob.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/ResultJob.java
deleted file mode 100644
index e04411668b..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/ResultJob.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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 workpool;
-
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.apache.tuscany.sca.databinding.job.JobDataMap;
-import org.apache.tuscany.sca.databinding.job.JobExecutionContext;
-import org.apache.tuscany.sca.databinding.job.RemoteJob;
-
-public class ResultJob extends RemoteJob<Object> implements
- java.io.Serializable {
- private JobDataMap map;
-
- public JobDataMap getDataMap() {
- return map;
- }
-
- public void setJobDataMap(JobDataMap map) {
- this.map = map;
- }
-
- public boolean eos() {
- // TODO Auto-generated method stub
- return true;
- }
-
- public int getType() {
- // TODO Auto-generated method stub
- return Job.RESULT_JOB;
- }
-
- @Override
- public Object compute(JobExecutionContext v) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/Trigger.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/Trigger.java
deleted file mode 100644
index 469675b19b..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/Trigger.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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 workpool;
-
-import org.apache.tuscany.sca.databinding.annotation.DataBinding;
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.osoa.sca.annotations.Remotable;
-
-@Remotable
-@DataBinding("org.apache.tuscany.sca.databinding.job.Job")
-public interface Trigger<T> {
- void handleEvent(T c);
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManager.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManager.java
deleted file mode 100644
index 520203e190..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManager.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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 workpool;
-import org.osoa.sca.annotations.Remotable;
-import org.osoa.sca.CallableReference;
-@Remotable
-public interface WorkerManager {
- CallableReference<WorkerService> addWorker();
- boolean removeWorker(String workerName);
- boolean removeWorkers(int k);
- boolean removeAllWorkers();
- double getNodeLoad();
- int activeWorkers();
- void start();
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManagerImpl.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManagerImpl.java
deleted file mode 100644
index d4337cad2f..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerManagerImpl.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * 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 workpool;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.util.List;
-import java.util.logging.Logger;
-
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.DeployedArtifact;
-import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
-import org.osoa.sca.CallableReference;
-import org.apache.tuscany.sca.node.management.SCANodeManagerInitService;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.impl.SCANodeImpl;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.osoa.sca.ComponentContext;
-import org.osoa.sca.annotations.Context;
-import org.osoa.sca.annotations.Property;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-import java.util.LinkedList;
-import java.util.ArrayList;
-
-@Scope("COMPOSITE")
-@Service(interfaces = { SCANodeManagerInitService.class, WorkerManager.class })
-public class WorkerManagerImpl implements WorkerManager, SCANodeManagerInitService {
- private Logger log = Logger.getLogger(WorkerManagerImpl.class.getName());
- private LinkedList<CallableReference<WorkerService>> activeWorkers = new LinkedList<CallableReference<WorkerService>>();
- private List<String> workerComponentNames = new ArrayList<String>();
- private SCANodeImpl node;
- @Property
- protected String nodeName;
- @Property
- protected String compositeName;
- @Property
- protected String workerClass;
- @Context
- protected ComponentContext context;
- private double loadAverage;
-
- /* This method is used to find a composite inside all deployed artifacts */
- private Composite findComposite(List<Composite> artifacts) {
- for (Composite fact : artifacts) {
- log.info("Searching in a contribution deployed artifacts -"
- + compositeName);
- Composite augmented = (Composite) fact;
- // found
- if (augmented.getURI().equals(compositeName)) {
- log.info("Found composite..." + compositeName);
- return augmented;
- }
- }
- }
- return null;
- }
-
- public CallableReference<WorkerService> addWorker() {
- log.info("Adding a new worker call..");
- long addWorkerStartTime = System.nanoTime();
- ContributionServiceImpl cServiceImpl = (ContributionServiceImpl) node.getContributionService();
- Contribution contribution = cServiceImpl.getContribution(nodeName);
- List<Composite> artifacts = contribution.getDeployables();
- CallableReference<WorkerService> workerReference = null;
- CallableReference<WorkerService> ref = null;
- log.info("Creating a MetaComponentWorker..");
- MetaComponentWorker mcw = new MetaComponentWorker();
- boolean found = false;
- mcw.setWorkerClass(workerClass);
- Composite augmented = findComposite(artifacts);
- try {
- if (augmented != null) {
- long startCreation = System.nanoTime();
- node.addComponentToComposite(mcw, contribution.getURI(),
- augmented.getURI());
- System.out.println("addComponentToComposite time = "
- + (System.nanoTime() - startCreation));
- RuntimeComponent workerComponent = (RuntimeComponent) node
- .getComponent(mcw.getName());
- if (workerComponent != null) {
- ref = (CallableReference<WorkerService>) workerComponent
- .getComponentContext().createSelfReference(
- WorkerService.class);
- ref.getService().start();
- activeWorkers.addLast(ref);
- workerComponentNames.add(mcw.getName());
- CallableReference<WorkerManager> manager = (CallableReference) context
- .createSelfReference(WorkerManager.class,
- "WorkerManager");
- ref.getService().registerManager(manager);
- return ref;
- }
- } else {
- log.info("Workpool composite not found!");
- }
- } catch (Exception e) {
- log.info("Exception activation");
- e.printStackTrace();
- }
- ;
- System.out.println("Component Creation Time ="
- + (System.nanoTime() - addWorkerStartTime));
- return ref;
- }
-
- public boolean removeAllWorkers() {
- for (CallableReference<WorkerService> callable : activeWorkers) {
- callable.getService().stop();
- }
- return true;
- }
-
- public boolean removeWorker() {
- CallableReference<WorkerService> callable = activeWorkers
- .removeLast();
- callable.getService().stop();
- return true;
- }
-
- public boolean removeWorkers(int k) {
- if (k >= activeWorkers.size())
- return false;
- for (int i = 0; i < k; ++i) {
- if (!removeWorker())
- return false;
- }
- return true;
- }
-
- public void setNode(SCANode node) {
- this.node = (SCANodeImpl) node;
-
- }
-
- public double getNodeLoad() {
- /*
- * FIXME [jo] this works only on Linux To be replaced with an JNI
- * extension
- */
- RandomAccessFile statfile;
-
- this.loadAverage = 1.0;
- // load = 0;
- int NoProcessors = 0;
- String cpuLine = null;
- try {
- NoProcessors = Runtime.getRuntime().availableProcessors();
- if (NoProcessors > 1)
- this.loadAverage = 1 / (1.0 * NoProcessors);
- statfile = new RandomAccessFile("/proc/loadavg", "r");
- try {
- statfile.seek(0);
- cpuLine = statfile.readLine();
-
- } catch (IOException e) {
- // FIX ME: Better exception handling.
- e.printStackTrace();
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (NumberFormatException e) {
- e.printStackTrace();
- }
- double min1;
- if (cpuLine != null) {
- java.util.StringTokenizer st = new java.util.StringTokenizer(
- cpuLine, " ");
- min1 = Double.parseDouble(st.nextToken());
- } else
- min1 = 0;
-
- return min1 * this.loadAverage;
- }
-
- public int activeWorkers() {
- return activeWorkers.size();
- }
-
- public boolean removeWorker(String workerName) {
- RuntimeComponent workerComponent = (RuntimeComponent) node
- .getComponent(workerName);
- if (workerComponent != null) {
- log.info("Removing component " + workerName);
- node.removeComponentFromComposite(nodeName, "Workpool.composite",
- workerName);
- return true;
- }
- return false;
- }
-
- public void start() {
- // do nothing for now.
- }
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerService.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerService.java
deleted file mode 100644
index 37b7ea227a..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerService.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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 workpool;
-
-import org.osoa.sca.ServiceReference;
-import org.osoa.sca.annotations.Callback;
-import org.osoa.sca.annotations.Remotable;
-import org.osoa.sca.annotations.OneWay;
-import org.apache.tuscany.sca.core.context.CallableReferenceImpl;
-import org.apache.tuscany.sca.databinding.annotation.DataBinding;
-import org.apache.tuscany.sca.databinding.job.Job;
-
-/**
- * The interface for the multiply service
- */
-@Remotable
-@Callback(WorkerServiceCallback.class)
-@DataBinding("org.apache.tuscany.sca.databinding.job.Job")
-public interface WorkerService<T, E> {
- @OneWay
- void compute(Job<T, E> j);
-
- void start();
-
- void stop();
-
- // void addJobCompleteHandler(String triggerName,
- // CallableReferenceImpl<Trigger> handle);
- // void removeJobCompleteHandler(String triggerName);
- /* The worker manager */
- void registerManager(CallableReferenceImpl<WorkerManager> wm);
-
- void registerSender(CallableReferenceImpl<WorkpoolService> sender);
-
- // void init(Job nullJob);
- @OneWay
- void computeFirstTime(Job nullJob,
- CallableReferenceImpl<WorkpoolService> myReference);
-
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceCallback.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceCallback.java
deleted file mode 100644
index 6fb1278e5e..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceCallback.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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 workpool;
-
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.osoa.sca.annotations.Remotable;
-
-@Remotable
-public interface WorkerServiceCallback {
- void receiveResult(Job resultType, boolean reuse, String workerName);
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceImpl.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceImpl.java
deleted file mode 100644
index 2c9bf5ea48..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkerServiceImpl.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * 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 workpool;
-
-import org.osoa.sca.ComponentContext;
-import org.osoa.sca.RequestContext;
-import org.osoa.sca.ServiceReference;
-import org.osoa.sca.annotations.Callback;
-import org.osoa.sca.annotations.Context;
-import org.osoa.sca.annotations.Property;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-import org.apache.tuscany.sca.core.context.CallableReferenceImpl;
-import org.apache.tuscany.sca.databinding.annotation.DataBinding;
-import org.apache.tuscany.sca.databinding.job.Job;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.*;
-
-/**
- * An implementation of the worker service.
- */
-@Service(WorkerService.class)
-@DataBinding("org.apache.tuscany.sca.databinding.job.Job")
-@Scope("COMPOSITE")
-public abstract class WorkerServiceImpl<T, E> implements WorkerService<T, E> {
- private Logger log = Logger.getLogger(this.getClass().getName());
- private WorkerServiceCallback workerServiceCallback;
- @Context
- protected ComponentContext workerContext;
- @Context
- protected RequestContext requestContext;
- @Property
- protected String workerName;
- private CallableReferenceImpl<WorkerManager> managerReference = null;
-
- /* TODO add the triggers, but before ask */
- // protected Map<String,Trigger> triggers = new HashMap<String,Trigger>();
- public abstract ResultJob computeTask(Job<T, E> job);
-
- private boolean stopped = false;
- private CallableReferenceImpl<WorkerService> serviceRef;
- private CallableReferenceImpl<WorkpoolService> senderService;
- private WorkpoolService wp = null;
- private WorkerManager manager = null;
-
- public void start() {
- log.info("Starting worker...");
- stopped = false;
- serviceRef = (CallableReferenceImpl) workerContext
- .createSelfReference(WorkerService.class);
-
- }
-
- public void init(CallableReferenceImpl<WorkpoolService> sender, Job nullJob) {
- compute(nullJob);
- }
-
- public void stop() {
- stopped = true;
- }
-
- @Callback
- public void setWorkerServiceCallback(
- WorkerServiceCallback workerServiceCallback) {
- log.info("Setting worker callback");
- this.workerServiceCallback = workerServiceCallback;
- }
-
- public void computeFirstTime(Job nullJob,
- CallableReferenceImpl<WorkpoolService> sender) {
- senderService = sender;
- wp = sender.getService();
- workWithCallable(nullJob);
- }
-
- public void registerManager(CallableReferenceImpl<WorkerManager> wm) {
- managerReference = wm;
- manager = managerReference.getService();
-
- }
-
- public void registerSender(CallableReferenceImpl<WorkpoolService> sender) {
- log.info("Registering sender..");
- senderService = sender;
- wp = sender.getService();
- }
-
- private void workWithInjection(Job j) {
- log.info("Worker has received job");
- if (stopped) {
- workerServiceCallback
- .receiveResult(j, true, workerContext.getURI());
- if (managerReference != null)
- manager.removeWorker(workerContext.getURI());
- } else if (j.eos()) {
- if (managerReference != null)
- manager.removeWorker(workerContext.getURI());
- }
- if (j instanceof NullJob) {
- workerServiceCallback.receiveResult(j, false, workerContext
- .getURI());
- } else {
- workerServiceCallback.receiveResult(computeTask(j), false,
- workerContext.getURI());
- }
- }
-
- private void workWithCallable(Job j) {
- log.info("Worker " + workerContext.getURI()
- + " has received job with eos --> " + j.eos());
- if (stopped) {
- wp.handleResult(j, true, workerContext.getURI(), serviceRef, false);
- return;
- }
- if (j.eos()) {
- log.info("Got poison token...");
- if (managerReference != null) {
- log.info("Removing component " + workerContext.getURI());
- manager.removeWorker(workerContext.getURI());
-
- }
- return;
- }
- if (j.getType() != Job.NULL_JOB) {
- wp.handleResult(computeTask(j), false, workerContext.getURI(),
- serviceRef, false);
- } else {
- log.info("Got a null job");
- wp.handleResult(j, false, workerContext.getURI(), serviceRef, true);
- }
- }
-
- public void compute(Job<T, E> j) {
-
- if (senderService != null) {
- log.info("Computing job using callable reference method");
- workWithCallable(j);
-
- } else {
- log.info("Computing job using reference injection method");
- workWithInjection(j);
-
- }
- }
- /*
- * public void addJobCompleteHandler(String triggerName,
- * CallableReferenceImpl<Trigger> handle) { if
- * (!triggers.containsKey(triggerName)) { triggers.put(triggerName,
- * handle.getService()); } } public void removeJobCompleteHandler(String
- * triggerName) { if (!triggers.containsKey(triggerName)) {
- * triggers.remove(triggerName); } }
- */
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBean.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBean.java
deleted file mode 100644
index 80c093ff1c..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBean.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * 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 workpool;
-
-import java.beans.*;
-import java.util.Vector;
-import java.util.logging.*;
-
-public class WorkpoolBean {
- private Vector<WorkpoolBeanListener> listeners = new Vector<WorkpoolBeanListener>();
- double loadAverage = 0;
- int nodeNumbers = 0;
- int workers = 0;
- int estimedQueueSize = 0;
- double averageServiceTime = 0;
- double averageArrivalTime = 0;
- double usageFactor = 0;
- private final PropertyChangeSupport changes = new PropertyChangeSupport(
- this);
- long jobComputed = 0;
- boolean singleAction = false;
- private Logger log = Logger.getLogger(WorkpoolBean.class.getName());
-
- public void setNodeNumbers(int n) {
- this.nodeNumbers = n;
- }
-
- public void setWorkers(int w) {
- this.workers = w;
- }
-
- public void setLoadAverage(double loadAverage) {
- this.loadAverage = loadAverage;
- }
-
- public void setAverageServiceTime(double service) {
- this.averageServiceTime = service;
- }
-
- public void setAverageArrivalTime(double service) {
- this.averageArrivalTime = service;
- }
-
- public double getAverageArrivalTime() {
- return this.averageArrivalTime;
- }
-
- public double getUtilizationFactor() {
- return usageFactor;
- }
-
- public void setUsageFactor() {
- usageFactor = averageServiceTime / averageArrivalTime;
- }
-
- public void setEstimedQueueSize(int size) {
- estimedQueueSize = size;
- }
-
- public int getEstimedQueueSize() {
- return estimedQueueSize;
- }
-
- public double getLoadAverage() {
- return this.loadAverage;
- }
-
- public int getWorkers() {
- return this.workers;
- }
-
- public int getNodeNumbers() {
- return this.nodeNumbers;
- }
-
- public double getAverageServiceTime() {
- return this.averageServiceTime;
- }
-
- public void addPropertyChangeListener(final PropertyChangeListener l) {
- this.changes.addPropertyChangeListener(l);
- }
-
- public void removePropertyChangeListener(final PropertyChangeListener l) {
- this.changes.removePropertyChangeListener(l);
- }
-
- private synchronized void fireWorkpoolEvent(WorkpoolEvent ev) {
- for (WorkpoolBeanListener l : listeners) {
- l.handleEvent(new WorkpoolEvent(ev));
- }
- }
-
- public void addWorkersToNode(int k, String nodeName) {
- log.info("Adding a worker to node " + nodeName);
- WorkpoolEvent ev = new WorkpoolEvent(this,
- WorkpoolEvent.EVENT_MULTIPLE_ADD_WORKER, k, nodeName);
- fireWorkpoolEvent(ev);
- }
-
- public void addWorkerToNode(String nodeName) {
- log.info("Adding a worker to node " + nodeName);
- WorkpoolEvent ev = new WorkpoolEvent(this,
- WorkpoolEvent.SINGLE_ADD_WORKER, 1, nodeName);
- fireWorkpoolEvent(ev);
- }
-
- public void removeWorkersToNode(int k, String nodeName) {
- log.info("Removing a worker to node " + nodeName);
- WorkpoolEvent ev = new WorkpoolEvent(this,
- WorkpoolEvent.EVENT_MULTIPLE_REMOVE_WORKER, k, nodeName);
- fireWorkpoolEvent(ev);
- }
-
- public void removeWorkerToNode(String nodeName) {
- log.info("Removing a worker to node " + nodeName);
- WorkpoolEvent ev = new WorkpoolEvent(this,
- WorkpoolEvent.SINGLE_REMOVE_WORKER, 1, nodeName);
- fireWorkpoolEvent(ev);
- }
-
- public synchronized void addListener(WorkpoolBeanListener l) {
- this.listeners.add(l);
- }
-
- public synchronized void removeListener(WorkpoolBeanListener l) {
- this.listeners.remove(l);
- }
-
- public void setJobComputed(long jobComputed) {
- this.jobComputed = jobComputed;
-
- }
-
- public void setSingleAction() {
- singleAction = true;
- }
-
- public boolean getSingleAction() {
- return singleAction;
- }
-
- public long getJobComputed() {
- return this.jobComputed;
- }
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBeanListener.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBeanListener.java
deleted file mode 100644
index 0ecc223fed..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolBeanListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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 workpool;
-
-import java.util.EventListener;
-
-public interface WorkpoolBeanListener extends EventListener {
- public void handleEvent(WorkpoolEvent ev);
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolEvent.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolEvent.java
deleted file mode 100644
index 0bdc3671d5..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolEvent.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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 workpool;
-
-import java.util.EventObject;
-
-public class WorkpoolEvent extends EventObject {
-
- private static final long serialVersionUID = -1273928009411948768L;
-
- public WorkpoolEvent(Object source) {
- super(source);
- }
-
- public WorkpoolEvent(WorkpoolEvent ev) {
- super(ev.source);
- type = ev.type;
- noWorker = ev.noWorker;
- nodeName = ev.nodeName;
- }
-
- public WorkpoolEvent(Object source, int typeEv, int worker) {
- super(source);
- type = typeEv;
- noWorker = worker;
- nodeName = "";
- }
-
- public WorkpoolEvent(Object source, int typeEv, int worker, String nodeName) {
- super(source);
- type = typeEv;
- noWorker = worker;
- this.nodeName = nodeName;
- }
-
- public String getNodeName() {
- return nodeName;
- }
-
- public int getType() {
- return type;
- }
-
- public int workers() {
- return noWorker;
- }
-
- private int type;
- private int noWorker;
- private String nodeName;
- public static final int EVENT_MULTIPLE_ADD_WORKER = 0;
- public static final int EVENT_MULTIPLE_REMOVE_WORKER = 1;
- public static final int SINGLE_REMOVE_WORKER = 2;
- public static final int SINGLE_ADD_WORKER = 3;
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManager.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManager.java
deleted file mode 100644
index 6520954bdd..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManager.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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 workpool;
-
-import org.osoa.sca.ServiceReference;
-import org.osoa.sca.annotations.OneWay;
-import org.osoa.sca.annotations.Remotable;
-
-@Remotable
-public interface WorkpoolManager {
- /*
- * @param String rules This are the autonomic rules. The format is the Java
- * Drools .drl file. You have to read it
- */
- @OneWay
- void acceptRules(String rules);
-
- @OneWay
- void start();
-
- @OneWay
- void stopAutonomicCycle();
-
- @OneWay
- void startAutonomicCycle();
-
- int activeWorkers();
-
- void setCycleTime(long time);
-
- void setWorkpoolReference(ServiceReference<WorkpoolService> serviceReference);
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManagerImpl.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManagerImpl.java
deleted file mode 100644
index f7c727ad04..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolManagerImpl.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*
- * 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 workpool;
-
-import org.osoa.sca.ComponentContext;
-import org.osoa.sca.ServiceReference;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.logging.Logger;
-
-import javax.xml.stream.XMLStreamException;
-
-import node.TestJob;
-import java.io.File;
-import java.util.Vector;
-import org.apache.axiom.om.OMElement;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.core.context.CallableReferenceImpl;
-import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.apache.tuscany.sca.node.NodeManagerInitService;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.impl.SCANodeImpl;
-import org.osoa.sca.CallableReference;
-import org.drools.FactHandle;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.StatelessSession;
-import org.drools.compiler.DroolsParserException;
-import org.drools.compiler.PackageBuilder;
-import org.drools.rule.Package;
-import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.Context;
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Property;
-import org.osoa.sca.annotations.Reference;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.locks.ReentrantLock;
-
-@Service(interfaces = { NodeManagerInitService.class, WorkpoolManager.class })
-@Scope("COMPOSITE")
-/*
- * This is the core manager of the workpool application. The Workpool Manager
- * holds the reference to each remote node manager. Inside it we've a rule
- * engine instance.
- */
-public class WorkpoolManagerImpl implements WorkpoolManager,
- NodeManagerInitService, WorkpoolBeanListener {
- /*
- * This inner class trigs the rule engine, at given times: 1. It checks the
- * different loads for each nodes and sets the WorkpoolBean 2. It checks the
- * Workpool AverageService Time and sets the WorkpoolBean 3. It checks how
- * many jobs are already computed and sets the WorkpoolBean Then given the
- * configured bean and the rules, run the Rule Engine for executing the
- * business logic
- */
- class RuleEngineTrigger extends TimerTask {
- // private ReentrantLock triggerLock = new ReentrantLock();
- @Override
- public void run() {
-
- System.out.println("Updating WorkpoolBean..");
- // checkActiveWorkers();
- // checkLoadInNodes();
- checkServiceTime();
- // checkEstimedQueueSize();
- // checkArrivalTime();
- getProcessedItem();
- // computeUsageFactor();
- doRun(bean);
- }
-
- }
-
- private WorkerManager managerNodeB;
- private WorkerManager managerNodeC;
- private WorkerManager managerNodeD;
- private WorkerManager managerNodeE;
-
- private SCANodeImpl node;
- private WorkpoolBean bean = new WorkpoolBean();
- private ReentrantLock handleEventLock = new ReentrantLock();
- private ReentrantLock updateRuleLock = new ReentrantLock();
-
- private ServiceReference<WorkpoolService> reference;
- private AtomicInteger activeWorkers = new AtomicInteger(0);
- private Logger log = Logger.getLogger(WorkpoolManagerImpl.class.getName());
- @Property
- protected String workers;
- @Property
- protected String nodes;
- @Property
- protected String injection;
- @Context
- protected ComponentContext workpoolManagerContext;
- private CallableReferenceImpl<WorkpoolManager> myReference;
- private String rules = null;
- private boolean referenceInjection = false;
- private ConcurrentHashMap<String, WorkerManager> workerManagerTable = new ConcurrentHashMap<String, WorkerManager>();
- private int workersNo;
- private int nodesNo;
- private Timer timer = new Timer();
- /* this handle facts */
- private RuleBase ruleBase = null;
- private FactHandle handle = null;
- private StatefulSession wm = null;
- private long cycleTime = 5000;
-
- @Reference
- public void setManagerNodeB(WorkerManager managerNodeB) {
- this.managerNodeB = managerNodeB;
- workerManagerTable.put("nodeB", managerNodeB);
- }
-
- @Reference
- public void setManagerNodeC(WorkerManager managerNodeC) {
- this.managerNodeC = managerNodeC;
- workerManagerTable.put("nodeC", managerNodeC);
- }
-
- @Reference
- public void setManagerNodeD(WorkerManager managerNodeD) {
- this.managerNodeD = managerNodeD;
- workerManagerTable.put("nodeD", managerNodeD);
- }
-
- @Reference
- public void setManagerNodeE(WorkerManager managerNodeE) {
- this.managerNodeE = managerNodeE;
- workerManagerTable.put("nodeE", managerNodeE);
- }
-
- private void startNewComponents(
- Vector<CallableReferenceImpl<WorkerService>> vector) {
- log.info("Starting new components");
- WorkpoolService wp = reference.getService();
- // CallableReferenceImpl<WorkpoolService> sink =
- // (CallableReferenceImpl<WorkpoolService>) reference;
- Job j = new NullJob();
- for (CallableReferenceImpl<WorkerService> item : vector) {
- // WorkerService service = item.getService();
- // service.start();
- // service.computeFirstTime(j, sink);
- log.info("Send PostWorkerReference...");
- wp.PostWorkerReference(item);
- }
- if (myReference != null)
- wp.registerManager(myReference);
- }
-
- public void setCycleTime(long cycle) {
- this.cycleTime = cycle;
- }
-
- @SuppressWarnings("unchecked")
- /*
- * This gets the number of workers workerNo and instantiates them
- */
- public void start() {
- this.myReference = (CallableReferenceImpl<WorkpoolManager>) workpoolManagerContext
- .createSelfReference(WorkpoolManager.class, "WorkpoolManager");
- this.workersNo = Integer.parseInt(this.workers);
- this.nodesNo = Integer.parseInt(this.nodes);
- this.referenceInjection = (Integer.parseInt(this.injection) != 0);
- log.info("Starting WorkpoolManager Component with #" + workersNo
- + " workers and #" + nodes + " nodes");
- nodesNo = workerManagerTable.values().size();
- // Sets info in the bean.
- bean.setWorkers(this.workersNo);
- bean.setNodeNumbers(nodesNo);
- Vector<CallableReferenceImpl<WorkerService>> workerRefs = new Vector<CallableReferenceImpl<WorkerService>>();
- int exactTimes = workersNo / nodesNo;
- for (int i = 0; i < exactTimes; ++i) {
- for (WorkerManager manager : workerManagerTable.values()) {
- manager.start();
- if (manager != null) {
- System.err.println("Actual load = "
- + manager.getNodeLoad() + " for node ");
- addNewComponent(manager, workerRefs);
- }
- }
- }
-
- int module = (workersNo % nodesNo);
- int n = 0;
- if (module > 0) {
- Vector<String> v = new Vector(workerManagerTable.keySet());
- Collections.sort(v);
- // Iterator<WorkerManager> iter =
- // workerManagerTable.values().iterator();
- // Display (sorted) hashtable.
- for (Enumeration<String> e = v.elements(); (e.hasMoreElements() && n < module); ++n) {
- String key = e.nextElement();
- WorkerManager m = workerManagerTable.get(key);
- System.err.println("Module Actual load = " + m.getNodeLoad()
- + " for node ");
- addNewComponent(m, workerRefs);
- }
- }
- startNewComponents(workerRefs);
- bean.addListener(this);
- TimerTask task = new WorkpoolManagerImpl.RuleEngineTrigger();
- timer.scheduleAtFixedRate(task, 3000, cycleTime);
- }
-
- private void checkLoadInNodes() {
- System.out.println("CheckLoadInNodes");
- int number = 1;
- double loadAverage = 0;
- for (WorkerManager manager : workerManagerTable.values()) {
- loadAverage += manager.getNodeLoad();
- number++;
- }
- bean.setLoadAverage(loadAverage / number);
- }
-
- private void computeUsageFactor() {
- bean.setUsageFactor();
- }
-
- private void checkEstimedQueueSize() {
- WorkpoolService wp = reference.getService();
-
- if (wp != null) {
- int size = wp.estimatedQueueSize();
- log.info("Estimed Queue Size =" + size);
- bean.setEstimedQueueSize(size);
- }
- }
-
- private WorkerManager findMinLoad() {
- double load = 0;
- // workerManagerTable.values().iterator().next().getNodeLoad();
- WorkerManager toFind = null;
- for (WorkerManager manager : workerManagerTable.values()) {
- if (load == 0) {
- load = manager.getNodeLoad();
- toFind = manager;
- } else if (manager.getNodeLoad() < load) {
- load = manager.getNodeLoad();
- toFind = manager;
- }
- }
- return toFind;
- }
-
- private void checkServiceTime() {
- WorkpoolService wp = reference.getService();
-
- if (wp != null) {
- double time = wp.getServiceTime();
- log.info("Average System Service Time =" + time);
- bean.setAverageServiceTime(time);
- }
- }
-
- private void checkArrivalTime() {
- WorkpoolService wp = reference.getService();
-
- if (wp != null) {
- double time = wp.getArrivalTime();
- log.info("Average Arrival Service Time =" + time);
- bean.setAverageArrivalTime(time);
- }
- }
-
- private void checkActiveWorkers() {
- bean.setWorkers(this.activeWorkers());
- }
-
- private void getProcessedItem() {
- WorkpoolService wp = reference.getService();
- if (wp != null) {
- long computed = wp.getJobComputed();
- log.info("The system has already computed " + computed + " jobs");
- bean.setJobComputed(computed);
- }
- }
-
- private boolean removeComponent(WorkerManager manager, int k) {
- manager.removeWorkers(k);
- activeWorkers.decrementAndGet();
- return true;
- }
-
- @SuppressWarnings("unchecked")
- private boolean addNewComponent(WorkerManager manager,
- Vector<CallableReferenceImpl<WorkerService>> workerRefs) {
- CallableReferenceImpl<WorkerService> workerReference = (CallableReferenceImpl<WorkerService>) manager
- .addWorker();
-
- if (workerReference != null) {
- /* if i'll decide to use dynamically generated references */
- if (referenceInjection) {
- workerReference.getService();
- String uri = workerReference.getEndpointReference().getURI();
- int nameIndex = uri.indexOf("/");
- String componentName = uri.substring(0, nameIndex);
- if (componentName.startsWith("/"))
- componentName = uri.substring(1, uri.length());
- if (componentName.endsWith("/"))
- componentName = uri.substring(0, uri.length() - 1);
- // String componentName = uri.substring(0, nameIndex-1);
-
- log.info("Adding wire from WorkpoolComponentService to "
- + componentName);
- String referenceName = "ref" + componentName;
-
- /*
- * I'm updating the WorkpoolServiceComponent with a new
- * reference to a just created component I assume that the
- * WorkpoolManagerService and the WorkpoolServiceComponent stay
- * in the same JVM It's like in the scdl there were: <reference
- * name=referenceName target="componentName"/> With this then
- * I've a wire WorkpoolService---> a new Worker
- */
- try {
- node.addComponentReferenceWire(referenceName, "nodeA",
- "Workpool.composite", "workpool.WorkerServiceImpl",
- WorkerService.class, "WorkpoolServiceComponent",
- componentName);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- log.info("Sending reference name " + referenceName
- + " to WorkpoolService");
- // TODO: this was part of dynamic wiring, but it doesn't work.
- // reference.getService().PostWorkerName(referenceName);
-
- } else {
- // log.info("Sending callable reference to WorkpoolService
- // placed at -->"+reference);
- // reference.getService().PostWorkerReference(workerReference);
- workerRefs.add(workerReference);
- }
- activeWorkers.incrementAndGet();
- return true;
- }
- return false;
- }
-
- public int activeWorkers() {
-
- return activeWorkers.get();
- }
-
- private void doRun(WorkpoolBean bean) {
-
- long startTime = System.currentTimeMillis();
- updateRuleLock.lock();
- if (wm == null)
- wm = ruleBase.newStatefulSession();
- if (this.handle == null)
- handle = wm.insert(bean);
- else {
- wm.update(handle, bean);
- }
- wm.fireAllRules();
- updateRuleLock.unlock();
-
- System.out.println("Engine rule overhead = "
- + (System.currentTimeMillis() - startTime));
- }
-
- private RuleBase readRule(String rule) {
-
- PackageBuilder packBuilder = new PackageBuilder();
- try {
- packBuilder.addPackageFromDrl(new StringReader(rule));
- } catch (DroolsParserException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- Package pkg = packBuilder.getPackage();
- RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- try {
- ruleBase.addPackage(pkg);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return ruleBase;
- }
-
- public void acceptRules(String rules) {
- this.rules = rules;
- if (ruleBase == null) {
- RuleBase base = readRule(rules);
- if (base != null) {
- ruleBase = base;
- }
- } else {
- updateRuleLock.lock();
- // i have already a rule: updating
- ruleBase = readRule(rules);
- wm = ruleBase.newStatefulSession();
- handle = null;
- updateRuleLock.unlock();
- }
-
- System.out.println("Accepted rules = " + rules);
- }
-
- public String getRules() {
- return rules;
- }
-
- private WorkerManager findMaxLoadNode() {
- double load = 0.0;
- WorkerManager toFind = null;
- for (WorkerManager manager : workerManagerTable.values()) {
- if (manager.getNodeLoad() > load) {
- load = manager.getNodeLoad();
- toFind = manager;
- }
- }
- return toFind;
-
- }
-
- public void setWorkpoolReference(
- ServiceReference<WorkpoolService> serviceReference) {
- reference = serviceReference;
- }
-
- public void setNode(SCANode arg0) {
- node = (SCANodeImpl) arg0;
- }
-
- public void handleEvent(WorkpoolEvent ev) {
- if (ev == null)
- return;
-
- String nodeName = ev.getNodeName();
-
- switch (ev.getType()) {
- case WorkpoolEvent.SINGLE_ADD_WORKER: {
- if (nodeName != null) {
- Vector<CallableReferenceImpl<WorkerService>> workerRefs = new Vector<CallableReferenceImpl<WorkerService>>();
-
- // in this case I have a nodeName
- if (!nodeName.equals("")
- && (workerManagerTable.containsKey(nodeName))) {
- WorkerManager manager = workerManagerTable.get(nodeName);
- addNewComponent(manager, workerRefs);
- startNewComponents(workerRefs);
- } else if (nodeName.equals("")) {
- WorkerManager manager = findMinLoad();
- addNewComponent(manager, workerRefs);
- startNewComponents(workerRefs);
- }
- }
- break;
- }
- case WorkpoolEvent.EVENT_MULTIPLE_ADD_WORKER: {
- Vector<CallableReferenceImpl<WorkerService>> workerRefs = new Vector<CallableReferenceImpl<WorkerService>>();
-
- if (nodeName.equals("")) {
-
- WorkerManager manager = findMinLoad();
- int k = ev.workers();
- for (int h = 0; h < k; ++h) {
- addNewComponent(manager, workerRefs);
- }
- } else {
- WorkerManager manager = workerManagerTable
- .get(ev.getNodeName());
- int k = ev.workers();
- for (int h = 0; h < k; ++h) {
- addNewComponent(manager, workerRefs);
- }
- }
- startNewComponents(workerRefs);
- break;
- }
- case WorkpoolEvent.SINGLE_REMOVE_WORKER: {
- if (nodeName != null) {
- // in this case I have a nodeName
- if (!nodeName.equals("")
- && (workerManagerTable.containsKey(nodeName))) {
- WorkerManager manager = workerManagerTable.get(nodeName);
- removeComponent(manager, 1);
- } else if (nodeName.equals("")) {
- WorkerManager manager = findMaxLoadNode();
- removeComponent(manager, 1);
- }
- }
- break;
- }
- case WorkpoolEvent.EVENT_MULTIPLE_REMOVE_WORKER: {
- if (nodeName.equals("")) {
- WorkerManager manager = findMaxLoadNode();
- removeComponent(manager, ev.workers());
-
- } else {
- WorkerManager manager = workerManagerTable.get(nodeName);
- removeComponent(manager, ev.workers());
- }
- break;
- }
- }
-
- }
-
- @Destroy
- public void onExit() {
- // do cleanup
- this.timer.cancel();
- this.timer.purge();
- }
-
- public void stopAutonomicCycle() {
- this.timer.cancel();
- this.timer.purge();
- this.timer = null;
- }
-
- public void startAutonomicCycle() {
- if (this.timer == null) {
- this.timer = new Timer();
- TimerTask task = new WorkpoolManagerImpl.RuleEngineTrigger();
- timer.schedule(task, 3000, cycleTime);
- }
- }
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolService.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolService.java
deleted file mode 100644
index d84ae549d8..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolService.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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 workpool;
-
-import org.apache.tuscany.sca.core.context.CallableReferenceImpl;
-import org.apache.tuscany.sca.databinding.annotation.DataBinding;
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.osoa.sca.annotations.OneWay;
-import org.osoa.sca.annotations.Remotable;
-import org.osoa.sca.ServiceReference;
-
-@DataBinding("org.apache.tuscany.sca.databinding.job.Job")
-@Remotable
-public interface WorkpoolService {
-
- /* this the functional part */
- void submit(Job i);
-
- /* the time between two subsequent worker invocations */
- double getServiceTime();
-
- /* the number of ResultJob received */
- long getJobComputed();
-
- /* the time elapsed between the stream has initiated and now */
- long getElapsedTime();
-
- /* the size of the internal queue : it's not accurate */
- int estimatedQueueSize();
-
- /* the average time between two consuecutive submit */
- double getArrivalTime();
-
- void start();
-
- void stop();
-
- /*
- * this is the part needed by management. May be in future i'll refactor it
- * order to hide this part.
- */
- @OneWay
- void handleResult(Job j, boolean reuse, String string,
- CallableReferenceImpl<WorkerService> worker, boolean newJob);
-
- void addTrigger(CallableReferenceImpl<Trigger> reference);
-
- void removeTrigger();
-
- void registerManager(
- CallableReferenceImpl<WorkpoolManager> createSelfReference);
-
- /*
- * This could placed in another interface definition - think about it These
- * methods evict, and evictAll are needed when a worker finish to exist and
- * it needs to be evicted by the WorkpoolManager. In the system I have two
- * caches: 1) a domain cache, which holds the components URI 2) a
- * workerReference cache (implemented by a ConcurrentHashMap), which holds a
- * proxy to each worker. Every proxy gets built from the worker callable
- * reference. I'm thinking for placing the workerReferenceCache in a local
- * interface. Assuming that WorkpoolService and WorkpoolManager are in the
- * same JVM.
- */
- void evict(String workerURI);
-
- void evictAll();
-
- /*
- * these two are no longer needed. I leave it because if i'll have time to
- * do dynamic wiring the first one is needed. void PostWorkerName(String
- * referenceName);
- */
- void PostWorkerReference(CallableReferenceImpl<WorkerService> worker);
-
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolServiceImpl.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolServiceImpl.java
deleted file mode 100644
index 52b88af42c..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/java/workpool/WorkpoolServiceImpl.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- * 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 workpool;
-
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Logger;
-import org.apache.tuscany.sca.core.context.CallableReferenceImpl;
-import org.apache.tuscany.sca.databinding.annotation.DataBinding;
-import org.osoa.sca.ComponentContext;
-import org.osoa.sca.annotations.Context;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-import org.apache.tuscany.sca.databinding.job.Job;
-import org.apache.tuscany.sca.databinding.job.JobDataMap;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-
-/**
- * An implementation of the Workpool service.
- */
-@Service(WorkpoolService.class)
-@Scope("COMPOSITE")
-@DataBinding("org.apache.tuscany.sca.databinding.job.Job")
-public class WorkpoolServiceImpl implements WorkpoolService,
- WorkerServiceCallback {
-
- /* incoming job queue */
- private LinkedBlockingQueue<Job> queue = new LinkedBlockingQueue<Job>(5000);
- private CallableReferenceImpl<Trigger> trigger = null;
- private Trigger forwardResult = null;
- /* counter for job's number fetched from the queue and sent to the Worker */
- private AtomicInteger jobSent = new AtomicInteger(0);
- /* time for initHandleResult */
- private AtomicLong initHandleResult = new AtomicLong(0);
- /* time for endHandleResult */
- private AtomicLong endHandleResult = new AtomicLong(0);
- /*
- * number of job computed, this will be exposed in order to be used to
- * firing rules
- */
- private long jobComputed = 0;
- /* same as above */
- private AtomicLong elapsedTime = new AtomicLong(0);
- /* this is for comuputing averageServiceTime */
- private long times = 1;
- /* this is for computing averageArrivalTime */
- private long timesArrival = 1;
- private ReentrantLock arrivalLock = new ReentrantLock();
- private long arrivalPrevious = -1;
- // private AtomicBoolean processingStopped = new AtomicBoolean(false);
- private boolean processingStopped = false;
- // private LinkedBlockingQueue<Trigger> triggers = new
- // LinkedBlockingQueue<Trigger>();
- @Context
- protected ComponentContext workpoolContext;
- private CallableReferenceImpl<WorkpoolManager> manager;
- private long previousSubmitTime = -1;
- private boolean firstTime = true;
- private boolean first = true;
- private long start = 0;
- private long end = 0;
- private double averageServiceTime = 0;
- private double averageArrivalTime = 0;
- private int workersNo = 0;
- private final Job nullJob = new NullJob();
- /* This is useful for counting the start and end */
- private Logger log = Logger.getLogger(WorkpoolServiceImpl.class.getName());
- private ReentrantLock handleResultLock = new ReentrantLock();
- private ReentrantLock postWorkerReferenceLock = new ReentrantLock();
- private ConcurrentHashMap<String, WorkerService> cacheReference = new ConcurrentHashMap<String, WorkerService>();
- private CallableReferenceImpl<WorkpoolService> myReference;
- private String previuosURI = "";
- private long time = 0;
-
- private void computeAverageTime() {
- long actualServiceTime = 0;
- // if the processing is finished
- if (processingStopped)
- return;
-
- if (firstTime == true) {
- this.previousSubmitTime = System.currentTimeMillis();
- this.averageServiceTime = 0;
- firstTime = false;
- } else {
- actualServiceTime = System.currentTimeMillis()
- - this.previousSubmitTime;
- this.previousSubmitTime = System.currentTimeMillis();
- averageServiceTime = ((averageServiceTime * times) + actualServiceTime)
- / (times + 1);
- ++times;
- }
- }
-
- public void submit(Job j) {
- try {
- // log.info("Submit job in queue -->"+ j.getType());
- // processingStopped.set(false);
- try {
- arrivalLock.lock();
- if (this.arrivalPrevious == -1) {
- arrivalPrevious = System.currentTimeMillis();
- averageArrivalTime = 0;
- }
- double actualArrivalTime = System.currentTimeMillis()
- - arrivalPrevious;
- averageArrivalTime = ((averageArrivalTime * timesArrival) + actualArrivalTime)
- / (timesArrival + 1);
- arrivalPrevious = System.currentTimeMillis();
- ++timesArrival;
- } finally {
- arrivalLock.unlock();
- }
- queue.put(j);
- } catch (Exception e) {
- log.info("Exception in queue");
- queue.clear();
- e.printStackTrace();
- }
- }
-
- public double getArrivalTime() {
- return this.averageArrivalTime;
- }
-
- public double getServiceTime() {
- return this.averageServiceTime;
- }
-
- public void receiveResult(Job resultType, boolean reuse, String workerURI) {
-
- if (reuse) {
- queue.add(resultType);
- return;
- }
-
- computeAverageTime();
- Job job = null;
- try {
- job = queue.take();
- } catch (InterruptedException e) {
- // TODO Better exception handling --> see Exception antipattern doc
- e.printStackTrace();
- return;
- }
-
- if ((job != null) && (job.eos() == false)) {
- int nameIndex = workerURI.indexOf("/");
- String workerName = workerURI.substring(0, nameIndex - 1);
- log.info("Sending job to worker --> " + workerName);
- WorkerService worker = workpoolContext.getService(
- WorkerService.class, workerName);
- worker.compute(job);
- }
-
- JobDataMap map = ((ResultJob) resultType).getDataMap();
- if (map != null) {
- ++jobComputed;
- Object obj = map.getJobDataObject("result");
- System.out.println("Result = " + ((Double) obj).doubleValue());
- }
-
- }
-
- public void start() {
- log.info("WorkpoolServiceComponent started...");
- myReference = (CallableReferenceImpl) workpoolContext
- .createSelfReference(WorkpoolService.class, "WorkpoolService");
- myReference.getService();
- }
-
- /*
- *
- * This method is called by WorkpoolManagerImpl, when it creates a new
- * worker component in order to dispatch worker to the WorkpoolServiceImpl
- * @param CallableReferenceImpl reference - a dynamically created reference
- * from the Worker
- */
- public void PostWorkerReference(
- CallableReferenceImpl<WorkerService> reference) {
-
- try {
- long initPostWorkerReference;
- long endPostWorkerReference;
- this.postWorkerReferenceLock.lock();
-
- initPostWorkerReference = System.currentTimeMillis();
- WorkerService worker;
- worker = reference.getService();
- worker.start();
-
- ++workersNo;
- if (myReference != null) {
-
- // Job poison = new ResultJob();
- this.postWorkerReferenceLock.unlock();
- log.info("Sending null job to worker");
- worker.computeFirstTime(nullJob, myReference);
- // queue.put(poison);
- endPostWorkerReference = System.currentTimeMillis();
- System.out.println("Time PostWorker ="
- + (endPostWorkerReference - initPostWorkerReference));
- } else {
- log.info("myReference is null");
-
- }
- } catch (Exception e) {
- postWorkerReferenceLock.unlock();
- } finally {
- }
-
- }
-
- /*
- * FIXME This method currently is not used because i've not yet ready
- * dynamic wire injection
- */
-
- public void PostWorkerName(String referenceName) {
- /* TODO Do something similar to PostWorkerReference */
- }
-
- private void printComputingTime(Job j) {
-
- if (first == true) {
- first = false;
- start = System.currentTimeMillis();
- end = System.currentTimeMillis();
- } else {
- end = System.currentTimeMillis();
- System.out.println("Elapsed Time = " + (end - start));
- elapsedTime.set(end - start);
- }
- /*
- * i could use reflection or instance of (but it's a penalty kick) , or
- * an object as result, but i'd prefer a job so i've defined a
- * RESULT_JOB There're in the system three kind of jobs: RESULT_JOB,
- * NULL_JOB, DEFAULT_JOB
- */
- if ((j != null) && (j.getType() == Job.RESULT_JOB)) {
- jobComputed++;
- ResultJob result = (ResultJob) j;
- JobDataMap map = result.getDataMap();
- if (map != null) {
- Double doubleValue = (Double) map.getJobDataObject("result");
- System.out
- .println("ResultValue = " + doubleValue.doubleValue());
- }
-
- }
-
- }
-
- public void handleResult(Job resultType, boolean reuse, String workerURI,
- CallableReferenceImpl<WorkerService> worker, boolean newWorker) {
- initHandleResult.set(System.nanoTime());
- if (reuse) {
- log.info("Reusing a job..");
- queue.add(resultType);
- return;
- }
- // init job variable
- Job job;
- if (newWorker)
- System.out.println("newWorkerActivation= " + System.nanoTime());
- printComputingTime(resultType);
-
- try {
- job = queue.take();
- } catch (Exception e) {
- log.info("Exception during fetching the queue");
- e.printStackTrace();
- return;
- }
-
- try {
- // it needs to be locked because multiple threads could invoke this.
- handleResultLock.lock();
- if (previuosURI.equals("")) {
- time = System.currentTimeMillis();
- this.previuosURI = workerURI;
- } else {
- if (previuosURI.equals(workerURI))
- System.out.println("Complete ComputeTime for an item ="
- + (time - System.currentTimeMillis()));
- }
- if (job.eos()) {
- long endTime = System.currentTimeMillis();
- /* checking for EOS */
- if (processingStopped == false) {
- processingStopped = true;
- System.out.println("GOT EOS in time=" + (endTime - start));
- log.info("Stop autonomic cycle..");
- /*
- * I'm doing this because i want that in the termination i
- * would have more jobs with eos == true than workers. So
- * i'm sure that every worker removes itself from its
- * manager. I do it only one time. This is necessary because
- * i have a variable number of workers. The number of
- * workers in the system might change every time the rule
- * engine cycle gets executed.
- */
- ResultJob poison = new ResultJob();
- for (int i = 0; i < workersNo; ++i) {
- try {
-
- queue.put(poison);
-
- } catch (Exception e) {
- log.info("Cannot duplicate poison tokens");
- break;
- }
-
- }
- manager.getService().stopAutonomicCycle();
- }
- }
- computeAverageTime();
- System.out.println("AverageTime =" + averageServiceTime);
- if (job != null) {
-
- WorkerService workerService;
- /*
- * the workpool has a high reuse, i always call the same
- * component set or un superset or subset, so i cache it. When
- * the WorkpoolManager will remove an item, it removes still
- * this cache entry
- */
- if (!cacheReference.containsKey(workerURI)) {
- workerService = worker.getService();
- handleResultLock.unlock();
- cacheReference.put(workerURI, workerService);
- } else {
- handleResultLock.unlock();
- workerService = cacheReference.get(workerURI);
- }
- // it's still a penalty kick locking compute because it's going
- // to be scheduled whereas it's async.
- workerService.compute(job);
- log.info("Sent job #" + jobSent.incrementAndGet()
- + " Queue size " + queue.size());
- endHandleResult.set(System.nanoTime());
- System.out
- .println("begin:handleResult ==> end:handleResult:compute = "
- + (endHandleResult.addAndGet(-(initHandleResult
- .get())) / 1000000));
- }
- } catch (Exception e) {
- handleResultLock.unlock();
- }
- }
-
- public void evictAll() {
- cacheReference.clear();
- }
-
- public void evict(String workerURI) {
- if (cacheReference.containsKey(workerURI)) {
- cacheReference.remove(workerURI);
- }
-
- }
-
- public int estimatedQueueSize() {
- return queue.size();
- }
-
- public long getElapsedTime() {
- return elapsedTime.get();
- }
-
- public long getJobComputed() {
- return jobComputed;
- }
-
- public void registerManager(
- CallableReferenceImpl<WorkpoolManager> createSelfReference) {
- manager = createSelfReference;
-
- }
-
- public void stop() {
- // TODO Auto-generated method stub
-
- }
-
- public void addTrigger(CallableReferenceImpl<Trigger> reference) {
- this.trigger = reference;
- this.forwardResult = reference.getService();
-
- }
-
- public void removeTrigger() {
- this.trigger = null;
- this.forwardResult = null;
- }
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/META-INF/sca-contribution.xml b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/META-INF/sca-contribution.xml
deleted file mode 100644
index b3e2d16c05..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/META-INF/sca-contribution.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
--->
-<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample">
- <deployable composite="sample:Workpool"/>
-</contribution>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/Workpool.composite b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/Workpool.composite
deleted file mode 100644
index 9a00a8e839..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeA/Workpool.composite
+++ /dev/null
@@ -1,47 +0,0 @@
-<?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://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample"
- name="Workpool">
-
- <component name="WorkpoolServiceComponent">
- <implementation.java class="workpool.WorkpoolServiceImpl"/>
- </component>
- <component name="WorkpoolManagerComponent">
- <implementation.java class="workpool.WorkpoolManagerImpl"/>
- <property name="workers">4</property>
- <property name="nodes">4</property>
- <property name="injection">0</property>
- <reference name="managerNodeB" target="WorkerManagerNodeBComponent" />
-
- <reference name="managerNodeC" target="WorkerManagerNodeCComponent" />
-
- <reference name="managerNodeD" target="WorkerManagerNodeDComponent" />
-
- <reference name="managerNodeE" target="WorkerManagerNodeEComponent" />
-
-
- <service name="WorkpoolManagerInitService">
- <interface.java interface="org.apache.tuscany.sca.node.NodeManagerInitService"/>
- <binding.sca/>
- </service>
- </component>
- </composite>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/META-INF/sca-contribution.xml b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/META-INF/sca-contribution.xml
deleted file mode 100644
index b3e2d16c05..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/META-INF/sca-contribution.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
--->
-<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample">
- <deployable composite="sample:Workpool"/>
-</contribution>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/Workpool.composite b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/Workpool.composite
deleted file mode 100644
index a71dc9e08a..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeB/Workpool.composite
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample"
- name="Workpool">
- <component name="WorkerManagerNodeBComponent">
- <implementation.java class="workpool.WorkerManagerImpl"/>
- <property name="nodeName">nodeB</property>
- <property name="compositeName">Workpool.composite</property>
- <property name="workerClass">workpool.MyWorker</property>
- <service name="WorkerManagerInitService">
- <interface.java interface="org.apache.tuscany.sca.node.NodeManagerInitService"/>
- <binding.sca/>
- </service>
- <service name="WorkerManager">
- <binding.sca uri="http://u13:13001/WorkerManagerNodeBComponent"/>
- </service>
- </component>
-
-</composite>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/META-INF/sca-contribution.xml b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/META-INF/sca-contribution.xml
deleted file mode 100644
index b3e2d16c05..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/META-INF/sca-contribution.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
--->
-<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample">
- <deployable composite="sample:Workpool"/>
-</contribution>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/Workpool.composite b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/Workpool.composite
deleted file mode 100644
index 771db5370b..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeC/Workpool.composite
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample"
- name="Workpool">
- <component name="WorkerManagerNodeCComponent">
- <implementation.java class="workpool.WorkerManagerImpl"/>
- <property name="nodeName">nodeC</property>
- <property name="compositeName">Workpool.composite</property>
- <property name="workerClass">workpool.MyWorker</property>
- <service name="WorkerManagerInitService">
- <interface.java interface="org.apache.tuscany.sca.node.NodeManagerInitService"/>
- <binding.sca/>
- </service>
- <service name="WorkerManager">
- <binding.sca uri="http://u14:13002/WorkerManagerNodeCComponent"/>
- </service>
- </component>
-
-</composite>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/META-INF/sca-contribution.xml b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/META-INF/sca-contribution.xml
deleted file mode 100644
index b3e2d16c05..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/META-INF/sca-contribution.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
--->
-<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample">
- <deployable composite="sample:Workpool"/>
-</contribution>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/Workpool.composite b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/Workpool.composite
deleted file mode 100644
index 55fd48934f..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeD/Workpool.composite
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample"
- name="Workpool">
- <component name="WorkerManagerNodeDComponent">
- <implementation.java class="workpool.WorkerManagerImpl"/>
- <property name="nodeName">nodeD</property>
- <property name="compositeName">Workpool.composite</property>
- <property name="workerClass">workpool.MyWorker</property>
- <service name="WorkerManagerInitService">
- <interface.java interface="org.apache.tuscany.sca.node.NodeManagerInitService"/>
- <binding.sca/>
- </service>
- <service name="WorkerManager">
- <binding.sca uri="http://u15:13003/WorkerManagerNodeDComponent"/>
- </service>
- </component>
-
-</composite>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/META-INF/sca-contribution.xml b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/META-INF/sca-contribution.xml
deleted file mode 100644
index b3e2d16c05..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/META-INF/sca-contribution.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
--->
-<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample">
- <deployable composite="sample:Workpool"/>
-</contribution>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/Workpool.composite b/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/Workpool.composite
deleted file mode 100644
index 1dc9ccfcea..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/main/resources/nodeE/Workpool.composite
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample"
- xmlns:sample="http://sample"
- name="Workpool">
- <component name="WorkerManagerNodeEComponent">
- <implementation.java class="workpool.WorkerManagerImpl"/>
- <property name="nodeName">nodeE</property>
- <property name="compositeName">Workpool.composite</property>
- <property name="workerClass">workpool.MyWorker</property>
- <service name="WorkerManagerInitService">
- <interface.java interface="org.apache.tuscany.sca.node.NodeManagerInitService"/>
- <binding.sca/>
- </service>
- <service name="WorkerManager">
- <binding.sca uri="http://u16:13004/WorkerManagerNodeEComponent"/>
- </service>
- </component>
-
-</composite>
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/src/test/java/workpool/AComponent.java b/java/sca-1.x-contrib/demos/workpool-distributed/src/test/java/workpool/AComponent.java
deleted file mode 100644
index 5c20537fab..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/src/test/java/workpool/AComponent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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 workpool;
-
-public interface AComponent {
- public static final int RETURN_VALUE = 1;
-
- public void greet();
-}
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules.drl b/java/sca-1.x-contrib/demos/workpool-distributed/workerRules.drl
deleted file mode 100644
index e7ebcad4c0..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules.drl
+++ /dev/null
@@ -1,9 +0,0 @@
-package workpool
-import workpool.*;
-rule "WorkerAdder"
- when
- $workerBean: WorkpoolBean(singleAction == false && (jobComputed > 500))
- then
- $workerBean.addWorkerToNode("nodeB");
- $workerBean.setSingleAction();
-end
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules1.drl b/java/sca-1.x-contrib/demos/workpool-distributed/workerRules1.drl
deleted file mode 100644
index 6fa0b85ba2..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules1.drl
+++ /dev/null
@@ -1,9 +0,0 @@
-package workpool
-import workpool.*;
-rule "WorkerAdder"
- when
- $workerBean: WorkpoolBean(averageServiceTime > 250)
- then
- $workerBean.addWorkerToNode("nodeB");
- $workerBean.setSingleAction();
-end
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules2.drl b/java/sca-1.x-contrib/demos/workpool-distributed/workerRules2.drl
deleted file mode 100644
index 9d9551c3ea..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules2.drl
+++ /dev/null
@@ -1,8 +0,0 @@
-package workpool
-import workpool.*;
-rule "WorkerAverageService"
- when
- $workerBean: WorkpoolBean(jobComputed > 250)
- then
- $workerBean.addWorkerToNode("nodeB");
-end
diff --git a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules3.drl b/java/sca-1.x-contrib/demos/workpool-distributed/workerRules3.drl
deleted file mode 100644
index a67af910a4..0000000000
--- a/java/sca-1.x-contrib/demos/workpool-distributed/workerRules3.drl
+++ /dev/null
@@ -1,14 +0,0 @@
-package workpool
-import workpool.*;
-rule "AdaptUsageFactor"
- when
- $workerBean: WorkpoolBean(usageFactor > 0.8)
- then
- $workerBean.addWorkerToNode("");
-end
-rule "AdaptQueueFull"
- when
- $workerBean: WorkpoolBean((estimedQueueSize > 1900) && jobsComputed > 100)
- then
- $workerBean.addWorkerToNode("nodeB")
-end \ No newline at end of file