tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From antel...@apache.org
Subject svn commit: r414844 [1/3] - in /incubator/tuscany/sandbox/ant/tuscany-container-rhino: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/tuscany/ src/main/java/org/apache/tuscany/container/ src/main/...
Date Fri, 16 Jun 2006 14:59:24 GMT
Author: antelder
Date: Fri Jun 16 07:59:20 2006
New Revision: 414844

URL: http://svn.apache.org/viewvc?rev=414844&view=rev
Log:
refactored javascript container

Added:
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/LICENSE.txt
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/README.txt
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/pom.xml
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/config/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/CopyOfJavaScriptComponentContext.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/e4x/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/e4x/E4XInterceptor.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/e4x/E4XPolicyBuilder.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/loader/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/loader/JavaScriptImplementationLoader.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoFunctionInvoker.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoScript.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoScriptInstance.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/resources/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/resources/system.fragment
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/assembly/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/assembly/tests/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/assembly/tests/bigbank/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/assembly/tests/bigbank/account/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/assembly/tests/bigbank/account/services/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilderTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/e4x/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/e4x/E4XInterceptorTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/e4x/E4XPolicyBuilderTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/AbstractJavaScriptTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/BasicTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/E4XServiceRefsTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/E4XTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/HelloWorld.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/InitializationTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/PropertiesTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/ServiceRefsTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/integration/TestMethods.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/invocation/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/Foo.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoFunctionInvokerTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoScriptInstanceTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoScriptTestCase.java
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/assembly/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/assembly/tests/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/assembly/tests/bigbank/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/assembly/tests/bigbank/account/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/assembly/tests/bigbank/account/services/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/e4x/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/e4x/helloworld.wsdl
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/org/apache/tuscany/container/rhino/rhino/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/sca.module
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldE4XProxyImpl.componentType
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldE4XProxyImpl.js
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl1.componentType
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl1.js
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl2.componentType
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl2.js
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl4.componentType
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl4.js
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl5.componentType
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldImpl5.js
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldProxyImpl.componentType
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/HelloWorldProxyImpl.js
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/e4x.componentType
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/tests/e4x.js
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/wsdl/
    incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/test/resources/wsdl/helloworld.wsdl

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/LICENSE.txt
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/LICENSE.txt?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/LICENSE.txt (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/LICENSE.txt Fri Jun 16 07:59:20 2006
@@ -0,0 +1,777 @@
+
+                                 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.
+
+===============================================================================
+
+For the Rhino JavaScript project:
+
+Netscape Public License V1.1
+
+     AMENDMENTS
+
+     The Netscape Public License Version 1.1 ("NPL") consists of the
+     Mozilla Public License Version 1.1 with the following Amendments,
+     including Exhibit A-Netscape Public License.  Files identified with
+     "Exhibit A-Netscape Public License" are governed by the Netscape
+     Public License Version 1.1.
+
+     Additional Terms applicable to the Netscape Public License.
+          I. Effect.
+          These additional terms described in this Netscape Public
+          License -- Amendments shall apply to the Mozilla Communicator
+          client code and to all Covered Code under this License.
+
+          II. "Netscape's Branded Code" means Covered Code that Netscape
+          distributes and/or permits others to distribute under one or more
+          trademark(s) which are controlled by Netscape but which are not
+          licensed for use under this License.
+
+          III. Netscape and logo.
+          This License does not grant any rights to use the trademarks
+          "Netscape", the "Netscape N and horizon" logo or the "Netscape
+          lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
+          "Smart Browsing" even if such marks are included in the Original
+          Code or Modifications.
+
+          IV. Inability to Comply Due to Contractual Obligation.
+          Prior to licensing the Original Code under this License, Netscape
+          has licensed third party code for use in Netscape's Branded Code.
+          To the extent that Netscape is limited contractually from making
+          such third party code available under this License, Netscape may
+          choose to reintegrate such code into Covered Code without being
+          required to distribute such code in Source Code form, even if
+          such code would otherwise be considered "Modifications" under
+          this License.
+
+          V. Use of Modifications and Covered Code by Initial Developer.
+               V.1. In General.
+               The obligations of Section 3 apply to Netscape, except to
+               the extent specified in this Amendment, Section V.2 and V.3.
+
+               V.2. Other Products.
+               Netscape may include Covered Code in products other than the
+               Netscape's Branded Code which are released by Netscape
+               during the two (2) years following the release date of the
+               Original Code, without such additional products becoming
+               subject to the terms of this License, and may license such
+               additional products on different terms from those contained
+               in this License.
+
+               V.3. Alternative Licensing.
+               Netscape may license the Source Code of Netscape's Branded
+               Code, including Modifications incorporated therein, without
+               such Netscape Branded Code becoming subject to the terms of
+               this License, and may license such Netscape Branded Code on
+               different terms from those contained in this License.
+
+          VI. Litigation.
+          Notwithstanding the limitations of Section 11 above, the
+          provisions regarding litigation in Section 11(a), (b) and (c) of
+          the License shall apply to all disputes relating to this License.
+
+     EXHIBIT A-Netscape Public License.
+
+          "The contents of this file are subject to the Netscape Public
+          License Version 1.1 (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.mozilla.org/NPL/
+
+          Software distributed under the License is distributed on an "AS
+          IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+          implied. See the License for the specific language governing
+          rights and limitations under the License.
+
+          The Original Code is Mozilla Communicator client code, released
+          March 31, 1998.
+
+          The Initial Developer of the Original Code is Netscape
+          Communications Corporation. Portions created by Netscape are
+          Copyright (C) 1998-1999 Netscape Communications Corporation. All
+          Rights Reserved.
+
+          Contributor(s): ______________________________________.
+
+          Alternatively, the contents of this file may be used under the
+          terms of the _____ license (the "[___] License"), in which case
+          the provisions of [______] License are applicable  instead of
+          those above.  If you wish to allow use of your version of this
+          file only under the terms of the [____] License and not to allow
+          others to use your version of this file under the NPL, indicate
+          your decision by deleting  the provisions above and replace  them
+          with the notice and other provisions required by the [___]
+          License.  If you do not delete the provisions above, a recipient
+          may use your version of this file under either the NPL or the
+          [___] License."
+
+     ----------------------------------------------------------------------
+
+                          MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ---------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (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.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
+

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/README.txt
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/README.txt?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/README.txt (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/README.txt Fri Jun 16 07:59:20 2006
@@ -0,0 +1,35 @@
+Apache Tuscany M1 build (May, 2006)
+===================================
+
+http://incubator.apache.org/tuscany/
+
+Tuscany is an effort undergoing incubation at the Apache Software Foundation
+(ASF), sponsored by the Web Services PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects. 
+
+While incubation status is not necessarily a reflection of the completeness or 
+stability of the code, it does indicate that the project has yet to be fully
+endorsed by the ASF.
+
+
+Support
+-------
+
+Any problem with this release can be reported to the Tuscany mailing list 
+or in the JIRA issue tracker.
+
+Mailing list subscription:
+    tuscany-dev-subscribe@ws.apache.org
+
+Jira:
+    http://issues.apache.org/jira/browse/Tuscany
+
+
+Thank you for using Tuscany!
+
+
+The Tuscany Team. 
+

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/pom.xml?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/pom.xml (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/pom.xml Fri Jun 16 07:59:20 2006
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *  Copyright (c) 2005-2006 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  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.
+ -->
+<project>
+
+    <parent>
+        <groupId>org.apache.tuscany.sca.containers</groupId>
+        <artifactId>tuscany-sca-containers</artifactId>
+        <version>incubating-M1</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>tuscany-container-rhino</artifactId>
+    <name>Tuscany Rhino JavaScript Container</name>
+    <description>Tuscany Rhino JavaScript Container</description>
+    <version>incubating-M1</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany</groupId>
+            <artifactId>tuscany-core</artifactId>
+            <version>${pom.version}</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>rhino</groupId>
+            <artifactId>js</artifactId>
+            <version>1.6R2</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.databinding</groupId>
+            <artifactId>tuscany-databinding-sdo</artifactId> <!-- Reqd for E4X -->
+            <version>${pom.version}</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>xmlbeans</groupId>
+            <artifactId>xbean</artifactId>  <!-- Reqd for E4X -->
+            <version>2.1.0</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java Fri Jun 16 07:59:20 2006
@@ -0,0 +1,74 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  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.
+ */
+package org.apache.tuscany.container.rhino.assembly;
+
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.model.assembly.impl.AtomicImplementationImpl;
+
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * Default implementation of a JavScript component implementation type
+ *
+ * @version $Rev$ $Date$
+ */
+public class JavaScriptImplementation extends AtomicImplementationImpl {
+
+    private String scriptFile;
+
+    private String script;
+
+    private ResourceLoader resourceLoader;
+
+    private TypeHelper typeHelper;
+
+    public JavaScriptImplementation() {
+        super();
+    }
+
+    public void setResourceLoader(ResourceLoader resourceLoader) {
+        this.resourceLoader = resourceLoader;
+    }
+
+    public ResourceLoader getResourceLoader() {
+        return resourceLoader;
+    }
+
+    public TypeHelper getTypeHelper() {
+        return typeHelper;
+    }
+
+    public void setTypeHelper(TypeHelper typeHelper) {
+        this.typeHelper = typeHelper;
+    }
+
+    public String getScriptFile() {
+        return scriptFile;
+    }
+
+    public void setScriptFile(String fn) {
+        scriptFile = fn;
+    }
+
+    public String getScript() {
+        return script;
+    }
+
+    public void setScript(String script) {
+        this.script = script;
+    }
+}

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java Fri Jun 16 07:59:20 2006
@@ -0,0 +1,62 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  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.
+ */
+package org.apache.tuscany.container.rhino.builder;
+
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tuscany.container.rhino.assembly.JavaScriptImplementation;
+import org.apache.tuscany.container.rhino.config.JavaScriptContextFactory;
+import org.apache.tuscany.container.rhino.rhino.RhinoScript;
+import org.apache.tuscany.core.builder.ContextFactory;
+import org.apache.tuscany.core.extension.ContextFactoryBuilderSupport;
+import org.apache.tuscany.model.assembly.Scope;
+import org.apache.tuscany.model.assembly.Service;
+
+/**
+ * Builds {@link org.apache.tuscany.container.rhino.config.JavaScriptContextFactory}s from a JavaScript component type
+ * 
+ * @version $Rev$ $Date$
+ */
+@org.osoa.sca.annotations.Scope("MODULE")
+public class JavaScriptContextFactoryBuilder extends ContextFactoryBuilderSupport<JavaScriptImplementation> {
+
+    @Override
+    protected ContextFactory createContextFactory(String componentName, JavaScriptImplementation jsImplementation, Scope scope) {
+
+        String script = jsImplementation.getScript();
+
+        Map<String, Object> defaultProperties = new HashMap<String, Object>();
+        for (org.apache.tuscany.model.assembly.Property property : jsImplementation.getComponentType().getProperties()) {
+            defaultProperties.put(property.getName(), property.getDefaultValue());
+        }
+
+        ClassLoader cl = jsImplementation.getResourceLoader().getClassLoader();
+
+        RhinoScript rhinoScript = new RhinoScript(componentName, script, defaultProperties, cl);
+
+        for (Service service : jsImplementation.getComponentType().getServices()) {
+            for (Method serviceMethod : service.getServiceContract().getInterface().getMethods()) {
+                rhinoScript.setResponseClass(serviceMethod.getName(), serviceMethod.getReturnType());
+            }
+        }
+
+        return new JavaScriptContextFactory(componentName, scope, rhinoScript);
+    }
+
+}

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java Fri Jun 16 07:59:20 2006
@@ -0,0 +1,40 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  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.
+ */
+package org.apache.tuscany.container.rhino.builder;
+
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.container.rhino.config.JavaScriptContextFactory;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.context.ScopeContext;
+import org.apache.tuscany.core.extension.ComponentTargetInvoker;
+import org.apache.tuscany.core.extension.WireBuilderSupport;
+import org.apache.tuscany.core.wire.TargetInvoker;
+import org.osoa.sca.annotations.Scope;
+
+/**
+ * Responsible for bridging source- and target-side invocations chains when the target type is a JavaScript implementation
+ *
+ * @version $Rev$ $Date$
+ */
+@Scope("MODULE")
+public class JavaScriptTargetWireBuilder extends WireBuilderSupport<JavaScriptContextFactory> {
+
+    protected TargetInvoker createInvoker(QualifiedName targetName, Method operation, ScopeContext context, boolean downScope) {
+        return new ComponentTargetInvoker(targetName, operation, context);
+    }
+}

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java Fri Jun 16 07:59:20 2006
@@ -0,0 +1,111 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  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.
+ */
+package org.apache.tuscany.container.rhino.config;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.container.rhino.context.JavaScriptComponentContext;
+import org.apache.tuscany.container.rhino.rhino.RhinoScript;
+import org.apache.tuscany.core.builder.ContextCreationException;
+import org.apache.tuscany.core.builder.ContextFactory;
+import org.apache.tuscany.core.builder.ContextResolver;
+import org.apache.tuscany.core.context.AtomicContext;
+import org.apache.tuscany.core.context.CompositeContext;
+import org.apache.tuscany.core.wire.SourceWireFactory;
+import org.apache.tuscany.core.wire.TargetWireFactory;
+import org.apache.tuscany.model.assembly.Scope;
+
+/**
+ * Creates instance contexts for JavaScript component types
+ * 
+ * @version $Rev$ $Date$
+ */
+public class JavaScriptContextFactory implements ContextFactory<AtomicContext>, ContextResolver {
+
+    private Scope scope;
+
+    private String name;
+
+    private Map<String, TargetWireFactory> targetProxyFactories = new HashMap<String, TargetWireFactory>();
+
+    private List<SourceWireFactory> sourceProxyFactories = new ArrayList<SourceWireFactory>();
+
+    private Map<String, Object> properties;
+
+    private RhinoScript rhinoScript;
+
+    private CompositeContext parentContext;
+
+    public JavaScriptContextFactory(String name, Scope scope, RhinoScript rhinoScript) {
+        this.name = name;
+        this.scope = scope;
+        this.rhinoScript = rhinoScript;
+        this.properties = new HashMap<String, Object>();
+    }
+
+    public AtomicContext createContext() throws ContextCreationException {
+        return new JavaScriptComponentContext(name, properties, sourceProxyFactories, targetProxyFactories, rhinoScript);
+    }
+
+    public Scope getScope() {
+        return scope;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void addProperty(String propertyName, Object value) {
+        properties.put(propertyName, value);
+    }
+
+    public void addTargetWireFactory(String serviceName, TargetWireFactory factory) {
+        targetProxyFactories.put(serviceName, factory);
+    }
+
+    public TargetWireFactory getTargetWireFactory(String serviceName) {
+        return targetProxyFactories.get(serviceName);
+    }
+
+    public Map<String, TargetWireFactory> getTargetWireFactories() {
+        return targetProxyFactories;
+    }
+
+    public void addSourceWireFactory(String referenceName, SourceWireFactory factory) {
+        sourceProxyFactories.add(factory);
+    }
+
+    public void addSourceWireFactories(String referenceName, Class referenceInterface, List<SourceWireFactory> factories, boolean multiplicity) {
+        sourceProxyFactories.addAll(factories);
+    }
+
+    public List<SourceWireFactory> getSourceWireFactories() {
+        return sourceProxyFactories;
+    }
+
+    public void prepare(CompositeContext parent) {
+        parentContext = parent;
+    }
+
+    public CompositeContext getCurrentContext() {
+        return parentContext;
+    }
+
+}

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/CopyOfJavaScriptComponentContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/CopyOfJavaScriptComponentContext.java?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/CopyOfJavaScriptComponentContext.java (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/CopyOfJavaScriptComponentContext.java Fri Jun 16 07:59:20 2006
@@ -0,0 +1,165 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  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.
+ */
+package org.apache.tuscany.container.rhino.context;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.container.rhino.rhino.RhinoScript;
+import org.apache.tuscany.container.rhino.rhino.RhinoScriptInstance;
+import org.apache.tuscany.core.context.AtomicContext;
+import org.apache.tuscany.core.context.CoreRuntimeException;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.context.TargetException;
+import org.apache.tuscany.core.context.event.InstanceCreated;
+import org.apache.tuscany.core.context.impl.AbstractContext;
+import org.apache.tuscany.core.extension.ExternalServiceInvoker;
+import org.apache.tuscany.core.wire.ProxyCreationException;
+import org.apache.tuscany.core.wire.SourceWireFactory;
+import org.apache.tuscany.core.wire.TargetWireFactory;
+import org.apache.tuscany.core.wire.WireFactory;
+import org.osoa.sca.ServiceRuntimeException;
+
+public class CopyOfJavaScriptComponentContext extends AbstractContext implements AtomicContext {
+
+    private RhinoScript rhinoScript;
+
+    private Map<String, Object> properties;
+
+    private List<SourceWireFactory> sourceProxyFactories;
+
+    private Map<String, TargetWireFactory> targetProxyFactories;
+
+    public CopyOfJavaScriptComponentContext(String name, Map<String, Object> properties, List<SourceWireFactory> sourceProxyFactories,
+            Map<String, TargetWireFactory> targetProxyFactories, RhinoScript rhinoScript) {
+        super(name);
+        this.properties = properties;
+        this.rhinoScript = rhinoScript;
+        this.sourceProxyFactories = sourceProxyFactories;
+        this.targetProxyFactories = targetProxyFactories;
+    }
+
+    public Object getInstance(QualifiedName qName) throws TargetException {
+        return getInstance(qName, true);
+    }
+
+    public void init() throws TargetException {
+        getInstance(null, false);
+    }
+
+    public void destroy() throws TargetException {
+
+    }
+
+    private synchronized Object getInstance(QualifiedName qName, boolean notify) throws TargetException {
+        String portName = qName.getPortName();
+        WireFactory targetFactory;
+        if (portName != null) {
+            targetFactory = targetProxyFactories.get(portName);
+        } else {
+            // FIXME The port name is null here, either locateService needs more information (the expected interface) to
+            // select the correct port, or we need to return a factory that matches the whole set of services exposed by
+            // the component.
+            targetFactory = targetProxyFactories.values().iterator().next();
+        }
+        if (targetFactory == null) {
+            TargetException e = new TargetException("Target service not found");
+            e.setIdentifier(qName.getPortName());
+            e.addContextName(getName());
+            throw e;
+        }
+        try {
+            Object proxy = targetFactory.createProxy(); // createProxy(new Class[] { iface });
+            if (notify) {
+                publish(new InstanceCreated(this));
+            }
+            return proxy;
+        } catch (ProxyCreationException e) {
+            TargetException te = new TargetException("Error returning target", e);
+            e.setIdentifier(qName.getPortName());
+            e.addContextName(getName());
+            throw te;
+        }
+    }
+
+    public Object getTargetInstance() throws TargetException {
+        Map<String, Object> contexts = createServiceReferences();
+        contexts.putAll(properties);
+
+        final RhinoScriptInstance rhinoScriptInstance = rhinoScript.createRhinoScriptInstance(contexts);
+
+        ExternalServiceInvoker esi = new ExternalServiceInvoker() {
+            public Object invoke(String methodName, Object[] args) {
+                return rhinoScriptInstance.invokeFunction(methodName, args);
+            }
+        };
+
+        return esi;
+    }
+
+    /**
+     * Creates a map containing any ServiceReferences
+     */
+    private Map<String, Object> createServiceReferences() {
+        try {
+            Map<String, Object> context = new HashMap<String, Object>();
+            for (SourceWireFactory proxyFactory : sourceProxyFactories) {
+                Object referenceProxy = createReferenceProxy(proxyFactory);
+                context.put(proxyFactory.getConfiguration().getReferenceName(), referenceProxy);
+            }
+            return context;
+        } catch (ProxyCreationException e) {
+            throw new ServiceRuntimeException(e);
+        }
+    }
+
+    private Object createReferenceProxy(SourceWireFactory proxyFactory) throws ProxyCreationException {
+        Object proxy = proxyFactory.createProxy();
+        Class proxyClass = proxy.getClass();
+        if (Proxy.isProxyClass(proxyClass)) {
+            Class[] ifaces = proxyClass.getInterfaces();
+            Class[] newIfaces = new Class[ifaces.length+1];
+            System.arraycopy(ifaces,0,newIfaces,0,ifaces.length);
+            newIfaces[ifaces.length] = E4XReference.class;
+            InvocationHandler ih = Proxy.getInvocationHandler(proxy);
+            proxy = Proxy.newProxyInstance(proxyClass.getClassLoader(), newIfaces, ih);
+        }
+        return proxy;
+    }
+    
+    interface E4XReference {
+        public Object process(Object xml);
+    }
+
+    public boolean isEagerInit() {
+        return false;
+    }
+
+    public boolean isDestroyable() {
+        return false;
+    }
+
+    public void start() throws CoreRuntimeException {
+    }
+
+    public void stop() throws CoreRuntimeException {
+    }
+
+}

Added: incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java?rev=414844&view=auto
==============================================================================
--- incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java (added)
+++ incubator/tuscany/sandbox/ant/tuscany-container-rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java Fri Jun 16 07:59:20 2006
@@ -0,0 +1,144 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  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.
+ */
+package org.apache.tuscany.container.rhino.context;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.container.rhino.rhino.RhinoScript;
+import org.apache.tuscany.container.rhino.rhino.RhinoScriptInstance;
+import org.apache.tuscany.core.context.AtomicContext;
+import org.apache.tuscany.core.context.CoreRuntimeException;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.context.TargetException;
+import org.apache.tuscany.core.context.event.InstanceCreated;
+import org.apache.tuscany.core.context.impl.AbstractContext;
+import org.apache.tuscany.core.extension.ExternalServiceInvoker;
+import org.apache.tuscany.core.wire.ProxyCreationException;
+import org.apache.tuscany.core.wire.SourceWireFactory;
+import org.apache.tuscany.core.wire.TargetWireFactory;
+import org.apache.tuscany.core.wire.WireFactory;
+import org.osoa.sca.ServiceRuntimeException;
+
+public class JavaScriptComponentContext extends AbstractContext implements AtomicContext {
+
+    private RhinoScript rhinoScript;
+
+    private Map<String, Object> properties;
+
+    private List<SourceWireFactory> sourceProxyFactories;
+
+    private Map<String, TargetWireFactory> targetProxyFactories;
+
+    public JavaScriptComponentContext(String name, Map<String, Object> properties, List<SourceWireFactory> sourceProxyFactories,
+            Map<String, TargetWireFactory> targetProxyFactories, RhinoScript rhinoScript) {
+        super(name);
+        this.properties = properties;
+        this.rhinoScript = rhinoScript;
+        this.sourceProxyFactories = sourceProxyFactories;
+        this.targetProxyFactories = targetProxyFactories;
+    }
+
+    public Object getInstance(QualifiedName qName) throws TargetException {
+        return getInstance(qName, true);
+    }
+
+    public void init() throws TargetException {
+        getInstance(null, false);
+    }
+
+    public void destroy() throws TargetException {
+
+    }
+
+    private synchronized Object getInstance(QualifiedName qName, boolean notify) throws TargetException {
+        String portName = qName.getPortName();
+        WireFactory targetFactory;
+        if (portName != null) {
+            targetFactory = targetProxyFactories.get(portName);
+        } else {
+            // FIXME The port name is null here, either locateService needs more information (the expected interface) to
+            // select the correct port, or we need to return a factory that matches the whole set of services exposed by
+            // the component.
+            targetFactory = targetProxyFactories.values().iterator().next();
+        }
+        if (targetFactory == null) {
+            TargetException e = new TargetException("Target service not found");
+            e.setIdentifier(qName.getPortName());
+            e.addContextName(getName());
+            throw e;
+        }
+        try {
+            Object proxy = targetFactory.createProxy(); // createProxy(new Class[] { iface });
+            if (notify) {
+                publish(new InstanceCreated(this));
+            }
+            return proxy;
+        } catch (ProxyCreationException e) {
+            TargetException te = new TargetException("Error returning target", e);
+            e.setIdentifier(qName.getPortName());
+            e.addContextName(getName());
+            throw te;
+        }
+    }
+
+    public Object getTargetInstance() throws TargetException {
+        Map<String, Object> contexts = createServiceReferences();
+        contexts.putAll(properties);
+
+        final RhinoScriptInstance rhinoScriptInstance = rhinoScript.createRhinoScriptInstance(contexts);
+
+        ExternalServiceInvoker esi = new ExternalServiceInvoker() {
+            public Object invoke(String methodName, Object[] args) {
+                return rhinoScriptInstance.invokeFunction(methodName, args);
+            }
+        };
+
+        return esi;
+    }
+
+    /**
+     * Creates a map containing any ServiceReferences
+     */
+    private Map<String, Object> createServiceReferences() {
+        try {
+            Map<String, Object> context = new HashMap<String, Object>();
+            for (SourceWireFactory proxyFactory : sourceProxyFactories) {
+                context.put(proxyFactory.getConfiguration().getReferenceName(), proxyFactory.createProxy());
+            }
+            return context;
+        } catch (ProxyCreationException e) {
+            throw new ServiceRuntimeException(e);
+        }
+    }
+
+    public boolean isEagerInit() {
+        return false;
+    }
+
+    public boolean isDestroyable() {
+        return false;
+    }
+
+    public void start() throws CoreRuntimeException {
+    }
+
+    public void stop() throws CoreRuntimeException {
+    }
+
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org


Mime
View raw message