You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Raymond Feng <en...@gmail.com> on 2007/08/14 18:15:45 UTC

Re: svn commit: r565684 [1/2] - in /incubator/tuscany/java/sca/modules/binding-sca-axis2: ./ 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/sca/ src/main/java/or

Hi,

Do we duplicate the binding-ws-axis2 code for binding.sca or delegate it to 
the binding-ws-axis2?

Thanks,
Raymond

----- Original Message ----- 
From: <sl...@apache.org>
To: <tu...@ws.apache.org>
Sent: Tuesday, August 14, 2007 2:57 AM
Subject: svn commit: r565684 [1/2] - in 
/incubator/tuscany/java/sca/modules/binding-sca-axis2: ./ 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/sca/ 
src/main/java/or...


> Author: slaws
> Date: Tue Aug 14 02:57:15 2007
> New Revision: 565684
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=565684
> Log:
> TUSCANY-1512
> A thin wrapper over binding-ws-axis2 to allow the sca binding to interact 
> with remote services.
>
> Added:
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/   (with props)
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/DISCLAIMER
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/LICENSE
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/NOTICE
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/maven-eclipse.xml
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/pom.xml
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingInvoker.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/META-INF/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/META-INF/services/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/
>    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/BaseTest.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/SimpleTestCase.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDistributedSCADomainImpl.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestServiceDiscoveryImpl.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorld.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorldRemote.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClient.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldService.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceRemote.java
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/HelloWorld.composite
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/META-INF/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/META-INF/sca-contribution.xml
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeB/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeB/HelloWorld.composite
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeB/META-INF/
> 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeB/META-INF/sca-contribution.xml
>
> Propchange: incubator/tuscany/java/sca/modules/binding-sca-axis2/
> ------------------------------------------------------------------------------
> --- svn:ignore (added)
> +++ svn:ignore Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,15 @@
> +dojo
> +target
> +*.iws
> +*.ipr
> +*.iml
> +.project
> +.classpath
> +maven.log
> +velocity.log*
> +junit*.properties
> +surefire*.properties
> +.settings
> +.deployables
> +.wtpmodules
> +.felix
>
> Added: incubator/tuscany/java/sca/modules/binding-sca-axis2/DISCLAIMER
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/DISCLAIMER?view=auto&rev=565684
> ==============================================================================
> --- incubator/tuscany/java/sca/modules/binding-sca-axis2/DISCLAIMER 
> (added)
> +++ incubator/tuscany/java/sca/modules/binding-sca-axis2/DISCLAIMER Tue 
> Aug 14 02:57:15 2007
> @@ -0,0 +1,8 @@
> +Apache Tuscany is an effort undergoing incubation at The Apache Software
> +Foundation (ASF), sponsored by the Apache 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.
> +
>
> Added: incubator/tuscany/java/sca/modules/binding-sca-axis2/LICENSE
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/LICENSE?view=auto&rev=565684
> ==============================================================================
> --- incubator/tuscany/java/sca/modules/binding-sca-axis2/LICENSE (added)
> +++ incubator/tuscany/java/sca/modules/binding-sca-axis2/LICENSE Tue Aug 
> 14 02:57:15 2007
> @@ -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.
> +
> +
> +
>
> Added: incubator/tuscany/java/sca/modules/binding-sca-axis2/NOTICE
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/NOTICE?view=auto&rev=565684
> ==============================================================================
> --- incubator/tuscany/java/sca/modules/binding-sca-axis2/NOTICE (added)
> +++ incubator/tuscany/java/sca/modules/binding-sca-axis2/NOTICE Tue Aug 14 
> 02:57:15 2007
> @@ -0,0 +1,6 @@
> +${pom.name}
> +Copyright (c) 2005 - 2007 The Apache Software Foundation
> +
> +This product includes software developed by
> +The Apache Software Foundation (http://www.apache.org/).
> +
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/maven-eclipse.xml
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/maven-eclipse.xml?view=auto&rev=565684
> ==============================================================================
> --- incubator/tuscany/java/sca/modules/binding-sca-axis2/maven-eclipse.xml 
> (added)
> +++ incubator/tuscany/java/sca/modules/binding-sca-axis2/maven-eclipse.xml 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,8 @@
> +<project default="copy-resources">
> +  <target name="init"/>
> +  <target name="copy-resources" depends="init">
> +    <copy todir="target/classes/META-INF" filtering="true">
> +      <fileset dir="." includes="DISCLAIMER|LICENSE|NOTICE"/>
> +    </copy>
> +  </target>
> +</project>
> \ No newline at end of file
>
> Added: incubator/tuscany/java/sca/modules/binding-sca-axis2/pom.xml
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/pom.xml?view=auto&rev=565684
> ==============================================================================
> --- incubator/tuscany/java/sca/modules/binding-sca-axis2/pom.xml (added)
> +++ incubator/tuscany/java/sca/modules/binding-sca-axis2/pom.xml Tue Aug 
> 14 02:57:15 2007
> @@ -0,0 +1,84 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!--
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> +-->
> +<project>
> +
> +    <modelVersion>4.0.0</modelVersion>
> +    <parent>
> +        <groupId>org.apache.tuscany.sca</groupId>
> +        <artifactId>tuscany-modules</artifactId>
> +        <version>1.0-incubating-SNAPSHOT</version>
> +        <relativePath>../pom.xml</relativePath>
> +    </parent>
> +
> +    <artifactId>tuscany-binding-sca-axis2</artifactId>
> +    <name>Apache Tuscany Default SCA Binding Using Axis2</name>
> +
> +    <dependencies>
> +
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-binding-sca</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-binding-ws-axis2</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>javax.servlet</groupId>
> +            <artifactId>servlet-api</artifactId>
> +            <version>2.4</version> <!-- to keep compatible with older 
> servlet containers -->
> +            <scope>provided</scope>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>org.easymock</groupId>
> +            <artifactId>easymock</artifactId>
> +            <version>2.2</version>
> +            <scope>test</scope>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-http-jetty</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +            <scope>test</scope>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-host-embedded</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +            <scope>test</scope>
> +        </dependency>
> +
> +        <dependency>
> +            <groupId>org.apache.tuscany.sca</groupId>
> +            <artifactId>tuscany-implementation-java-runtime</artifactId>
> +            <version>1.0-incubating-SNAPSHOT</version>
> +            <scope>test</scope>
> +        </dependency>
> +
> +    </dependencies>
> +
> +</project>
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingInvoker.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingInvoker.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingInvoker.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingInvoker.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,57 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +package org.apache.tuscany.sca.binding.sca.axis2.impl;
> +
> +import org.apache.tuscany.sca.core.runtime.EndpointReferenceImpl;
> +import org.apache.tuscany.sca.invocation.Interceptor;
> +import org.apache.tuscany.sca.invocation.Invoker;
> +import org.apache.tuscany.sca.invocation.Message;
> +import org.apache.tuscany.sca.runtime.EndpointReference;
> +
> +public class Axis2SCABindingInvoker implements Interceptor {
> +
> +    private Invoker axis2Invoker;
> +    private EndpointReference serviceEPR;
> +
> +    public Axis2SCABindingInvoker(EndpointReference serviceEPR, Invoker 
> axis2Invoker) {
> +        this.axis2Invoker = axis2Invoker;
> +        this.serviceEPR = serviceEPR;
> +    }
> +
> +    public void setNext(Invoker next) {
> +    }
> +
> +    public Invoker getNext() {
> +        return null;
> +    }
> +
> +    public Message invoke(Message msg) {
> +        // fix up the URL for the message
> +        EndpointReference ep = msg.getTo();
> +
> +        if ((ep == null) ||
> +            (ep != null) && (ep.getURI().equals("/")) ){
> +            msg.setTo(serviceEPR);
> +        }
> +
> +        // do the axis2 stuff
> +        return axis2Invoker.invoke(msg);
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCABindingProviderFactory.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,70 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.impl;
> +
> +import org.apache.tuscany.sca.assembly.SCABinding;
> +import org.apache.tuscany.sca.binding.sca.DistributedSCABinding;
> +import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
> +import org.apache.tuscany.sca.core.ExtensionPointRegistry;
> +import org.apache.tuscany.sca.http.ServletHost;
> +import org.apache.tuscany.sca.http.ServletHostExtensionPoint;
> +import org.apache.tuscany.sca.invocation.MessageFactory;
> +import org.apache.tuscany.sca.provider.BindingProviderFactory;
> +import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
> +import org.apache.tuscany.sca.provider.ServiceBindingProvider;
> +import org.apache.tuscany.sca.runtime.RuntimeComponent;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentService;
> +
> +/**
> + * @version $Rev: 563772 $ $Date: 2007-08-08 07:50:49 +0100 (Wed, 08 Aug 
> 2007) $
> + */
> +public class Axis2SCABindingProviderFactory implements 
> BindingProviderFactory<DistributedSCABinding> {
> +
> +    private ExtensionPointRegistry extensionPoints;
> +    private MessageFactory messageFactory;
> +    private ServletHost servletHost;
> +
> +    public Axis2SCABindingProviderFactory(ExtensionPointRegistry 
> extensionPoints) {
> +        this.extensionPoints = extensionPoints;
> +
> +        ServletHostExtensionPoint servletHosts = 
> extensionPoints.getExtensionPoint(ServletHostExtensionPoint.class);
> +        this.servletHost = servletHosts.getServletHosts().get(0);
> +        ModelFactoryExtensionPoint modelFactories = 
> extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
> +        this.messageFactory = 
> modelFactories.getFactory(MessageFactory.class);
> +    }
> +
> +    public ReferenceBindingProvider 
> createReferenceBindingProvider(RuntimeComponent component,
> + 
> RuntimeComponentReference reference,
> + 
> DistributedSCABinding binding) {
> +        return new Axis2SCAReferenceBindingProvider(component, reference, 
> binding, servletHost, messageFactory);
> +    }
> +
> +    public ServiceBindingProvider 
> createServiceBindingProvider(RuntimeComponent component,
> + 
> RuntimeComponentService service,
> + 
> DistributedSCABinding binding) {
> +        return new Axis2SCAServiceBindingProvider(component, service, 
> binding, servletHost, messageFactory);
> +    }
> +
> +    public Class<DistributedSCABinding> getModelType() {
> +        return DistributedSCABinding.class;
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAReferenceBindingProvider.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,150 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.impl;
> +
> +import org.apache.axiom.om.OMElement;
> +import org.apache.tuscany.sca.assembly.SCABinding;
> +import 
> org.apache.tuscany.sca.binding.axis2.Axis2ReferenceBindingProvider;
> +import org.apache.tuscany.sca.binding.axis2.Axis2ServiceProvider;
> +import org.apache.tuscany.sca.binding.axis2.Java2WSDLHelper;
> +import org.apache.tuscany.sca.binding.sca.DistributedSCABinding;
> +import org.apache.tuscany.sca.binding.sca.impl.SCABindingImpl;
> +import org.apache.tuscany.sca.binding.ws.DefaultWebServiceBindingFactory;
> +import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
> +import org.apache.tuscany.sca.core.runtime.EndpointReferenceImpl;
> +import org.apache.tuscany.sca.distributed.domain.DistributedSCADomain;
> +import org.apache.tuscany.sca.distributed.management.ServiceDiscovery;
> +import 
> org.apache.tuscany.sca.distributed.management.ServiceNotFoundException;
> +import org.apache.tuscany.sca.http.ServletHost;
> +import org.apache.tuscany.sca.interfacedef.InterfaceContract;
> +import org.apache.tuscany.sca.interfacedef.Operation;
> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
> +import org.apache.tuscany.sca.invocation.Interceptor;
> +import org.apache.tuscany.sca.invocation.InvocationChain;
> +import org.apache.tuscany.sca.invocation.Invoker;
> +import org.apache.tuscany.sca.invocation.MessageFactory;
> +import org.apache.tuscany.sca.provider.ReferenceBindingProvider2;
> +import org.apache.tuscany.sca.runtime.EndpointReference;
> +import org.apache.tuscany.sca.runtime.RuntimeComponent;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentService;
> +import org.apache.tuscany.sca.runtime.RuntimeWire;
> +
> +/**
> + * @version $Rev: 563772 $ $Date: 2007-08-08 07:50:49 +0100 (Wed, 08 Aug 
> 2007) $
> + */
> +public class Axis2SCAReferenceBindingProvider implements 
> ReferenceBindingProvider2 {
> +
> +    private RuntimeComponent component;
> +    private RuntimeComponentReference reference;
> +    private SCABinding binding;
> +    private ServletHost servletHost;
> +    private MessageFactory messageFactory;
> +
> +    private Axis2ReferenceBindingProvider axisReferenceBindingProvider;
> +    private WebServiceBinding wsBinding;
> +
> +    private boolean started = false;
> +    private EndpointReference serviceEPR;
> +
> +    public Axis2SCAReferenceBindingProvider(RuntimeComponent component,
> +                                              RuntimeComponentReference 
> reference,
> +                                              DistributedSCABinding 
> binding,
> +                                              ServletHost servletHost,
> +                                              MessageFactory 
> messageFactory) {
> +        this.component = component;
> +        this.reference = reference;
> +        this.binding = binding.getSCABinding();
> +        this.servletHost = servletHost;
> +        this.messageFactory = messageFactory;
> +
> +        wsBinding = (new 
> DefaultWebServiceBindingFactory()).createWebServiceBinding();
> +
> +        // fix up the minimal things required to get the ws binding 
> going.
> +
> +        // Turn the java interface contract into a wsdl interface 
> contract
> +        InterfaceContract contract = reference.getInterfaceContract();
> +        if ((contract instanceof JavaInterfaceContract)) {
> +            contract = 
> Java2WSDLHelper.createWSDLInterfaceContract((JavaInterfaceContract)contract);
> +        }
> +
> +        // Set to use the Axiom data binding
> + 
> contract.getInterface().setDefaultDataBinding(OMElement.class.getName());
> +
> +        wsBinding.setBindingInterfaceContract(contract);
> +        wsBinding.setName(this.binding.getName());
> +
> +        axisReferenceBindingProvider = new 
> Axis2ReferenceBindingProvider(component,
> + 
> reference,
> + 
> wsBinding,
> + 
> servletHost,
> + 
> messageFactory);
> +        // make an EPR to share between all the invokers as the
> +        // endpoint is not know until start time
> +        serviceEPR = new EndpointReferenceImpl("");
> +    }
> +
> +    public InterfaceContract getBindingInterfaceContract() {
> +        return wsBinding.getBindingInterfaceContract();
> +    }
> +
> +    public boolean supportsAsyncOneWayInvocation() {
> +        return false;
> +    }
> +
> +    public Invoker createInvoker(Operation operation) {
> +        //return axisReferenceBindingProvider.createInvoker(operation);
> +        return new Axis2SCABindingInvoker(serviceEPR, 
> axisReferenceBindingProvider.createInvoker(operation));
> +    }
> +
> +    @Deprecated
> +    public Invoker createInvoker(Operation operation, boolean isCallback) 
> {
> +        if (isCallback) {
> +            throw new UnsupportedOperationException();
> +        } else {
> +            return createInvoker(operation);
> +        }
> +    }
> +
> +    public void start() {
> +
> +        // look up the endpoint of the service that will be invoked
> +        // through this binding
> +        DistributedSCADomain distributedDomain = 
> ((SCABindingImpl)binding).getDistributedDomain();
> +        ServiceDiscovery serviceDiscovery = 
> distributedDomain.getServiceDiscovery();
> +
> +        String serviceUrl = 
> serviceDiscovery.findServiceEndpoint(distributedDomain.getDomainName(),
> + 
> binding.getURI(),
> + 
> SCABinding.class.getName());
> +
> +        // If we find one set it into the EPR that is shared amonnst
> +        // the invokers this provider created
> +        if (serviceUrl == null){
> +            throw new ServiceNotFoundException();
> +        } else {
> +            serviceEPR.setURI(serviceUrl);
> +        }
> +
> +    }
> +
> +    public void stop() {
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceBindingProvider.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,141 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.impl;
> +
> +import java.net.URI;
> +
> +import javax.xml.namespace.QName;
> +
> +import org.apache.axiom.om.OMElement;
> +import org.apache.tuscany.sca.assembly.Binding;
> +import org.apache.tuscany.sca.assembly.SCABinding;
> +import org.apache.tuscany.sca.binding.axis2.Axis2ServiceClient;
> +import org.apache.tuscany.sca.binding.axis2.Axis2ServiceProvider;
> +import org.apache.tuscany.sca.binding.axis2.Java2WSDLHelper;
> +import org.apache.tuscany.sca.binding.sca.DistributedSCABinding;
> +import org.apache.tuscany.sca.binding.ws.DefaultWebServiceBindingFactory;
> +import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
> +import 
> org.apache.tuscany.sca.binding.ws.impl.WebServiceBindingFactoryImpl;
> +import org.apache.tuscany.sca.binding.ws.impl.WebServiceBindingImpl;
> +import org.apache.tuscany.sca.core.ExtensionPointRegistry;
> +import org.apache.tuscany.sca.http.ServletHost;
> +import org.apache.tuscany.sca.interfacedef.InterfaceContract;
> +import org.apache.tuscany.sca.interfacedef.Operation;
> +import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
> +import org.apache.tuscany.sca.invocation.Interceptor;
> +import org.apache.tuscany.sca.invocation.InvocationChain;
> +import org.apache.tuscany.sca.invocation.Invoker;
> +import org.apache.tuscany.sca.invocation.MessageFactory;
> +import org.apache.tuscany.sca.provider.ServiceBindingProvider2;
> +import org.apache.tuscany.sca.runtime.EndpointReference;
> +import org.apache.tuscany.sca.runtime.RuntimeComponent;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentService;
> +import org.apache.tuscany.sca.runtime.RuntimeWire;
> +
> +/**
> + * @version $Rev: 563772 $ $Date: 2007-08-08 07:50:49 +0100 (Wed, 08 Aug 
> 2007) $
> + */
> +public class Axis2SCAServiceBindingProvider implements 
> ServiceBindingProvider2 {
> +
> +    private RuntimeComponent component;
> +    private RuntimeComponentService service;
> +    private SCABinding binding;
> +    private ServletHost servletHost;
> +    private MessageFactory messageFactory;
> +
> +    private Axis2ServiceProvider axisProvider;
> +    private WebServiceBinding wsBinding;
> +
> +    private boolean started = false;
> +
> +
> +    public Axis2SCAServiceBindingProvider(RuntimeComponent component,
> +                                          RuntimeComponentService 
> service,
> +                                          DistributedSCABinding binding,
> +                                          ServletHost servletHost,
> +                                          MessageFactory messageFactory) 
> {
> +        this.component = component;
> +        this.service = service;
> +        this.binding = binding.getSCABinding();
> +        this.servletHost = servletHost;
> +        this.messageFactory = messageFactory;
> +
> +        wsBinding = (new 
> DefaultWebServiceBindingFactory()).createWebServiceBinding();
> +
> +        // fix up the minimal things required to get the ws binding 
> going.
> +
> +        // Turn the java interface contract into a wsdl interface 
> contract
> +        InterfaceContract contract = service.getInterfaceContract();
> +        if ((contract instanceof JavaInterfaceContract)) {
> +            contract = 
> Java2WSDLHelper.createWSDLInterfaceContract((JavaInterfaceContract)contract);
> +        }
> +
> +        // Set to use the Axiom data binding
> + 
> contract.getInterface().setDefaultDataBinding(OMElement.class.getName());
> +
> +        wsBinding.setBindingInterfaceContract(contract);
> +        wsBinding.setName(this.binding.getName());
> +
> +        // only pass on the uri if it absolute, i.e. come from the uri 
> attribute
> +        // of the sca binding. The axis binding will sort it out for 
> itself if
> +        // it's relative
> +        URI bindingURI = URI.create(this.binding.getURI());
> +        if (bindingURI.isAbsolute()){
> +            wsBinding.setURI(this.binding.getURI());
> +        }
> +
> +        axisProvider = new Axis2SCAServiceProvider(component,
> +                                                   service,
> +                                                   this.binding,
> +                                                   wsBinding,
> +                                                   servletHost,
> +                                                   messageFactory);
> +
> +        this.binding.setURI(wsBinding.getURI());
> +    }
> +
> +    public InterfaceContract getBindingInterfaceContract() {
> +        return wsBinding.getBindingInterfaceContract();
> +    }
> +
> +    public boolean supportsAsyncOneWayInvocation() {
> +        return false;
> +    }
> +
> +    public Invoker createCallbackInvoker(Operation operation) {
> +        throw new UnsupportedOperationException();
> +    }
> +
> +    public void start() {
> +        if (started) {
> +            return;
> +        } else {
> +            started = true;
> +        }
> +
> +        axisProvider.start();
> +    }
> +
> +    public void stop() {
> +        axisProvider.stop();
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/java/org/apache/tuscany/sca/binding/sca/axis2/impl/Axis2SCAServiceProvider.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,121 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.impl;
> +
> +import java.lang.reflect.InvocationTargetException;
> +import java.net.URI;
> +import java.util.Iterator;
> +
> +import org.apache.axis2.AxisFault;
> +import org.apache.axis2.Constants;
> +import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.deployment.util.Utils;
> +import org.apache.axis2.description.AxisOperation;
> +import org.apache.axis2.description.AxisService;
> +import org.apache.axis2.description.Parameter;
> +import org.apache.axis2.description.WSDL2Constants;
> +import org.apache.axis2.engine.MessageReceiver;
> +import org.apache.tuscany.sca.assembly.AbstractContract;
> +import org.apache.tuscany.sca.assembly.Binding;
> +import org.apache.tuscany.sca.assembly.SCABinding;
> +import 
> org.apache.tuscany.sca.binding.axis2.Axis2ServiceInMessageReceiver;
> +import 
> org.apache.tuscany.sca.binding.axis2.Axis2ServiceInOutSyncMessageReceiver;
> +import org.apache.tuscany.sca.binding.axis2.Axis2ServiceProvider;
> +import org.apache.tuscany.sca.binding.axis2.Axis2ServiceServlet;
> +import org.apache.tuscany.sca.binding.axis2.TuscanyAxisConfigurator;
> +import org.apache.tuscany.sca.binding.sca.DistributedSCABinding;
> +import org.apache.tuscany.sca.binding.ws.DefaultWebServiceBindingFactory;
> +import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
> +import org.apache.tuscany.sca.core.invocation.ThreadMessageContext;
> +import org.apache.tuscany.sca.core.runtime.EndpointReferenceImpl;
> +import org.apache.tuscany.sca.http.ServletHost;
> +import org.apache.tuscany.sca.interfacedef.Interface;
> +import org.apache.tuscany.sca.interfacedef.InterfaceContract;
> +import org.apache.tuscany.sca.interfacedef.Operation;
> +import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
> +import org.apache.tuscany.sca.invocation.Invoker;
> +import org.apache.tuscany.sca.invocation.Message;
> +import org.apache.tuscany.sca.invocation.MessageFactory;
> +import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
> +import org.apache.tuscany.sca.runtime.RuntimeComponent;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
> +import org.apache.tuscany.sca.runtime.RuntimeComponentService;
> +
> +/**
> + * I'm trying to work out which bits are important in the Axis binding 
> implementation
> + * so I can generalize. Currently this uses the Axis binding service 
> provider
> + * but
> + *    - passes on a fake ws binding model
> + *    - on invoke finds the wire based on the sca bining and not the ws 
> binding
> + *
> + * @version $Rev: 563772 $ $Date: 2007-08-08 07:50:49 +0100 (Wed, 08 Aug 
> 2007) $
> + */
> +public class Axis2SCAServiceProvider extends Axis2ServiceProvider {
> +
> +    private SCABinding binding;
> +
> +    private AbstractContract contract;
> +    private WebServiceBinding wsBinding;
> +    private ServletHost servletHost;
> +    private MessageFactory messageFactory;
> +    private ConfigurationContext configContext;
> +
> +    /**
> +     * Switch in the fake ws binding
> +     *
> +     * @param component
> +     * @param service
> +     * @param binding
> +     * @param wsBinding
> +     * @param servletHost
> +     * @param messageFactory
> +     */
> +    public Axis2SCAServiceProvider(RuntimeComponent component,
> +                                   RuntimeComponentService service,
> +                                   SCABinding binding,
> +                                   WebServiceBinding wsBinding,
> +                                   ServletHost servletHost,
> +                                   MessageFactory messageFactory)  {
> +
> +        super(component,
> +                service,
> +                wsBinding,
> +                servletHost,
> +                messageFactory);
> +
> +        this.contract = service;
> +        this.wsBinding = wsBinding;
> +        this.servletHost = servletHost;
> +        this.messageFactory = messageFactory;
> +
> +        this.binding = binding;
> +    }
> +
> +    /**
> +     * Return the sca binding as wires will be registered against this 
> rather
> +     * than against the wsBinding that the Axis2SCAServiceProvider is
> +     * expecting
> +     *
> +     * @return the binding
> +     */
> +    protected Binding getBinding(){
> +        return binding;
> +    }
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,19 @@
> +# 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.
> +
> +# Implementation class for the binding extension
> +org.apache.tuscany.sca.binding.sca.axis2.impl.Axis2SCABindingProviderFactory;model=org.apache.tuscany.sca.binding.sca.DistributedSCABinding
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/BaseTest.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/BaseTest.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/BaseTest.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/BaseTest.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,154 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +package org.apache.tuscany.sca.binding.sca.axis2;
> +
> +import java.io.File;
> +import java.net.URL;
> +
> +import junit.framework.Assert;
> +
> +import org.apache.tuscany.sca.assembly.Composite;
> +import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorld;
> +import org.apache.tuscany.sca.contribution.Contribution;
> +import org.apache.tuscany.sca.contribution.service.ContributionService;
> +import org.apache.tuscany.sca.distributed.domain.DistributedSCADomain;
> +import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
> +import org.junit.AfterClass;
> +import org.junit.BeforeClass;
> +import org.junit.Test;
> +
> +public class BaseTest {
> +
> +    public static String DEFULT_DOMAIN_NAME = "mydomain";
> +
> +    public static DistributedSCADomain distributedDomainA;
> +    public static DistributedSCADomain distributedDomainB;
> +    public static EmbeddedSCADomain domainA;
> +    public static EmbeddedSCADomain domainB;
> +    public static HelloWorld helloWorldClientA;
> +    public static HelloWorld helloWorldClientB;
> +
> +    @BeforeClass
> +    public static void init() throws Exception {
> +        System.out.println("Setting up distributed nodes");
> +        ClassLoader cl = BaseTest.class.getClassLoader();
> +
> +        try {
> +            // create nodeA to run clients
> +            String nodeName = "nodeA";
> +
> +            // Create the distributed domain representation
> +            distributedDomainA = new 
> TestDistributedSCADomainImpl(DEFULT_DOMAIN_NAME);
> +            distributedDomainA.setNodeName(nodeName);
> +
> +            // create and start domainA
> +            domainA = new EmbeddedSCADomain(cl, DEFULT_DOMAIN_NAME);
> +            domainA.start();
> +
> +            // add a contribution to A
> +            ContributionService contributionService = 
> domainA.getContributionService();
> +
> +            // find the current directory as a URL. This is where our 
> contribution
> +            // will come from
> +            File currentDirectory = new File (".");
> +            URL contributionURL = new URL("file:/" + 
> currentDirectory.getCanonicalPath() + "/src/test/resources/" + nodeName + 
> "/");
> +
> +
> +            // Contribute the SCA application
> +            Contribution contribution = 
> contributionService.contribute("http://calculator",
> + 
> contributionURL,
> +                                                          null, 
> //resolver,
> +                                                          false);
> +            Composite composite = contribution.getDeployables().get(0);
> +
> +            // Add the deployable composite to the domain
> +            domainA.getDomainComposite().getIncludes().add(composite);
> +            domainA.getCompositeBuilder().build(composite);
> +
> +            distributedDomainA.addDistributedDomainToBindings(composite);
> +
> +            domainA.getCompositeActivator().activate(composite);
> +
> +
> +            // create nodeB to run remote services
> +            nodeName = "nodeB";
> +
> +            // Create the distributed domain representation
> +            distributedDomainB = new 
> TestDistributedSCADomainImpl(DEFULT_DOMAIN_NAME);
> +            distributedDomainB.setNodeName(nodeName);
> +
> +            // create and start domainB
> +            domainB = new EmbeddedSCADomain(cl, DEFULT_DOMAIN_NAME);
> +            domainB.start();
> +
> +            // add a contribution to B
> +            contributionService = domainB.getContributionService();
> +
> +            // find the current directory as a URL. This is where our 
> contribution
> +            // will come from
> +            contributionURL = new URL("file:/" + 
> currentDirectory.getCanonicalPath() + "/src/test/resources/" + nodeName + 
> "/");
> +
> +
> +            // Contribute the SCA application
> +            contribution = 
> contributionService.contribute("http://calculator",
> + 
> contributionURL,
> +                                                          null, 
> //resolver,
> +                                                          false);
> +            composite = contribution.getDeployables().get(0);
> +
> +            // Add the deployable composite to the domain
> +            domainB.getDomainComposite().getIncludes().add(composite);
> +            domainB.getCompositeBuilder().build(composite);
> +
> +            distributedDomainB.addDistributedDomainToBindings(composite);
> +
> +            domainB.getCompositeActivator().activate(composite);
> +
> +
> +            // Start node A
> +            for (Composite compositeA : 
> domainA.getDomainComposite().getIncludes() ){
> +                domainA.getCompositeActivator().start(compositeA);
> +            }
> +
> +            // start node B
> +            for (Composite compositeB : 
> domainB.getDomainComposite().getIncludes() ){
> +                domainB.getCompositeActivator().start(composite);
> +            }
> +
> +        } catch(Exception ex) {
> +            System.err.println("Exception when creating domain " + 
> ex.getMessage());
> +            ex.printStackTrace(System.err);
> +            throw ex;
> +        }
> +
> +        // get a reference to the calculator service from domainA
> +        // which will be running this component
> +        helloWorldClientA = domainA.getService(HelloWorld.class, 
> "HelloWorldClient");
> +        //helloWorldClientB = domainB.getService(HelloWorld.class, 
> "HelloWorldClient");
> +
> +   }
> +
> +    @AfterClass
> +    public static void destroy() throws Exception {
> +        // stop the nodes and hence the domains they contain
> +        domainA.stop();
> +        domainB.stop();
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/SimpleTestCase.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/SimpleTestCase.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/SimpleTestCase.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/SimpleTestCase.java 
> Tue Aug 14 02:57:15 2007
> @@ -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 org.apache.tuscany.sca.binding.sca.axis2;
> +
> +import junit.framework.Assert;
> +
> +import org.junit.Test;
> +
> +public class SimpleTestCase extends BaseTest {
> +
> +    @Test
> +    public void testHelloWorld() throws Exception {
> +
> +        System.out.println(helloWorldClientA.getGreetings("fred"));
> +
> +        // Calculate
> +        Assert.assertEquals(helloWorldClientA.getGreetings("fred"), 
> "Hello fred");
> +
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDistributedSCADomainImpl.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDistributedSCADomainImpl.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDistributedSCADomainImpl.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDistributedSCADomainImpl.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,126 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2;
> +
> +import org.apache.tuscany.sca.assembly.Binding;
> +import org.apache.tuscany.sca.assembly.Component;
> +import org.apache.tuscany.sca.assembly.ComponentReference;
> +import org.apache.tuscany.sca.assembly.ComponentService;
> +import org.apache.tuscany.sca.assembly.Composite;
> +import org.apache.tuscany.sca.assembly.SCABinding;
> +import org.apache.tuscany.sca.binding.sca.impl.SCABindingImpl;
> +import org.apache.tuscany.sca.distributed.domain.DistributedSCADomain;
> +import org.apache.tuscany.sca.distributed.management.ServiceDiscovery;
> +import org.apache.tuscany.sca.host.embedded.SCADomain;
> +import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
> +
> +/**
> + * A local representation of the sca domain distributed across a number
> + * of separate nodes. This provides access to various information 
> relating
> + * to the distributed domain
> + *
> + * @version $Rev: 552343 $ $Date: 2007-07-01 18:43:40 +0100 (Sun, 01 Jul 
> 2007) $
> + */
> +public class TestDistributedSCADomainImpl implements DistributedSCADomain 
> {
> +
> +    private String nodeName;
> +    private String domainName;
> +    private static ServiceDiscovery serviceDiscovery;
> +
> +    public TestDistributedSCADomainImpl(String domainName){
> +        this.domainName = domainName;
> +
> +        if (serviceDiscovery == null) {
> +            serviceDiscovery = new TestServiceDiscoveryImpl();
> +        }
> +    }
> +
> +    /**
> +     * Returns the name of the node that this part of the
> +     * distributed domain is running on
> +     *
> +     * @return the node name
> +     */
> +    public String getNodeName(){
> +        return nodeName;
> +    }
> +
> +    public void setNodeName(String nodeName){
> +        this.nodeName = nodeName;
> +    }
> +
> +    public String getDomainName(){
> +        return domainName;
> +    }
> +
> +    public void setDomainName(String domainName){
> +        this.domainName = domainName;
> +    }
> +
> +    public ServiceDiscovery getServiceDiscovery(){
> +        return serviceDiscovery;
> +    }
> +
> +    public void addDistributedDomainToBindings(Composite composite){
> +        // traverse the composite adding in the distributed domain
> +        // reference into all sca bindings.
> +        for(Component component : composite.getComponents()){
> +            for (ComponentService service : component.getServices()) {
> +                for(Binding binding : service.getBindings()){
> +                    if (binding instanceof SCABinding) {
> +                        // TODO could do with changing the sca binding 
> SPI
> +                        // to carry this piece of information
> +                        SCABindingImpl scaBinding = 
> (SCABindingImpl)binding;
> +                        scaBinding.setDistributedDomain(this);
> +                    }
> +                }
> +            }
> +
> +            for (ComponentReference reference : 
> component.getReferences()) {
> +                for(Binding binding : reference.getBindings()){
> +                    if (binding instanceof SCABinding) {
> +                        // TODO could do with changing the sca binding 
> SPI
> +                        // to carry this piece of information
> +                        SCABindingImpl scaBinding = 
> (SCABindingImpl)binding;
> +                        scaBinding.setDistributedDomain(this);
> +                    }
> +                }
> +
> +                // and reference targets. strange one this but the wiring 
> puts
> +                // all the bindings into a references target if the 
> target remains
> +                // unresolved after building
> +                // This actually the only ones we really need to set as 
> by now
> +                // the service and reference bindings will already be 
> resolved
> +                // but it's not doing any hame for the time being
> +                for ( ComponentService target : reference.getTargets()){
> +                    for(Binding binding : target.getBindings()){
> +                        if (binding instanceof SCABinding) {
> +                            // TODO could do with changing the sca 
> binding SPI
> +                            // to carry this piece of information
> +                            SCABindingImpl scaBinding = 
> (SCABindingImpl)binding;
> +                            scaBinding.setDistributedDomain(this);
> +                        }
> +                    }
> +                }
> +            }
> +        }
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestServiceDiscoveryImpl.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestServiceDiscoveryImpl.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestServiceDiscoveryImpl.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestServiceDiscoveryImpl.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,115 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2;
> +
> +import java.util.ArrayList;
> +import java.util.List;
> +
> +import org.apache.tuscany.sca.distributed.management.ServiceDiscovery;
> +
> +
> +/**
> + * Stores details of services exposed and retrieves details of remote 
> services
> + *
> + * @version $Rev: 552343 $ $Date: 2007-07-01 18:43:40 +0100 (Sun, 01 Jul 
> 2007) $
> + */
> +public class TestServiceDiscoveryImpl implements ServiceDiscovery{
> +
> +    List<ServiceEndpoint> serviceEndpoints = new 
> ArrayList<ServiceEndpoint>();
> +
> +    public class ServiceEndpoint {
> +        private String domainUri;
> +        private String nodeUri;
> +        private String serviceName;
> +        private String bindingName;
> +        private String url;
> +
> +        public ServiceEndpoint(String domainUri, String nodeUri, String 
> serviceName, String bindingName, String URL){
> +            this.domainUri = domainUri;
> +            this.nodeUri = nodeUri;
> +            this.serviceName = serviceName;
> +            this.bindingName = bindingName;
> +            this.url = URL;
> +        }
> +
> +        public boolean match(String domainUri, String serviceName, String 
> bindingName) {
> +            return ((this.domainUri.equals(domainUri)) &&
> +                    (this.serviceName.equals(serviceName)) &&
> +                    (this.bindingName.equals(bindingName)));
> +        }
> +
> +        public String getUrl() {
> +            return url;
> +        }
> +
> +        public String toString (){
> +            return "[" +
> +                   domainUri + " " +
> +                   nodeUri + " " +
> +                   serviceName + " " +
> +                   bindingName + " " +
> +                   url +
> +                   "]";
> +        }
> +    }
> +
> +    /**
> +     * Accepts information about a service endpoint and holds onto it
> +     *
> +     * @param domainUri the string uri for the distributed domain
> +     * @param nodeUri the string uri for the current node
> +     * @param serviceName the name of the service that is exposed and the 
> provided endpoint
> +     * @param bindingName the remote binding that is providing the 
> endpoint
> +     * @param url the enpoint url
> +     */
> +    public void registerServiceEndpoint(String domainUri, String nodeUri, 
> String serviceName, String bindingName, String URL){
> +        ServiceEndpoint serviceEndpoint = new ServiceEndpoint (domainUri, 
> nodeUri, serviceName, bindingName, URL);
> +        serviceEndpoints.add(serviceEndpoint);
> +        System.err.println("Registering service: " + 
> serviceEndpoint.toString());
> +    }
> +
> +
> +    /**
> +     * Locates information about a service endpoint
> +     *
> +     * @param domainUri the string uri for the distributed domain
> +     * @param serviceName the name of the service that is exposed and the 
> provided endpoint
> +     * @param bindingName the remote binding that we want to find an 
> endpoint for
> +     * @return url the endpoint url
> +     */
> +    public String findServiceEndpoint(String domainUri, String 
> serviceName, String bindingName){
> +        System.err.println("Finding service: [" +
> +                           domainUri + " " +
> +                           serviceName + " " +
> +                           bindingName +
> +                           "]");
> +
> +        String url = null;
> +
> +        for(ServiceEndpoint serviceEndpoint : serviceEndpoints){
> +            if ( serviceEndpoint.match(domainUri, serviceName, 
> bindingName)){
> +                url = serviceEndpoint.getUrl();
> +                System.err.println("Matching service url: " + url);
> +            }
> +        }
> +        return url;
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorld.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorld.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorld.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorld.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,28 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.helloworld;
> +
> +import org.osoa.sca.annotations.Remotable;
> +
> +public interface HelloWorld {
> +
> +    public String getGreetings(String s);
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorldRemote.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorldRemote.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorldRemote.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/HelloWorldRemote.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,29 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.helloworld;
> +
> +import org.osoa.sca.annotations.Remotable;
> +
> +@Remotable
> +public interface HelloWorldRemote {
> +
> +    public String getGreetings(String s);
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClient.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClient.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClient.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClient.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,35 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.helloworld.impl;
> +
> +import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorld;
> +import 
> org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldRemote;
> +import org.osoa.sca.annotations.Reference;
> +
> +public class HelloWorldClient implements HelloWorld {
> +
> +    @Reference
> +    public HelloWorldRemote helloWorldWS;
> +
> +    public String getGreetings(String s) {
> +        return helloWorldWS.getGreetings(s);
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldService.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldService.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldService.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldService.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,30 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.helloworld.impl;
> +
> +import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorld;
> +
> +public class HelloWorldService implements HelloWorld {
> +
> +    public String getGreetings(String s) {
> +        return "Hello " + s;
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceRemote.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceRemote.java?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceRemote.java 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldServiceRemote.java 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,30 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.tuscany.sca.binding.sca.axis2.helloworld.impl;
> +
> +import 
> org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldRemote;
> +
> +public class HelloWorldServiceRemote implements HelloWorldRemote {
> +
> +    public String getGreetings(String s) {
> +        return "Hello " + s;
> +    }
> +
> +}
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/HelloWorld.composite
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/HelloWorld.composite?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/HelloWorld.composite 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/HelloWorld.composite 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,30 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!--
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> +-->
> +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> +           targetNamespace="http://sample"
> +           xmlns:sample="http://sample"
> +           name="HelloWorld">
> +
> +    <component name="HelloWorldClient">
> + <implementation.java 
> class="org.apache.tuscany.sca.binding.sca.axis2.helloworld.impl.HelloWorldClient" 
> />
> +        <reference name="helloWorldWS" target="HelloWorldService" />
> +    </component>
> +
> +</composite>
>
> Added: 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/META-INF/sca-contribution.xml
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/META-INF/sca-contribution.xml?view=auto&rev=565684
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/META-INF/sca-contribution.xml 
> (added)
> +++ 
> incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/resources/nodeA/META-INF/sca-contribution.xml 
> Tue Aug 14 02:57:15 2007
> @@ -0,0 +1,24 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!--
> +    * Licensed to the Apache Software Foundation (ASF) under one
> +    * or more contributor license agreements.  See the NOTICE file
> +    * distributed with this work for additional information
> +    * regarding copyright ownership.  The ASF licenses this file
> +    * to you under the Apache License, Version 2.0 (the
> +    * "License"); you may not use this file except in compliance
> +    * with the License.  You may obtain a copy of the License at
> +    *
> +    *   http://www.apache.org/licenses/LICENSE-2.0
> +    *
> +    * Unless required by applicable law or agreed to in writing,
> +    * software distributed under the License is distributed on an
> +    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +    * KIND, either express or implied.  See the License for the
> +    * specific language governing permissions and limitations
> +    * under the License.
> +-->
> +<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
> +       targetNamespace="http://sample"
> +              xmlns:sample="http://sample">
> +   <deployable composite="sample:HelloWorld"/>
> +</contribution>
> \ No newline at end of file
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-commits-help@ws.apache.org
> 


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