tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sl...@apache.org
Subject svn commit: r1212416 [1/2] - in /tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic: ./ calculator-bundle/ calculator-bundle/META-INF/ calculator-bundle/OSGI-INF/ calculator-bundle/OSGI-INF/blueprint/ calculator-bundle/OSGI-INF/r...
Date Fri, 09 Dec 2011 13:43:21 GMT
Author: slaws
Date: Fri Dec  9 13:43:18 2011
New Revision: 1212416

URL: http://svn.apache.org/viewvc?rev=1212416&view=rev
Log:
Start adding the dynamic distributed OSGi sample back in from contrib. Not in build yet. 

Added:
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/LICENSE
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/META-INF/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/NOTICE
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/blueprint/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/blueprint/calculator-module.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/calculator-component.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/remote-service/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/remote-service/calculator-service-descriptions.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/sca-config/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/sca-config/calculator-config.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/README
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/dosgi-calculator.png   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/pom.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/CalculatorService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorActivator.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/AddService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/DivideService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/MultiplyService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/SubtractService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRemote.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/resources/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/java/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/java/calculator/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/java/calculator/dosgi/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/java/calculator/dosgi/test/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/java/calculator/dosgi/test/CalculatorNode.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/java/calculator/dosgi/test/CalculatorOSGiNodeTestCase.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/java/calculator/dosgi/test/OSGiTestUtils.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/resources/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/LICENSE
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/META-INF/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/NOTICE
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/add-component.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/blueprint/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/blueprint/operations-module.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/divide-component.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/multiply-component.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/sca-config/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/sca-config/operations-config.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/OSGI-INF/subtract-component.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/README
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/pom.xml
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/AddService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/DivideService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/MultiplyService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/SubtractService.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/impl/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/impl/AddServiceImpl.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/impl/DivideServiceImpl.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/impl/MultiplyServiceImpl.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/impl/OperationsActivator.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/java/calculator/dosgi/operations/impl/SubtractServiceImpl.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/main/resources/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/calculator/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/calculator/dosgi/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/calculator/dosgi/operations/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/calculator/dosgi/operations/test/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/calculator/dosgi/operations/test/OSGiTestUtils.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/calculator/dosgi/operations/test/OperationsNode.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/java/calculator/dosgi/operations/test/OperationsOSGiNodeTestCase.java
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/operations-bundle/src/test/resources/   (with props)
    tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/pom.xml

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Dec  9 13:43:18 2011
@@ -0,0 +1 @@
+target

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Dec  9 13:43:18 2011
@@ -0,0 +1 @@
+target

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/LICENSE
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/LICENSE?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/LICENSE (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/LICENSE Fri Dec  9 13:43:18 2011
@@ -0,0 +1,205 @@
+
+                                 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.
+
+
+

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/META-INF/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/META-INF/MANIFEST.MF?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/META-INF/MANIFEST.MF (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/META-INF/MANIFEST.MF Fri Dec  9 13:43:18 2011
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Export-Package: calculator.dosgi;version="1.0.1",
+ calculator.dosgi.operations;version="1.0.1"
+Bundle-Version: 1.0.0
+Bundle-Name: calculator.dosgi.dynamic
+Bundle-Activator: calculator.dosgi.impl.CalculatorActivator
+Bundle-ManifestVersion: 2
+Import-Package: org.oasisopen.sca.annotation;version="2.0.0",
+ org.osgi.framework,
+ org.osgi.service.component;resolution:=optional,
+ org.osgi.service.packageadmin,
+ org.osgi.util.tracker
+Bundle-SymbolicName: calculator.dosgi.dynamic
+Bundle-Vendor: The Apache Software Foundation
+Bundle-ActivationPolicy: lazy
+Eclipse-LazyStart: true
+Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
+Bundle-DocURL: http://www.apache.org/
+Service-Component-Disabled: OSGI-INF/calculator-component.xml
+Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
+SCA-Configuration: OSGI-INF/sca-config/calculator-config.xml
+Remote-Service: OSGI-INF/remote-service/*.xml
+

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/NOTICE
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/NOTICE?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/NOTICE (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/NOTICE Fri Dec  9 13:43:18 2011
@@ -0,0 +1,6 @@
+${pom.name}
+Copyright (c) 2005 - 2011 The Apache Software Foundation
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
+

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/blueprint/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/blueprint/calculator-module.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/blueprint/calculator-module.xml?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/blueprint/calculator-module.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/blueprint/calculator-module.xml Fri Dec  9 13:43:18 2011
@@ -0,0 +1,43 @@
+<?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.
+-->
+<!-- A sample module-context.xml for OSGI RFC 124 (BluePrint Service) -->
+<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+    <component id="CalculatorComponent" class="calculator.dosgi.impl.CalculatorServiceImpl">
+        <property name="addService" ref="AddService" />
+        <property name="subtractService" ref="SubtractService" />
+        <property name="multiplyService" ref="MultiplyService" />
+        <property name="divideService" ref="DivideService" />
+    </component>
+
+    <!-- We can derive the SCA services for the implementation.osgi -->
+    <service id="CalculatorService" ref="CalculatorComponent" interface="calculator.dosgi.CalculatorService">
+    </service>
+
+    <!-- We can derive the SCA references for the implementation.osgi -->
+    <reference id="AddService" interface="calculator.dosgi.operations.AddService">
+    </reference>
+    <reference id="SubtractService" interface="calculator.dosgi.operations.SubtractService">
+    </reference>
+    <reference id="MultiplyService" interface="calculator.dosgi.operations.MultiplyService">
+    </reference>
+    <reference id="DivideService" interface="calculator.dosgi.operations.DivideService">
+    </reference>
+
+</components>
\ No newline at end of file

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/calculator-component.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/calculator-component.xml?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/calculator-component.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/calculator-component.xml Fri Dec  9 13:43:18 2011
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<scr:component name="CalculatorComponent" 
+               xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
+    <implementation class="calculator.dosgi.impl.CalculatorServiceDSImpl" />
+    <service>
+        <provide interface="calculator.dosgi.CalculatorService" />
+    </service>
+
+    <reference name="addService" interface="calculator.dosgi.operations.AddService" bind="setAddService" unbind="unsetAddService"
+        policy="dynamic" />
+    <reference name="subtractService" interface="calculator.dosgi.operations.SubtractService" bind="setSubtractService"
+        unbind="unsetSubtractService" policy="dynamic" />
+    <reference name="multiplyService" interface="calculator.dosgi.operations.MultiplyService" bind="setMultiplyService"
+        unbind="unsetMultiplyService" policy="dynamic" />
+    <reference name="divideService" interface="calculator.dosgi.operations.DivideService" bind="setDivideService"
+        unbind="unsetDivideService" policy="dynamic" />
+
+</scr:component>

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/remote-service/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/remote-service/calculator-service-descriptions.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/remote-service/calculator-service-descriptions.xml?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/remote-service/calculator-service-descriptions.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/remote-service/calculator-service-descriptions.xml Fri Dec  9 13:43:18 2011
@@ -0,0 +1,73 @@
+<?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.
+-->
+<!-- A consumer-side service description file for RFC 119 -->
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0" 
+    xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+    xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
+    <!-- Describe a remote OSGi service  -->
+    <endpoint-description>
+        <property name="objectClass" value="calculator.dosgi.operations.AddService" />
+        <property name="remote.configs.supported" value="org.osgi.sca"/>
+        <property name="service.imported.configs" value="org.osgi.sca"/>
+        <property name="sca.reference" value="addService"/>
+<!-- ##############################################################################################################-->
+<!-- Property org.osgi.sca.bindings can be removed when running with -Dorg.osgi.sca.domain.registry=tribes:default -->         
+        <property name="org.osgi.sca.bindings">
+            <list>
+                <value>{http://sample}Add</value>
+            </list>
+        </property>
+<!-- ##############################################################################################################-->
+    </endpoint-description>
+    <endpoint-description>
+        <property name="objectClass" value="calculator.dosgi.operations.SubtractService" />
+        <property name="service.imported.configs" value="org.osgi.sca"/>
+        <property name="remote.configs.supported" value="org.osgi.sca"/>
+        <property name="sca.reference" value="subtractService"/>
+<!-- ##############################################################################################################-->
+<!-- Property org.osgi.sca.bindings can be removed when running with -Dorg.osgi.sca.domain.registry=tribes:default -->         
+        <property name="org.osgi.sca.bindings">
+            <list>
+                <value>{http://sample}Subtract</value>
+            </list>
+        </property>
+<!-- ##############################################################################################################-->
+    </endpoint-description>
+    <endpoint-description>
+        <property name="objectClass" value="calculator.dosgi.operations.MultiplyService" />
+        <property name="service.imported.configs" value="org.osgi.sca"/>
+        <property name="remote.configs.supported" value="org.osgi.sca"/>
+        <property name="sca.reference" value="multiplyService"/>
+<!-- ##############################################################################################################-->
+<!-- Property org.osgi.sca.bindings can be removed when running with -Dorg.osgi.sca.domain.registry=tribes:default -->         
+        <property name="org.osgi.sca.bindings" value="{http://sample}Multiply"/>
+<!-- ##############################################################################################################-->
+    </endpoint-description>
+    <endpoint-description>
+        <property name="objectClass" value="calculator.dosgi.operations.DivideService" />
+        <property name="service.imported.configs" value="org.osgi.sca"/>
+        <property name="remote.configs.supported" value="org.osgi.sca"/>
+        <property name="sca.reference" value="divideService"/>
+<!-- ##############################################################################################################-->
+<!-- Property org.osgi.sca.bindings can be removed when running with -Dorg.osgi.sca.domain.registry=tribes:default -->         
+        <property name="org.osgi.sca.bindings" value="{http://sample}Divide"/>
+<!-- ##############################################################################################################-->
+    </endpoint-description>
+</endpoint-descriptions>
\ No newline at end of file

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/sca-config/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/sca-config/calculator-config.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/sca-config/calculator-config.xml?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/sca-config/calculator-config.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/OSGI-INF/sca-config/calculator-config.xml Fri Dec  9 13:43:18 2011
@@ -0,0 +1,32 @@
+<?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.
+-->
+<scact:sca-config targetNamespace="http://sample"
+    xmlns:scact="http://www.osgi.org/xmlns/scact/v1.0.0" 
+    xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+    xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
+    <sca:binding.ws name="Calculator" uri="http://localhost:8086/CalculatorService"/>
+    
+    <!-- bindings for the remote services -->
+    <tuscany:binding.rmi name="Add" uri="rmi://localhost:8085/AddService"/>
+    <tuscany:binding.rmi name="Divide" uri="rmi://localhost:8085/DivideService"/>
+    <tuscany:binding.rmi name="Subtract" uri="rmi://localhost:8085/SubtractService"/>
+    <tuscany:binding.rmi name="Multiply" uri="rmi://localhost:8085/MultiplyService"/>
+</scact:sca-config>
+    
\ No newline at end of file

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/README
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/README?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/README (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/README Fri Dec  9 13:43:18 2011
@@ -0,0 +1,6 @@
+Distributed OSGi Calculator Sample
+==================================
+This sample implements a distributed calculator using Distributed OSGi (RFC 119) over SCA.
+
+See http://tuscany.apache.org/documentation-2x/20-beta-samples-documentation.html
+for more information

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/dosgi-calculator.png
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/dosgi-calculator.png?rev=1212416&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/dosgi-calculator.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/pom.xml?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/pom.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/pom.xml Fri Dec  9 13:43:18 2011
@@ -0,0 +1,153 @@
+<?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.samples</groupId>
+        <artifactId>tuscany-samples</artifactId>
+        <version>2.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sample-calculator-bundle-dynamic</artifactId>
+    <name>Apache Tuscany SCA Sample OSGi Remote Services Dynamic Calculator</name>
+
+    <dependencies>
+       <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-feature-ejava</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <type>pom</type>
+        </dependency>
+       <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-feature-webservice</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <type>pom</type>
+            <scope>runtime</scope>
+        </dependency>
+       <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-launcher-equinox</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+
+       <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-impl-osgi</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.eclipse.osgi</groupId>
+            <artifactId>services</artifactId>
+            <version>3.2.0-v20090520-1800</version>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.8.1</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Equinox Declarative Services -->
+        <dependency>
+            <groupId>org.eclipse.equinox</groupId>
+            <artifactId>ds</artifactId>
+            <version>1.1.0-v20090601</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.eclipse.equinox</groupId>
+            <artifactId>util</artifactId>
+            <version>1.0.100-v20090520-1800</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <artifactId>maven-eclipse-plugin</artifactId>
+                <version>2.5.1</version>
+                <configuration>
+                    <buildcommands>
+                        <buildcommand>org.eclipse.pde.ManifestBuilder</buildcommand>
+                        <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
+                    </buildcommands>
+                    <projectnatures>
+                        <projectnature>org.eclipse.jdt.core.javanature</projectnature>
+                        <projectnature>org.eclipse.pde.PluginNature</projectnature>
+                    </projectnatures>
+                    <classpathContainers>
+                        <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER
+                        </classpathContainer>
+                    </classpathContainers>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifestFile>${basedir}/META-INF/MANIFEST.MF</manifestFile>
+                    </archive>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.tuscany.maven.plugins</groupId>
+                <artifactId>maven-osgi-junit-plugin</artifactId>
+                <version>1.0</version>
+                <dependencies>
+                   <dependency>
+                      <groupId>org.apache.tuscany.sca</groupId>
+                      <artifactId>tuscany-node-launcher-equinox</artifactId>
+                      <version>${project.version}</version>
+                   </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <id>osgi-test</id>
+                        <phase>test</phase>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <systemProperties>
+                                <property>
+                                    <name>osgi.configuration.area</name>
+                                    <value>${project.build.directory}/equinox</value>
+                                </property>
+                            </systemProperties>                        
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/CalculatorService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/CalculatorService.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/CalculatorService.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/CalculatorService.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package calculator.dosgi;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * The Calculator service interface.
+ */
+@Remotable
+public interface CalculatorService {
+
+    double add(double n1, double n2);
+
+    double subtract(double n1, double n2);
+
+    double multiply(double n1, double n2);
+
+    double divide(double n1, double n2);
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorActivator.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorActivator.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorActivator.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorActivator.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,78 @@
+/*
+ * 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 calculator.dosgi.impl;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.logging.Logger;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.packageadmin.PackageAdmin;
+
+import calculator.dosgi.CalculatorService;
+import calculator.dosgi.operations.AddService;
+
+/**
+ * 
+ */
+public class CalculatorActivator implements BundleActivator {
+    private Logger logger = Logger.getLogger(CalculatorActivator.class.getName());
+
+    private Bundle getBundle(BundleContext bundleContext, Class<?> cls) {
+        PackageAdmin packageAdmin = null;
+        // PackageAdmin is used to resolve bundles 
+        ServiceReference ref = bundleContext.getServiceReference("org.osgi.service.packageadmin.PackageAdmin");
+        if (ref != null) {
+            packageAdmin = (PackageAdmin)bundleContext.getService(ref);
+            Bundle bundle = packageAdmin.getBundle(cls);
+            if (bundle != null) {
+                logger.info(cls.getName() + " is loaded by bundle: " + bundle.getSymbolicName());
+            }
+            bundleContext.ungetService(ref);
+            return bundle;
+        }
+        return null;
+    }
+
+    public void start(BundleContext context) throws Exception {
+        logger.info("Starting " + context.getBundle());
+        Dictionary<String, Object> props = new Hashtable<String, Object>();
+        props.put("sca.service", "CalculatorComponent#service-name(Calculator)");
+        props.put("calculator", "Calculator");
+        props.put("service.exported.configs", new String[] {"org.osgi.sca"});
+        props.put("org.osgi.sca.bindings", new String[] {"{http://sample}Calculator"});
+        props.put("service.exported.interfaces", new String[] {"*"});
+        logger.info("Registering " + CalculatorService.class.getName());
+        CalculatorService calculator = new CalculatorServiceImpl(context);
+        context.registerService(CalculatorService.class.getName(), calculator, props);
+
+        getBundle(context, AddService.class);
+
+    }
+
+    public void stop(BundleContext context) throws Exception {
+        logger.info("Stopping " + context.getBundle());
+        // Registered services will be automatically unregistered
+    }
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceDSImpl.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,114 @@
+/*
+ * 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 calculator.dosgi.impl;
+
+import org.osgi.service.component.ComponentContext;
+
+import calculator.dosgi.CalculatorService;
+import calculator.dosgi.operations.AddService;
+import calculator.dosgi.operations.DivideService;
+import calculator.dosgi.operations.MultiplyService;
+import calculator.dosgi.operations.SubtractService;
+
+/**
+ * An implementation of the Calculator service.
+ */
+public class CalculatorServiceDSImpl implements CalculatorService {
+    private AddService addService;
+    private SubtractService subtractService;
+    private MultiplyService multiplyService;
+    private DivideService divideService;
+
+    public CalculatorServiceDSImpl() {
+        super();
+        System.out.println("CalculatorServiceDSImpl()");
+    }
+
+    protected void activate(ComponentContext context) {
+        System.out.println("Activating " + context);
+    }
+
+    protected void deactivate(ComponentContext context) {
+        System.out.println("Deactivating " + context);
+    }
+
+    /*
+     * The following setters can be used for DS injection
+     */
+    public void setAddService(AddService addService) {
+        System.out.println("setAddService()");
+        this.addService = addService;
+    }
+
+    public void setSubtractService(SubtractService subtractService) {
+        this.subtractService = subtractService;
+    }
+
+    public void setDivideService(DivideService divideService) {
+        this.divideService = divideService;
+    }
+
+    public void setMultiplyService(MultiplyService multiplyService) {
+        this.multiplyService = multiplyService;
+    }
+
+    /*
+     * The following setters can be used for DS injection
+     */
+    public void unsetAddService(AddService addService) {
+        System.out.println("unsetAddService()");
+        this.addService = null;
+    }
+
+    public void unsetSubtractService(SubtractService subtractService) {
+        this.subtractService = null;
+    }
+
+    public void unsetDivideService(DivideService divideService) {
+        this.divideService = null;
+    }
+
+    public void unsetMultiplyService(MultiplyService multiplyService) {
+        this.multiplyService = null;
+    }    
+    private <T> T getService(Class<T> cls) {
+        for (Object s : new Object[] {addService, subtractService, multiplyService, divideService}) {
+            if (cls.isInstance(s)) {
+                return cls.cast(s);
+            }
+        }
+        throw new IllegalStateException(cls.getSimpleName() + " is not available");
+    }
+
+    public double add(double n1, double n2) {
+        return getService(AddService.class).add(n1, n2);
+    }
+
+    public double subtract(double n1, double n2) {
+        return getService(SubtractService.class).subtract(n1, n2);
+    }
+
+    public double multiply(double n1, double n2) {
+        return getService(MultiplyService.class).multiply(n1, n2);
+    }
+
+    public double divide(double n1, double n2) {
+        return getService(DivideService.class).divide(n1, n2);
+    }
+}

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/impl/CalculatorServiceImpl.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,99 @@
+/*
+ * 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 calculator.dosgi.impl;
+
+import static org.osgi.framework.Constants.OBJECTCLASS;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Filter;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.util.tracker.ServiceTracker;
+
+import calculator.dosgi.CalculatorService;
+import calculator.dosgi.operations.AddService;
+import calculator.dosgi.operations.DivideService;
+import calculator.dosgi.operations.MultiplyService;
+import calculator.dosgi.operations.SubtractService;
+
+/**
+ * An implementation of the Calculator service.
+ */
+public class CalculatorServiceImpl implements CalculatorService {
+    private Map<Class<?>, ServiceTracker> remoteServices = new HashMap<Class<?>, ServiceTracker>();
+
+    public CalculatorServiceImpl() {
+        super();
+    }
+
+    public CalculatorServiceImpl(BundleContext context) {
+        super();
+        for (Class<?> cls : new Class<?>[] {AddService.class, SubtractService.class, MultiplyService.class,
+                                            DivideService.class}) {
+            Filter remoteFilter = null;
+            try {
+                remoteFilter =
+                    context.createFilter("(&(" + OBJECTCLASS + "=" + cls.getName() + ") (service.imported=*))");
+            } catch (InvalidSyntaxException e) {
+                e.printStackTrace();
+            }
+            ServiceTracker tracker = new ServiceTracker(context, remoteFilter, null);
+            this.remoteServices.put(cls, tracker);
+            tracker.open();
+        }
+    }
+
+    private <T> T getService(Class<T> cls) {
+        ServiceTracker tracker = remoteServices.get(cls);
+        try {
+            // Wait for 10 seconds until the remote services are imported
+            tracker.waitForService(10000);
+        } catch (InterruptedException e) {
+            throw new IllegalStateException(cls.getSimpleName() + " is not available");
+        }
+        Object[] remoteObjects = tracker.getServices();
+        if (remoteObjects != null) {
+            for (Object s : remoteObjects) {
+                if (cls.isInstance(s)) {
+                    System.out.println("Remote service: " + s);
+                    return cls.cast(s);
+                }
+            }
+        }
+        throw new IllegalStateException(cls.getSimpleName() + " is not available");
+    }
+
+    public double add(double n1, double n2) {
+        return getService(AddService.class).add(n1, n2);
+    }
+
+    public double subtract(double n1, double n2) {
+        return getService(SubtractService.class).subtract(n1, n2);
+    }
+
+    public double multiply(double n1, double n2) {
+        return getService(MultiplyService.class).multiply(n1, n2);
+    }
+
+    public double divide(double n1, double n2) {
+        return getService(DivideService.class).divide(n1, n2);
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/AddService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/AddService.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/AddService.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/AddService.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,31 @@
+/*
+ * 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 calculator.dosgi.operations;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * The interface for the add service
+ */
+@Remotable
+public interface AddService {
+
+    double add(double n1, double n2);
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/DivideService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/DivideService.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/DivideService.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/DivideService.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,31 @@
+/*
+ * 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 calculator.dosgi.operations;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * The interface for the divide service
+ */
+@Remotable
+public interface DivideService {
+
+    double divide(double n1, double n2);
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/MultiplyService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/MultiplyService.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/MultiplyService.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/MultiplyService.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,31 @@
+/*
+ * 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 calculator.dosgi.operations;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * The interface for the multiply service
+ */
+@Remotable
+public interface MultiplyService {
+
+    double multiply(double n1, double n2);
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/SubtractService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/SubtractService.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/SubtractService.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/dosgi/operations/SubtractService.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,31 @@
+/*
+ * 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 calculator.dosgi.operations;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * The interface for the subtract service
+ */
+@Remotable
+public interface SubtractService {
+
+    double subtract(double n1, double n2);
+
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,93 @@
+/*
+ * 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 calculator.rmi;
+
+import java.io.Serializable;
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+import java.rmi.server.UnicastRemoteObject;
+
+/**
+ *
+ */
+public class OperationsRMIServer implements OperationsRemote, Serializable {
+
+    private static final long serialVersionUID = 6081008315263103012L;
+    private transient Registry registry;
+
+    public OperationsRMIServer() throws RemoteException {
+        super();
+    }
+
+    public double add(double n1, double n2) {
+        return n1 + n2;
+    }
+
+    public double subtract(double n1, double n2) {
+        return n1 - n2;
+    }
+
+    public double divide(double n1, double n2) {
+        return n1 / n2;
+    }
+
+    public double multiply(double n1, double n2) {
+        return n1 * n2;
+    }
+
+    public void start() throws RemoteException {
+        Thread thread = new Thread() {
+            public void run() {
+                try {
+                    System.out.println("Starting the RMI server for calculator operations...");
+                    Remote stub = UnicastRemoteObject.exportObject(OperationsRMIServer.this);
+                    registry = LocateRegistry.createRegistry(8085);
+                    registry.bind("AddService", stub);
+                    registry.bind("SubtractService", stub);
+                    registry.bind("MultiplyService", stub);
+                    registry.bind("DivideService", stub);
+                    System.out.println("RMI server for calculator operations is now started.");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        };
+        thread.start();
+    }
+
+    public void stop() {
+        if (registry != null) {
+            try {
+                registry.unbind("AddService");
+                registry.unbind("SubtractService");
+                registry.unbind("MultiplyService");
+                registry.unbind("DivideService");
+                UnicastRemoteObject.unexportObject(this, false);
+                UnicastRemoteObject.unexportObject(registry, false);
+                registry = null;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRMIServer_Stub.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+
+// Stub class generated by rmic, do not edit.
+// Contents subject to change without notice.
+package calculator.rmi;
+
+public final class OperationsRMIServer_Stub extends java.rmi.server.RemoteStub implements calculator.rmi.OperationsRemote {
+    private static final long serialVersionUID = 2;
+
+    private static java.lang.reflect.Method $method_add_0;
+    private static java.lang.reflect.Method $method_divide_1;
+    private static java.lang.reflect.Method $method_multiply_2;
+    private static java.lang.reflect.Method $method_subtract_3;
+
+    static {
+        try {
+            $method_add_0 =
+                calculator.rmi.OperationsRemote.class.getMethod("add", new java.lang.Class[] {double.class, double.class});
+            $method_divide_1 =
+                calculator.rmi.OperationsRemote.class.getMethod("divide",
+                                                            new java.lang.Class[] {double.class, double.class});
+            $method_multiply_2 =
+                calculator.rmi.OperationsRemote.class.getMethod("multiply", new java.lang.Class[] {double.class,
+                                                                                               double.class});
+            $method_subtract_3 =
+                calculator.rmi.OperationsRemote.class.getMethod("subtract", new java.lang.Class[] {double.class,
+                                                                                               double.class});
+        } catch (java.lang.NoSuchMethodException e) {
+            throw new java.lang.NoSuchMethodError("stub class initialization failed");
+        }
+    }
+
+    // constructors
+    public OperationsRMIServer_Stub(java.rmi.server.RemoteRef ref) {
+        super(ref);
+    }
+
+    // methods from remote interfaces
+
+    // implementation of add(double, double)
+    public double add(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
+        try {
+            Object $result =
+                ref.invoke(this,
+                           $method_add_0,
+                           new java.lang.Object[] {new java.lang.Double($param_double_1),
+                                                   new java.lang.Double($param_double_2)},
+                           864055858262779977L);
+            return ((java.lang.Double)$result).doubleValue();
+        } catch (java.lang.RuntimeException e) {
+            throw e;
+        } catch (java.rmi.RemoteException e) {
+            throw e;
+        } catch (java.lang.Exception e) {
+            throw new java.rmi.UnexpectedException("undeclared checked exception", e);
+        }
+    }
+
+    // implementation of divide(double, double)
+    public double divide(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
+        try {
+            Object $result =
+                ref.invoke(this,
+                           $method_divide_1,
+                           new java.lang.Object[] {new java.lang.Double($param_double_1),
+                                                   new java.lang.Double($param_double_2)},
+                           8097593626497421928L);
+            return ((java.lang.Double)$result).doubleValue();
+        } catch (java.lang.RuntimeException e) {
+            throw e;
+        } catch (java.rmi.RemoteException e) {
+            throw e;
+        } catch (java.lang.Exception e) {
+            throw new java.rmi.UnexpectedException("undeclared checked exception", e);
+        }
+    }
+
+    // implementation of multiply(double, double)
+    public double multiply(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
+        try {
+            Object $result =
+                ref.invoke(this,
+                           $method_multiply_2,
+                           new java.lang.Object[] {new java.lang.Double($param_double_1),
+                                                   new java.lang.Double($param_double_2)},
+                           -346155016949350695L);
+            return ((java.lang.Double)$result).doubleValue();
+        } catch (java.lang.RuntimeException e) {
+            throw e;
+        } catch (java.rmi.RemoteException e) {
+            throw e;
+        } catch (java.lang.Exception e) {
+            throw new java.rmi.UnexpectedException("undeclared checked exception", e);
+        }
+    }
+
+    // implementation of subtract(double, double)
+    public double subtract(double $param_double_1, double $param_double_2) throws java.rmi.RemoteException {
+        try {
+            Object $result =
+                ref.invoke(this,
+                           $method_subtract_3,
+                           new java.lang.Object[] {new java.lang.Double($param_double_1),
+                                                   new java.lang.Double($param_double_2)},
+                           -610707357620578750L);
+            return ((java.lang.Double)$result).doubleValue();
+        } catch (java.lang.RuntimeException e) {
+            throw e;
+        } catch (java.rmi.RemoteException e) {
+            throw e;
+        } catch (java.lang.Exception e) {
+            throw new java.rmi.UnexpectedException("undeclared checked exception", e);
+        }
+    }
+}

Added: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRemote.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRemote.java?rev=1212416&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRemote.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/java/calculator/rmi/OperationsRemote.java Fri Dec  9 13:43:18 2011
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package calculator.rmi;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+
+/**
+ * RMI Remote interface
+ */
+public interface OperationsRemote extends Remote {
+    double add(double n1, double n2) throws RemoteException;
+
+    double subtract(double n1, double n2) throws RemoteException;
+
+    double multiply(double n1, double n2) throws RemoteException;
+
+    double divide(double n1, double n2) throws RemoteException;
+
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/main/resources/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: tuscany/sca-java-2.x/trunk/samples/learning-more/distributed-osgi-dynamic/calculator-bundle/src/test/
------------------------------------------------------------------------------
    bugtraq:number = true



Mime
View raw message