From d5f1d093fe6fa491cdec392dca7137639e98d149 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Mon, 15 Sep 2008 00:26:00 +0000 Subject: Pulled a recent revision of trunk into the sca-android branch, to apply the android patches from JIRA TUSCANY-2440 to it. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@695318 13f79535-47bb-0310-9956-ffa450edef68 --- .../tools/eclipse/features/core/.project | 30 ++ .../tools/eclipse/features/core/LICENSE | 205 ++++++++++++ .../eclipse/features/core/META-INF/MANIFEST.MF | 6 + .../sca-android/tools/eclipse/features/core/NOTICE | 6 + .../tools/eclipse/features/core/build.properties | 10 + .../tools/eclipse/features/core/feature.xml | 72 +++++ .../tools/eclipse/features/core/pom.xml | 57 ++++ .../tools/eclipse/plugins/core/.project | 17 + .../sca-android/tools/eclipse/plugins/core/LICENSE | 205 ++++++++++++ .../eclipse/plugins/core/META-INF/MANIFEST.MF | 31 ++ .../sca-android/tools/eclipse/plugins/core/NOTICE | 12 + .../tools/eclipse/plugins/core/build.properties | 23 ++ .../plugins/core/exsd/runtimeLibraries.exsd | 109 +++++++ .../tools/eclipse/plugins/core/icons/t.gif | Bin 0 -> 877 bytes .../tools/eclipse/plugins/core/icons/tuscany.gif | Bin 0 -> 5603 bytes .../tuscany/sca/core/classpath/ClasspathUtil.java | 170 ++++++++++ .../core/classpath/TuscanyClasspathContainer.java | 154 +++++++++ .../TuscanyClasspathContainerInitializer.java | 50 +++ .../core/classpath/TuscanyLibraryEntryPage.java | 69 ++++ .../TuscanyRuntimeClasspathContainer.java | 89 ++++++ .../sca/core/launch/DomainManagerLauncherUtil.java | 255 +++++++++++++++ .../tuscany/sca/core/launch/NodeLauncherUtil.java | 244 ++++++++++++++ .../launch/TuscanyLaunchConfigurationDelegate.java | 75 +++++ .../launch/TuscanyLaunchConfigurationTabGroup.java | 48 +++ .../launch/TuscanyLaunchDomainManagerAction.java | 79 +++++ .../sca/core/launch/TuscanyLaunchNodeFilter.java | 29 ++ .../sca/core/launch/TuscanyLaunchNodeShortcut.java | 88 ++++++ .../org/apache/tuscany/sca/core/log/LogUtil.java | 39 +++ .../core/newwizards/NewComponentTypeWizard.java | 53 ++++ .../newwizards/NewComponentTypeWizardPage.java | 98 ++++++ .../sca/core/newwizards/NewCompositeWizard.java | 53 ++++ .../core/newwizards/NewCompositeWizardPage.java | 105 +++++++ .../tools/eclipse/plugins/core/plugin.xml | 149 +++++++++ .../sca-android/tools/eclipse/plugins/core/pom.xml | 102 ++++++ .../tools/eclipse/plugins/core/xsd/sca-all.xsd | 34 ++ .../eclipse/plugins/core/xsd/sca-binding-ejb.xsd | 43 +++ .../eclipse/plugins/core/xsd/sca-binding-jms.xsd | 135 ++++++++ .../eclipse/plugins/core/xsd/sca-binding-sca.xsd | 23 ++ .../plugins/core/xsd/sca-binding-webservice.xsd | 26 ++ .../eclipse/plugins/core/xsd/sca-contribution.xsd | 38 +++ .../tools/eclipse/plugins/core/xsd/sca-core.xsd | 350 +++++++++++++++++++++ .../eclipse/plugins/core/xsd/sca-definitions.xsd | 25 ++ .../plugins/core/xsd/sca-implementation-bpel.xsd | 43 +++ .../core/xsd/sca-implementation-composite.xsd | 23 ++ .../plugins/core/xsd/sca-implementation-cpp.xsd | 53 ++++ .../plugins/core/xsd/sca-implementation-ejb.xsd | 25 ++ .../plugins/core/xsd/sca-implementation-java.xsd | 24 ++ .../plugins/core/xsd/sca-implementation-spring.xsd | 24 ++ .../eclipse/plugins/core/xsd/sca-interface-cpp.xsd | 40 +++ .../plugins/core/xsd/sca-interface-java.xsd | 23 ++ .../plugins/core/xsd/sca-interface-wsdl.xsd | 23 ++ .../tools/eclipse/plugins/core/xsd/sca-policy.xsd | 76 +++++ .../tools/eclipse/plugins/core/xsd/sca.xsd | 22 ++ .../plugins/core/xsd/tuscany-sca-binding-atom.xsd | 41 +++ .../plugins/core/xsd/tuscany-sca-binding-dwr.xsd | 40 +++ .../plugins/core/xsd/tuscany-sca-binding-http.xsd | 40 +++ .../core/xsd/tuscany-sca-binding-jsonrpc.xsd | 40 +++ .../core/xsd/tuscany-sca-binding-notification.xsd | 42 +++ .../plugins/core/xsd/tuscany-sca-binding-rmi.xsd | 43 +++ .../plugins/core/xsd/tuscany-sca-binding-rss.xsd | 41 +++ .../core/xsd/tuscany-sca-implementation-node.xsd | 43 +++ .../tuscany-sca-implementation-notification.xsd | 42 +++ .../core/xsd/tuscany-sca-implementation-osgi.xsd | 43 +++ .../xsd/tuscany-sca-implementation-resource.xsd | 42 +++ .../core/xsd/tuscany-sca-implementation-script.xsd | 43 +++ .../core/xsd/tuscany-sca-implementation-widget.xsd | 42 +++ .../core/xsd/tuscany-sca-implementation-xquery.xsd | 42 +++ .../tools/eclipse/plugins/core/xsd/tuscany-sca.xsd | 45 +++ branches/sca-android/tools/eclipse/pom.xml | 47 +++ .../tools/eclipse/site/updatesite/.project | 24 ++ .../tools/eclipse/site/updatesite/LICENSE | 205 ++++++++++++ .../tools/eclipse/site/updatesite/NOTICE | 6 + .../tools/eclipse/site/updatesite/pom.xml | 85 +++++ .../tools/eclipse/site/updatesite/site.xml | 36 +++ .../updatesite/src/main/assembly/updatesite.xml | 58 ++++ 75 files changed, 4872 insertions(+) create mode 100644 branches/sca-android/tools/eclipse/features/core/.project create mode 100644 branches/sca-android/tools/eclipse/features/core/LICENSE create mode 100644 branches/sca-android/tools/eclipse/features/core/META-INF/MANIFEST.MF create mode 100644 branches/sca-android/tools/eclipse/features/core/NOTICE create mode 100644 branches/sca-android/tools/eclipse/features/core/build.properties create mode 100644 branches/sca-android/tools/eclipse/features/core/feature.xml create mode 100644 branches/sca-android/tools/eclipse/features/core/pom.xml create mode 100644 branches/sca-android/tools/eclipse/plugins/core/.project create mode 100644 branches/sca-android/tools/eclipse/plugins/core/LICENSE create mode 100644 branches/sca-android/tools/eclipse/plugins/core/META-INF/MANIFEST.MF create mode 100644 branches/sca-android/tools/eclipse/plugins/core/NOTICE create mode 100644 branches/sca-android/tools/eclipse/plugins/core/build.properties create mode 100644 branches/sca-android/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/icons/t.gif create mode 100644 branches/sca-android/tools/eclipse/plugins/core/icons/tuscany.gif create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainerInitializer.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyLibraryEntryPage.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationTabGroup.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchDomainManagerAction.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeFilter.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeShortcut.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/log/LogUtil.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizard.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizardPage.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizard.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizardPage.java create mode 100644 branches/sca-android/tools/eclipse/plugins/core/plugin.xml create mode 100644 branches/sca-android/tools/eclipse/plugins/core/pom.xml create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-all.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-ejb.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-jms.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-sca.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-webservice.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-contribution.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-core.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-definitions.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-bpel.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-composite.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-cpp.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-ejb.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-java.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-spring.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-cpp.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-java.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-wsdl.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca-policy.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/sca.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-atom.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-dwr.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-http.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-jsonrpc.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-notification.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rmi.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rss.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-node.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-notification.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-osgi.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-resource.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-script.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-widget.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-xquery.xsd create mode 100644 branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca.xsd create mode 100644 branches/sca-android/tools/eclipse/pom.xml create mode 100644 branches/sca-android/tools/eclipse/site/updatesite/.project create mode 100644 branches/sca-android/tools/eclipse/site/updatesite/LICENSE create mode 100644 branches/sca-android/tools/eclipse/site/updatesite/NOTICE create mode 100644 branches/sca-android/tools/eclipse/site/updatesite/pom.xml create mode 100644 branches/sca-android/tools/eclipse/site/updatesite/site.xml create mode 100644 branches/sca-android/tools/eclipse/site/updatesite/src/main/assembly/updatesite.xml (limited to 'branches/sca-android/tools/eclipse') diff --git a/branches/sca-android/tools/eclipse/features/core/.project b/branches/sca-android/tools/eclipse/features/core/.project new file mode 100644 index 0000000000..762ebae4a1 --- /dev/null +++ b/branches/sca-android/tools/eclipse/features/core/.project @@ -0,0 +1,30 @@ + + org.apache.tuscany.sca.feature.core + The Apache Software Foundation provides support for the Apache community of open-source software projects. + The Apache projects are characterized by a collaborative, consensus based development process, an open and + pragmatic software license, and a desire to create high quality software that leads the way in its field. + We consider ourselves not simply a group of projects sharing a server, but rather a community of developers + and users. + + + + org.eclipse.pde.FeatureBuilder + + + org.eclipse.jdt.core.javabuilder + + + org.eclipse.wst.common.project.facet.core.builder + + + org.eclipse.wst.validation.validationbuilder + + + + org.eclipse.pde.FeatureNature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jem.workbench.JavaEMFNature + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/features/core/LICENSE b/branches/sca-android/tools/eclipse/features/core/LICENSE new file mode 100644 index 0000000000..8aa906c321 --- /dev/null +++ b/branches/sca-android/tools/eclipse/features/core/LICENSE @@ -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. + + + diff --git a/branches/sca-android/tools/eclipse/features/core/META-INF/MANIFEST.MF b/branches/sca-android/tools/eclipse/features/core/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..63215d7c6f --- /dev/null +++ b/branches/sca-android/tools/eclipse/features/core/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Apache Tuscany SCA Tools Core Feature +Bundle-SymbolicName: org.apache.tuscany.sca.feature.core +Bundle-Version: 1.4.0 +Bundle-Vendor: Apache Software Foundation diff --git a/branches/sca-android/tools/eclipse/features/core/NOTICE b/branches/sca-android/tools/eclipse/features/core/NOTICE new file mode 100644 index 0000000000..fdfa0e9faa --- /dev/null +++ b/branches/sca-android/tools/eclipse/features/core/NOTICE @@ -0,0 +1,6 @@ +${pom.name} +Copyright (c) 2005 - 2008 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + diff --git a/branches/sca-android/tools/eclipse/features/core/build.properties b/branches/sca-android/tools/eclipse/features/core/build.properties new file mode 100644 index 0000000000..f36e15c5d3 --- /dev/null +++ b/branches/sca-android/tools/eclipse/features/core/build.properties @@ -0,0 +1,10 @@ +bin.includes = feature.xml,\ + NOTICE,\ + LICENSE,\ + META-INF/ +src.includes = .project,\ + LICENSE,\ + NOTICE,\ + build.properties,\ + feature.xml,\ + META-INF/ diff --git a/branches/sca-android/tools/eclipse/features/core/feature.xml b/branches/sca-android/tools/eclipse/features/core/feature.xml new file mode 100644 index 0000000000..3a2d14a054 --- /dev/null +++ b/branches/sca-android/tools/eclipse/features/core/feature.xml @@ -0,0 +1,72 @@ + + + + + + + Apache Tuscany SCA Tools Core Feature. + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/features/core/pom.xml b/branches/sca-android/tools/eclipse/features/core/pom.xml new file mode 100644 index 0000000000..30756fe9d6 --- /dev/null +++ b/branches/sca-android/tools/eclipse/features/core/pom.xml @@ -0,0 +1,57 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca-eclipse-tools + 1.4-SNAPSHOT + ../../pom.xml + + org.apache.tuscany.sca.feature.core + Apache Tuscany SCA Eclipse Tools Core Feature + + + + + ${basedir} + + **/.*/** + pom.xml + build.* + target/** + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + META-INF/MANIFEST.MF + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/.project b/branches/sca-android/tools/eclipse/plugins/core/.project new file mode 100644 index 0000000000..6fc647ac07 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/.project @@ -0,0 +1,17 @@ + + org.apache.tuscany.sca.core + The Apache Software Foundation provides support for the Apache community of open-source software projects. + The Apache projects are characterized by a collaborative, consensus based development process, an open and + pragmatic software license, and a desire to create high quality software that leads the way in its field. + We consider ourselves not simply a group of projects sharing a server, but rather a community of developers + and users. + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.jdt.core.javanature + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/LICENSE b/branches/sca-android/tools/eclipse/plugins/core/LICENSE new file mode 100644 index 0000000000..8aa906c321 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/LICENSE @@ -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. + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/META-INF/MANIFEST.MF b/branches/sca-android/tools/eclipse/plugins/core/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..3096b99e66 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/META-INF/MANIFEST.MF @@ -0,0 +1,31 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Apache Tuscany SCA Tools Core Plugin +Bundle-SymbolicName: org.apache.tuscany.sca.core;singleton:=true +Bundle-Version: 1.4.0 +Import-Package: org.eclipse.core.resources, + org.eclipse.core.runtime, + org.eclipse.core.runtime.jobs, + org.eclipse.debug.core, + org.eclipse.debug.core.model, + org.eclipse.debug.ui, + org.eclipse.debug.ui.sourcelookup, + org.eclipse.jdt.core, + org.eclipse.jdt.debug.ui.launchConfigurations, + org.eclipse.jdt.launching, + org.eclipse.jdt.ui.wizards, + org.eclipse.jface.dialogs, + org.eclipse.jface.operation, + org.eclipse.jface.resource, + org.eclipse.jface.viewers, + org.eclipse.jface.wizard, + org.eclipse.osgi.service.datalocation;version="1.0.0", + org.eclipse.swt, + org.eclipse.swt.graphics, + org.eclipse.swt.widgets, + org.eclipse.ui, + org.eclipse.ui.progress, + org.osgi.framework;version="1.3.0" +Bundle-Vendor: Apache Software Foundation +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.eclipse.ui.ide diff --git a/branches/sca-android/tools/eclipse/plugins/core/NOTICE b/branches/sca-android/tools/eclipse/plugins/core/NOTICE new file mode 100644 index 0000000000..6dcfe88195 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/NOTICE @@ -0,0 +1,12 @@ +${pom.name} +Copyright (c) 2005 - 2008 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +This product also includes software under the SCA Collaboration license +(see the LICENSE file contained in this distribution), with the following +copyright: + +(c) Copyright SCA Collaboration 2006, 2007 + diff --git a/branches/sca-android/tools/eclipse/plugins/core/build.properties b/branches/sca-android/tools/eclipse/plugins/core/build.properties new file mode 100644 index 0000000000..c402b2eb45 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/build.properties @@ -0,0 +1,23 @@ +output.. = bin/ +bin.includes = META-INF/,\ + plugin.xml,\ + xsd/,\ + icons/,\ + .,\ + LICENSE,\ + NOTICE,\ + org/ +src.includes = xsd/,\ + plugin.xml,\ + .classpath,\ + .project,\ + LICENSE,\ + META-INF/,\ + NOTICE,\ + build.properties,\ + icons/,\ + .settings/,\ + org/,\ + pom.xml +jars.compile.order = . +source.. = . diff --git a/branches/sca-android/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd b/branches/sca-android/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd new file mode 100644 index 0000000000..700d056838 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd @@ -0,0 +1,109 @@ + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/icons/t.gif b/branches/sca-android/tools/eclipse/plugins/core/icons/t.gif new file mode 100644 index 0000000000..ba896ced08 Binary files /dev/null and b/branches/sca-android/tools/eclipse/plugins/core/icons/t.gif differ diff --git a/branches/sca-android/tools/eclipse/plugins/core/icons/tuscany.gif b/branches/sca-android/tools/eclipse/plugins/core/icons/tuscany.gif new file mode 100644 index 0000000000..849dd76d4a Binary files /dev/null and b/branches/sca-android/tools/eclipse/plugins/core/icons/tuscany.gif differ diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java new file mode 100644 index 0000000000..81ba746fd5 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java @@ -0,0 +1,170 @@ +/* + * 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.core.classpath; + +import static org.apache.tuscany.sca.core.log.LogUtil.error; + +import java.io.File; +import java.io.FileNotFoundException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExtension; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jdt.core.IClasspathContainer; +import org.eclipse.jdt.core.IClasspathEntry; + +/** + * Utility functions to help determine the runtime classpath. + * + * @version $Rev: $ $Date: $ + */ +public class ClasspathUtil { + + private static final String TUSCANY_RUNTIME_LIBRARIES = "org.apache.tuscany.sca.core.runtimeLibraries"; + + private static final String TUSCANY_FEATURE = "org.apache.tuscany.sca.feature.core"; + private static final String TUSCANY_VERSION = "1.4.0"; + + /** + * Return the installed runtime classpath entries. + * + * @return + * @throws CoreException + */ + public static String installedRuntimeClasspath() throws CoreException { + + List classpathEntries = new ArrayList(); + for (IExtension extension: Platform.getExtensionRegistry().getExtensionPoint(TUSCANY_RUNTIME_LIBRARIES).getExtensions()) { + for (IConfigurationElement configuration: extension.getConfigurationElements()) { + IClasspathContainer container = (IClasspathContainer)configuration.createExecutableExtension("class"); + classpathEntries.addAll(Arrays.asList(container.getClasspathEntries())); + } + } + + String separator = System.getProperty("path.separator"); + StringBuffer classpath = new StringBuffer(); + for (int i = 0, n = classpathEntries.size(); i < n; i++) { + IClasspathEntry entry = classpathEntries.get(i); + if (i >0) { + classpath.append(separator); + } + classpath.append(entry.getPath().toFile().toURI().getPath()); + } + + return classpath.toString(); + } + + /** + * Returns the Tuscany feature location. + * + * @return + */ + static IPath feature() { + try { + URL location = Platform.getInstallLocation().getURL(); + File feature = new File(location.getPath() + "/features/" + TUSCANY_FEATURE + "_" + TUSCANY_VERSION); + return new Path(feature.getPath()); + } catch (Exception e) { + error("Tuscany runtime feature not found", e); + return null; + } + } + + /** + * Returns the location of the runtime distribution under the Tuscany feature. + * + * @param feature + * @return + */ + static IPath runtime(IPath feature) { + IPath runtimePath = null; + try { + + // Find the Tuscany distribution under the feature's runtime directory + // Typically runtime/distro-archive-name/un-archived-distro-dir + File file = new File(feature.toFile(), "runtime"); + if (file.exists()) { + File distro = null; + for (File f: file.listFiles()) { + if (f.getName().contains("tuscany-sca")) { + distro = f; + break; + } + } + if (distro != null) { + for (File f: distro.listFiles()) { + if (f.getName().contains("tuscany-sca")) { + runtimePath = new Path(f.getPath()); + break; + } + } + if (runtimePath == null) { + error("Tuscany runtime distribution directory not found", new FileNotFoundException(distro.getAbsolutePath())); + } + } else { + error("Tuscany runtime distribution archive not found", new FileNotFoundException(file.getAbsolutePath())); + } + } else { + error("Tuscany runtime feature not found", new FileNotFoundException(file.getAbsolutePath())); + } + } catch (Exception e) { + error("Tuscany runtime feature not found", e); + } + return runtimePath; + } + + /** + * Returns the location of the src distribution under the Tuscany feature. + * + * @param feature + * @return + */ + static IPath src(IPath feature) { + IPath sourcePath = null; + try { + + // Find the Tuscany source distribution under the feature's src directory + // Typically src/distro-archive-src.zip + File file = new File(feature.toFile(), "src"); + if (file.exists()) { + File distro = null; + for (File f: file.listFiles()) { + if (f.getName().contains("tuscany-sca") && f.getName().endsWith("-src.zip")) { + distro = f; + break; + } + } + if (distro != null) { + sourcePath = new Path(distro.getPath()); + } + } + } catch (Exception e) { + } + return sourcePath; + } + +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java new file mode 100644 index 0000000000..c1a674a46a --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java @@ -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.core.classpath; + +import static org.apache.tuscany.sca.core.classpath.ClasspathUtil.feature; +import static org.apache.tuscany.sca.core.classpath.ClasspathUtil.runtime; +import static org.apache.tuscany.sca.core.classpath.ClasspathUtil.src; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.jdt.core.IClasspathContainer; +import org.eclipse.jdt.core.IClasspathEntry; +import org.eclipse.jdt.core.JavaCore; + +/** + * A classpath container for the Tuscany runtime. + * + * @version $Rev$ $Date$ + */ +public class TuscanyClasspathContainer implements IClasspathContainer { + + public static final IPath TUSCANY_LIBRARY_CONTAINER = new Path("org.apache.tuscany.sca.runtime.library"); + + private static final String TUSCANY_HOME = "TUSCANY_HOME"; + private static final String TUSCANY_SRC = "TUSCANY_SRC"; + + public TuscanyClasspathContainer() { + } + + public IClasspathEntry[] getClasspathEntries() { + List list = new ArrayList(); + + // Find the Tuscany feature + IPath feature = feature(); + + // Get the runtime location from the installed Tuscany feature + IPath runtimePath = runtime(feature); + + if (runtimePath == null) { + + // Try to get the location of the Tuscany binary distribution from + // the TUSCANY_HOME property or environment variable + String home = System.getProperty(TUSCANY_HOME); + if (home == null || home.length() == 0) { + home = System.getenv(TUSCANY_HOME); + } + if (home != null && home.length() != 0) { + if (new File(home).exists()) { + runtimePath = new Path(home); + } + } + } + + // Get the source location from the installed Tuscany feature + IPath sourcePath = src(feature); + + if (sourcePath == null) { + + // Try to get the location of the Tuscany source distribution from + // the TUSCANY_SRC property or environment variable + String source = System.getProperty(TUSCANY_SRC); + if (source == null || source.length() == 0) { + source = System.getenv(TUSCANY_SRC); + } + if (source != null && source.length() != 0) { + if (new File(source).exists()) { + sourcePath = new Path(source); + } + } + } + + // Add the JARs from runtime/lib and runtime/modules as classpath entries + if (runtimePath != null) { + + // Add a selection of the jars from runtime/modules + File modulesDirectory = runtimePath.append("modules").toFile(); + if (modulesDirectory != null && modulesDirectory.exists()) { + for (File file : modulesDirectory.listFiles()) { + IPath path = new Path(file.getPath()); + String name = path.lastSegment(); + String extension = path.getFileExtension(); + + // Only include API and launcher JARs + if (!"jar".equals(extension)) { + continue; + } + if (name.indexOf("-api-") == -1 && name.indexOf("-launcher-") == -1) { + continue; + } + if (name.startsWith("tuscany-node-api-") || name.startsWith("tuscany-domain-api-")) { + continue; + } + + list.add(JavaCore.newLibraryEntry(path, sourcePath, null)); + } + } + + File libDirectory = runtimePath.append("lib").toFile(); + if (libDirectory != null && libDirectory.exists()) { + for (File file : libDirectory.listFiles()) { + IPath path = new Path(file.getPath()); + String name = path.lastSegment(); + String extension = path.getFileExtension(); + + // Only include jaxb, jaxws and jsr API JARs + if (!"jar".equals(extension)) { + continue; + } + if (name.indexOf("-api-") != -1) { + if (name.startsWith("jaxb") || name.startsWith("jaxws") || name.startsWith("jsr")) { + list.add(JavaCore.newLibraryEntry(path, sourcePath, null)); + } + } + } + } + } + + return (IClasspathEntry[])list.toArray(new IClasspathEntry[list.size()]); + } + + public String getDescription() { + return "Tuscany Library"; + } + + public int getKind() { + return IClasspathContainer.K_APPLICATION; + } + + public IPath getPath() { + return TUSCANY_LIBRARY_CONTAINER; + } + +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainerInitializer.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainerInitializer.java new file mode 100644 index 0000000000..c82281b243 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainerInitializer.java @@ -0,0 +1,50 @@ +/* + * 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.core.classpath; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.jdt.core.ClasspathContainerInitializer; +import org.eclipse.jdt.core.IClasspathContainer; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; + +/** + * A classpath container initializer for the Tuscany runtime. + * + * @version $Rev$ $Date$ + */ +public class TuscanyClasspathContainerInitializer extends ClasspathContainerInitializer { + + @Override + public void initialize(IPath containerPath, IJavaProject project) throws CoreException { + + TuscanyClasspathContainer classpathContainer = new TuscanyClasspathContainer(); + JavaCore.setClasspathContainer(containerPath, + new IJavaProject[] {project}, + new IClasspathContainer[] {classpathContainer}, + null); + } + + @Override + public boolean canUpdateClasspathContainer(IPath containerPath, IJavaProject project) { + return true; + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyLibraryEntryPage.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyLibraryEntryPage.java new file mode 100644 index 0000000000..21f6f27a6f --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyLibraryEntryPage.java @@ -0,0 +1,69 @@ +/* + * 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.core.classpath; + +import org.eclipse.jdt.core.IClasspathEntry; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.ui.wizards.IClasspathContainerPage; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +/** + * A classpath container page for the Tuscany runtime library. + * + * @version $Rev$ $Date$ + */ +public class TuscanyLibraryEntryPage extends WizardPage implements IClasspathContainerPage { + + private IClasspathEntry classpathEntry; + + public TuscanyLibraryEntryPage() { + super("Tuscany"); + } + + public void createControl(Composite parent) { + setTitle("Tuscany Library"); + + Label label = new Label(parent, SWT.NONE); + label.setText("Press Finish to add the Tuscany Library"); + label.setFont(parent.getFont()); + + setControl(label); + } + + public boolean finish() { + classpathEntry = JavaCore.newContainerEntry(TuscanyClasspathContainer.TUSCANY_LIBRARY_CONTAINER); + return true; + } + + public boolean isPageComplete() { + return true; + } + + public IClasspathEntry getSelection() { + return classpathEntry; + } + + public void setSelection(IClasspathEntry containerEntry) { + this.classpathEntry = containerEntry; + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java new file mode 100644 index 0000000000..df73402b67 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java @@ -0,0 +1,89 @@ +/* + * 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.core.classpath; + +import static org.apache.tuscany.sca.core.classpath.ClasspathUtil.feature; +import static org.apache.tuscany.sca.core.classpath.ClasspathUtil.runtime; + +import java.io.File; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.jdt.core.IClasspathContainer; +import org.eclipse.jdt.core.IClasspathEntry; +import org.eclipse.jdt.core.JavaCore; + +/** + * A classpath container for the Tuscany runtime. + * + * @version $Rev$ $Date$ + */ +public class TuscanyRuntimeClasspathContainer implements IClasspathContainer { + + public static final IPath TUSCANY_LIBRARY_CONTAINER = new Path("org.apache.tuscany.sca.runtime.library"); + + private static final String TUSCANY_HOME = "TUSCANY_HOME"; + + public TuscanyRuntimeClasspathContainer() { + } + + public IClasspathEntry[] getClasspathEntries() { + + // Find the Tuscany feature + IPath feature = feature(); + + // Get the runtime location from the installed Tuscany feature + IPath runtimePath = runtime(feature); + + if (runtimePath == null) { + + // Try to get the location of the Tuscany binary distribution from + // the TUSCANY_HOME property or environment variable + String home = System.getProperty(TUSCANY_HOME); + if (home == null || home.length() == 0) { + home = System.getenv(TUSCANY_HOME); + } + if (home != null && home.length() != 0) { + if (new File(home).exists()) { + runtimePath = new Path(home); + } + } + } + + if (runtimePath != null) { + return new IClasspathEntry[] {JavaCore.newLibraryEntry(runtimePath, null, null)}; + } else { + return new IClasspathEntry[0]; + } + } + + public String getDescription() { + return "Tuscany Library"; + } + + public int getKind() { + return IClasspathContainer.K_APPLICATION; + } + + public IPath getPath() { + return TUSCANY_LIBRARY_CONTAINER; + } + +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java new file mode 100644 index 0000000000..bd255f4a15 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java @@ -0,0 +1,255 @@ +/* + * 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.core.launch; + +import static org.apache.tuscany.sca.core.launch.TuscanyLaunchConfigurationDelegate.TUSCANY_LAUNCH_CONFIGURATIONTYPE; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.Socket; + +import org.apache.tuscany.sca.core.classpath.ClasspathUtil; +import org.apache.tuscany.sca.core.classpath.TuscanyClasspathContainer; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchConfigurationType; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; +import org.eclipse.debug.core.ILaunchManager; +import org.eclipse.jdt.core.IClasspathEntry; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; +import org.eclipse.jdt.launching.JavaRuntime; + +/** + * Provides utility methods to launch the SCA Domain Manager. + * + * @version $Rev: $ $Date: $ + */ +public class DomainManagerLauncherUtil { + + private static final String TUSCANY_DOMAIN_LAUNCH_CONFIGURATION = "SCA Domain Manager"; + private static final String TUSCANY_SCA_DOMAIN_PROJECT = "tuscany-sca-domain"; + + private static final String PING_HEADER = + "GET /ping HTTP/1.0\n" + "Host: localhost\n" + + "Content-Type: text/xml\n" + + "Connection: close\n" + + "Content-Length: "; + private static final String PING_CONTENT = ""; + private static final String PING = + PING_HEADER + PING_CONTENT.getBytes().length + "\n\n" + PING_CONTENT; + + /** + * Returns the SCA domain project. + * + * @return + * @throws CoreException + */ + static IProject domainProject(IProgressMonitor progressMonitor) throws CoreException { + + IProject domainProject = ResourcesPlugin.getWorkspace().getRoot().getProject(TUSCANY_SCA_DOMAIN_PROJECT); + if (progressMonitor.isCanceled()) { + return domainProject; + } + if (!domainProject.exists()) { + progressMonitor.subTask("Creating SCA domain resources"); + + // Create SCA domain project if necessary + domainProject.create(new SubProgressMonitor(progressMonitor, 5)); + domainProject.open(new SubProgressMonitor(progressMonitor, 5)); + + String html = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "SCA Domain\n" + + "\n" + + ""; + + IFile file = domainProject.getFile(new Path("domain.html")); + file.create(new ByteArrayInputStream(html.getBytes()), true, new SubProgressMonitor(progressMonitor, 5)); + + IProjectDescription description = domainProject.getDescription(); + String[] prevNatures= description.getNatureIds(); + String[] newNatures= new String[prevNatures.length + 1]; + System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length); + newNatures[prevNatures.length]= JavaCore.NATURE_ID; + description.setNatureIds(newNatures); + domainProject.setDescription(description, new SubProgressMonitor(progressMonitor, 5)); + + IJavaProject javaProject = JavaCore.create(domainProject); + javaProject.setOutputLocation(domainProject.getFullPath(), new SubProgressMonitor(progressMonitor, 5)); + + IClasspathEntry classPath = JavaCore.newContainerEntry(TuscanyClasspathContainer.TUSCANY_LIBRARY_CONTAINER); + IClasspathEntry jrePath = JavaRuntime.getDefaultJREContainerEntry(); + javaProject.setRawClasspath(new IClasspathEntry[] {jrePath, classPath}, new SubProgressMonitor(progressMonitor, 5)); + + } else { + domainProject.open(new SubProgressMonitor(progressMonitor, 5)); + } + + return domainProject; + } + + /** + * Returns true if the SCA domain controller is running. + * + * @return + */ + private static boolean isDomainManagerRunning() { + try { + Socket client = new Socket("localhost", 9990); + OutputStream os = client.getOutputStream(); + os.write(DomainManagerLauncherUtil.PING.getBytes()); + os.flush(); + String response = DomainManagerLauncherUtil.read(client); + if (response.indexOf("") != -1) { + return true; + } else { + return false; + } + } catch (IOException e) { + return false; + } + } + + /** + * Wait for domain to be running. + * + * @return + */ + private static boolean waitForDomainManager(IProgressMonitor progressMonitor) throws InterruptedException { + progressMonitor.subTask("Contacting SCA domain manager"); + for (int i = 0; i < 40; i++) { + if (progressMonitor.isCanceled()) { + return false; + } + if (isDomainManagerRunning()) { + return true; + } + Thread.sleep(500); + } + return false; + } + + static void launchDomainManager(IProgressMonitor progressMonitor) throws JavaModelException, CoreException, InterruptedException { + + progressMonitor.beginTask("Starting SCA Domain Manager", 100); + + // If the SCA domain controller is not running yet, launch it + if (!isDomainManagerRunning()) { + + progressMonitor.subTask("Starting SCA domain manager"); + if (progressMonitor.isCanceled()) { + return; + } + + // Get the SCA domain project + IProject domainProject = domainProject(progressMonitor); + + // Get the domain manager launch configuration + ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); + ILaunchConfigurationType launchConfigurationType =launchManager.getLaunchConfigurationType(TUSCANY_LAUNCH_CONFIGURATIONTYPE); + ILaunchConfiguration configuration = null; + for (ILaunchConfiguration c : launchManager.getLaunchConfigurations(launchConfigurationType)) { + if (TUSCANY_DOMAIN_LAUNCH_CONFIGURATION.equals(c.getName())) { + configuration = c; + break; + } + } + + if (configuration == null) { + progressMonitor.worked(10); + if (progressMonitor.isCanceled()) { + return; + } + + // Create a new launch configuration + ILaunchConfigurationWorkingCopy newConfiguration = launchConfigurationType.newInstance(null, TUSCANY_DOMAIN_LAUNCH_CONFIGURATION); + + // Set the project and type to launch + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, domainProject.getProject().getName()); + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.apache.tuscany.sca.node.launcher.DomainManagerLauncher"); + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, domainProject.getLocation().toString()); + + // Pass the runtime classpath as a system property + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "\"-DTUSCANY_PATH=" + ClasspathUtil.installedRuntimeClasspath() + "\""); + + // Save the configuration + newConfiguration.doSave(); + + configuration = newConfiguration; + } + + // Launch + configuration.launch(ILaunchManager.RUN_MODE, new SubProgressMonitor(progressMonitor, 20)); + + if (progressMonitor.isCanceled()) { + return; + } + if (!waitForDomainManager(progressMonitor)) { + throw new RuntimeException("SCA Domain Manager could not be started."); + } + } + if (progressMonitor.isCanceled()) { + return; + } + progressMonitor.done(); + + } + + /** + * Read a String from a socket. + * + * @param socket + * @return + * @throws IOException + */ + static String read(Socket socket) throws IOException { + BufferedReader reader = null; + try { + reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); + StringBuffer sb = new StringBuffer(); + String str; + while ((str = reader.readLine()) != null) { + sb.append(str); + } + return sb.toString(); + } finally { + if (reader != null) { + reader.close(); + } + } + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java new file mode 100644 index 0000000000..c9b96c7031 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java @@ -0,0 +1,244 @@ +/* + * 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.core.launch; + +import static org.apache.tuscany.sca.core.launch.DomainManagerLauncherUtil.domainProject; +import static org.apache.tuscany.sca.core.launch.DomainManagerLauncherUtil.launchDomainManager; +import static org.apache.tuscany.sca.core.launch.TuscanyLaunchConfigurationDelegate.TUSCANY_LAUNCH_CONFIGURATIONTYPE; + +import java.io.IOException; +import java.io.OutputStream; +import java.net.MalformedURLException; +import java.net.Socket; + +import org.apache.tuscany.sca.core.classpath.ClasspathUtil; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchConfigurationType; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; +import org.eclipse.debug.core.ILaunchManager; +import org.eclipse.jdt.core.IClasspathEntry; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; + +/** + * Provides utility methods to launch SCA nodes. + * + * @version $Rev: $ $Date: $ + */ +public class NodeLauncherUtil { + + private static final String START_HEADER1 = + "GET /quickstart?"; + private static final String START_HEADER2 = + " HTTP/1.0\n" + "Host: localhost\n" + + "Content-Type: text/xml\n" + + "Connection: close\n" + + "Content-Length: "; + private static final String START_CONTENT = ""; + + /** + * Launch an SCA node. + * + * @param mode + * @param file + * @param launchManager + * @param launchConfigurationType + * @throws CoreException + * @throws JavaModelException + */ + static void launchNode(String mode, + IFile file, + IProgressMonitor progressMonitor) throws CoreException, JavaModelException, IOException, InterruptedException { + progressMonitor.subTask("Starting SCA node"); + if (progressMonitor.isCanceled()) { + return; + } + + // First start the SCA domain manager + launchDomainManager(new SubProgressMonitor(progressMonitor, 20)); + + // Get the Java project + IJavaProject javaProject = JavaCore.create(file.getProject()); + + // Get the contribution location and URI + String contributionLocation = contributionLocation(javaProject); + String contributionURI = contributionURI(javaProject); + + // Determine the composite file URI + String compositeURI = compositeURI(javaProject, file); + + // Configure the node + String nodeName = configureNode(contributionURI, contributionLocation, compositeURI, progressMonitor); + + // Get the node launch configuration + ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); + ILaunchConfigurationType launchConfigurationType =launchManager.getLaunchConfigurationType(TUSCANY_LAUNCH_CONFIGURATIONTYPE); + ILaunchConfiguration configuration = null; + for (ILaunchConfiguration c : launchManager.getLaunchConfigurations(launchConfigurationType)) { + if (file.getFullPath().toString().equals(c.getAttribute("COMPOSITE_PATH", ""))) { + configuration = c; + break; + } + } + + if (configuration == null) { + progressMonitor.worked(10); + if (progressMonitor.isCanceled()) { + return; + } + + // Create a new launch configuration + ILaunchConfigurationWorkingCopy newConfiguration = launchConfigurationType.newInstance(null, + launchManager.generateUniqueLaunchConfigurationNameFrom(file.getName())); + + // Set the project and type to launch + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, file.getProject().getName()); + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.apache.tuscany.sca.node.launcher.NodeLauncher"); + + // Pass the URL of the node install image to the launcher + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, + "http://localhost:9990/node-config/" + nodeName); + + // Save the composite path in the launch configuration + newConfiguration.setAttribute("COMPOSITE_PATH", file.getFullPath().toString()); + + // Pass the runtime classpath as a system property + newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "\"-DTUSCANY_PATH=" + ClasspathUtil.installedRuntimeClasspath() + "\""); + + // Save the configuration + newConfiguration.doSave(); + + configuration = newConfiguration; + } + + // Launch + configuration.launch(mode, null); + } + + /** + * Returns the location of the SCA contribution representing a Java project. + * @param javaProject + * @return + * @throws MalformedURLException + * @throws JavaModelException + */ + private static String contributionLocation(IJavaProject javaProject) throws MalformedURLException, JavaModelException { + IPath location = javaProject.getOutputLocation(); + IResource resource; + if (location.segmentCount() == 1) { + resource = javaProject.getProject(); + } else { + resource = javaProject.getProject().getWorkspace().getRoot().getFolder(location); + } + location = resource.getLocation(); + String url = location.toFile().toURI().toURL().toString(); + if (url.endsWith("/")) { + url = url.substring(0, url.length() - 1); + } + return url; + } + + /** + * Returns the URI of the SCA contribution representing a Java project. + * @param javaProject + * @return + */ + private static String contributionURI(IJavaProject javaProject) { + return javaProject.getProject().getName(); + } + + /** + * Returns the SCA artifact URI of a composite file inside a Java project. + * + * @param javaProject + * @param file + * @return + * @throws JavaModelException + */ + private static String compositeURI(IJavaProject javaProject, IFile file) throws JavaModelException { + + // Find the Java source container containing the specified file + IClasspathEntry[] classpathEntries = javaProject.getRawClasspath(); + int sourceFolderSegments = 0; + for (IClasspathEntry entry : classpathEntries) { + if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { + sourceFolderSegments = entry.getPath().matchingFirstSegments(file.getFullPath()); + if (sourceFolderSegments > 0) + break; + } + } + + // Determine the composite URI + String compositeURI = file.getFullPath().removeFirstSegments(sourceFolderSegments).toString(); + return compositeURI; + } + + /** + * Send a request to the SCA domain manager to configure an SCA node for + * the specified composite. + * + * @param contributionURI + * @param contributionLocation + * @param compositeURI + * @return + * @throws IOException + */ + private static String configureNode(String contributionURI, String contributionLocation, String compositeURI, + IProgressMonitor progressMonitor) throws IOException, CoreException { + progressMonitor.subTask("Configuring node"); + + // Send the request to configure the node + Socket client = new Socket("localhost", 9990); + OutputStream os = client.getOutputStream(); + String request = START_HEADER1 + + "contribution=" + contributionURI + "&location=" + contributionLocation + "&composite=" + compositeURI + + START_HEADER2 + START_CONTENT.getBytes().length + "\n\n" + START_CONTENT; + os.write(request.getBytes()); + os.flush(); + String response = DomainManagerLauncherUtil.read(client); + + // Refresh the domain project + domainProject(progressMonitor).refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); + + int i = response.indexOf(""); + if (i != -1) { + + // Extract the node name + response = response.substring(i + 16); + i = response.indexOf(""); + String nodeName = response.substring(0, i); + return nodeName; + + } else { + throw new RuntimeException("Node could not be configured: " + response); + } + } + +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java new file mode 100644 index 0000000000..ddcfb66b63 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationDelegate.java @@ -0,0 +1,75 @@ +/* + * 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.core.launch; + +import java.io.File; +import java.util.Map; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.debug.core.ILaunch; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; +import org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate; +import org.eclipse.jdt.launching.ExecutionArguments; +import org.eclipse.jdt.launching.IVMInstall; +import org.eclipse.jdt.launching.IVMRunner; +import org.eclipse.jdt.launching.VMRunnerConfiguration; + +/** + * Launch configuration delegate for the Tuscany launch configuration. + * + * @version $Rev$ $Date$ + */ +public class TuscanyLaunchConfigurationDelegate extends AbstractJavaLaunchConfigurationDelegate implements + ILaunchConfigurationDelegate { + + public static final String TUSCANY_LAUNCH_CONFIGURATIONTYPE = "org.apache.tuscany.sca.core.launch.configurationtype"; + + public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) + throws CoreException { + + // Verify the configuration + String mainTypeName = verifyMainTypeName(configuration); + IVMInstall vm = verifyVMInstall(configuration); + IVMRunner runner = vm.getVMRunner(mode); + + ExecutionArguments execArgs = + new ExecutionArguments(getVMArguments(configuration), getProgramArguments(configuration)); + Map vmAttributesMap = getVMSpecificAttributesMap(configuration); + String[] classpath = getClasspath(configuration); + + File workingDir = verifyWorkingDirectory(configuration); + String workingDirName = null; + if (workingDir != null) + workingDirName = workingDir.getAbsolutePath(); + + // Create a VM runner configuration + VMRunnerConfiguration runConfig = new VMRunnerConfiguration(mainTypeName, classpath); + runConfig.setProgramArguments(execArgs.getProgramArgumentsArray()); + runConfig.setVMArguments(execArgs.getVMArgumentsArray()); + runConfig.setVMSpecificAttributesMap(vmAttributesMap); + runConfig.setWorkingDirectory(workingDirName); + runConfig.setBootClassPath(getBootpath(configuration)); + + // Run!! + runner.run(runConfig, launch, monitor); + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationTabGroup.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationTabGroup.java new file mode 100644 index 0000000000..738fe2638e --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchConfigurationTabGroup.java @@ -0,0 +1,48 @@ +/* + * 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.core.launch; + +import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup; +import org.eclipse.debug.ui.CommonTab; +import org.eclipse.debug.ui.EnvironmentTab; +import org.eclipse.debug.ui.ILaunchConfigurationDialog; +import org.eclipse.debug.ui.ILaunchConfigurationTab; +import org.eclipse.debug.ui.ILaunchConfigurationTabGroup; +import org.eclipse.debug.ui.sourcelookup.SourceLookupTab; +import org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab; +import org.eclipse.jdt.debug.ui.launchConfigurations.JavaClasspathTab; +import org.eclipse.jdt.debug.ui.launchConfigurations.JavaJRETab; + +/** + * Tab groups from the Tuscany launch configuration. + * + * @version $Rev$ $Date$ + */ +public class TuscanyLaunchConfigurationTabGroup extends AbstractLaunchConfigurationTabGroup implements + ILaunchConfigurationTabGroup { + + public void createTabs(ILaunchConfigurationDialog dialog, String mode) { + ILaunchConfigurationTab[] tabs = + new ILaunchConfigurationTab[] {new JavaArgumentsTab(), new JavaJRETab(), new JavaClasspathTab(), + new SourceLookupTab(), new EnvironmentTab(), new CommonTab()}; + + setTabs(tabs); + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchDomainManagerAction.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchDomainManagerAction.java new file mode 100644 index 0000000000..895cde6922 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchDomainManagerAction.java @@ -0,0 +1,79 @@ +/* + * 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.core.launch; + +import static org.apache.tuscany.sca.core.launch.DomainManagerLauncherUtil.launchDomainManager; +import static org.apache.tuscany.sca.core.log.LogUtil.error; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.IWorkbenchWindowActionDelegate; + +/** + * Launch the SCA DomainManager. + * + * @version $Rev: $ $Date: $ + */ +public class TuscanyLaunchDomainManagerAction implements IWorkbenchWindowActionDelegate { + + private IWorkbenchWindow window; + + public TuscanyLaunchDomainManagerAction() { + } + + public void run(IAction action) { + + try { + + // Run with a progress monitor + window.run(true, true, new IRunnableWithProgress() { + + public void run(IProgressMonitor progressMonitor) throws InvocationTargetException, InterruptedException { + try { + + launchDomainManager(progressMonitor); + + } catch (Exception e) { + throw new InvocationTargetException(e); + } finally { + progressMonitor.done(); + } + } + }); + + } catch (Exception e) { + error("Could not launch SCA Domain Manager", e); + } + } + + public void selectionChanged(IAction action, ISelection selection) { + } + + public void dispose() { + } + + public void init(IWorkbenchWindow window) { + this.window = window; + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeFilter.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeFilter.java new file mode 100644 index 0000000000..c5aeefb891 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeFilter.java @@ -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.core.launch; + +/** + * TuscanyLaunchNodeFilter + * + * @version $Rev: $ $Date: $ + */ +public class TuscanyLaunchNodeFilter { + +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeShortcut.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeShortcut.java new file mode 100644 index 0000000000..94ab29ce9a --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/TuscanyLaunchNodeShortcut.java @@ -0,0 +1,88 @@ +/* + * 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.core.launch; + +import static org.apache.tuscany.sca.core.launch.NodeLauncherUtil.launchNode; +import static org.apache.tuscany.sca.core.log.LogUtil.error; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.debug.ui.ILaunchShortcut; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PlatformUI; + +/** + * A launch shortcut for SCA .composite files. + * + * @version $Rev$ $Date$ + */ +public class TuscanyLaunchNodeShortcut implements ILaunchShortcut { + + public void launch(final ISelection selection, final String mode) { + + try { + + // Make sure we have a .composite file selected + if (!(selection instanceof IStructuredSelection)) { + return; + } + Object[] selections = ((IStructuredSelection)selection).toArray(); + if (selections.length == 0) { + return; + } + final IFile file = (IFile)selections[0]; + if (!file.getFileExtension().equals("composite")) { + return; + } + + // Run with a progress monitor + PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(true, true, new IRunnableWithProgress() { + + public void run(IProgressMonitor progressMonitor) throws InvocationTargetException, InterruptedException { + try { + progressMonitor.beginTask("Starting SCA Composite", 100); + + launchNode(mode, file, progressMonitor); + + progressMonitor.done(); + + } catch (Exception e) { + throw new InvocationTargetException(e); + } finally { + progressMonitor.done(); + } + } + }); + + } catch (Exception e) { + error("Could not launch SCA composite", e); + } + } + + public void launch(IEditorPart editor, String mode) { + //TODO later... + } + +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/log/LogUtil.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/log/LogUtil.java new file mode 100644 index 0000000000..3bbdc81dde --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/log/LogUtil.java @@ -0,0 +1,39 @@ +/* + * 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.core.log; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; + +/** + * A log utility + * + * @version $Rev: $ $Date: $ + */ +public class LogUtil { + + public static void error(String msg, Exception e) { + Platform.getLog( + Platform.getBundle("org.apache.tuscany.sca.core")).log( + new Status(IStatus.ERROR, "org.apache.tuscany.sca.core", IStatus.OK, msg, e)); + } + +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizard.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizard.java new file mode 100644 index 0000000000..09b800fe1b --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizard.java @@ -0,0 +1,53 @@ +/* + * 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.core.newwizards; + +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchWizard; + +/** + * A wizard to create new .componentType files. + * + * @version $Rev$ $Date$ + */ +public class NewComponentTypeWizard extends Wizard implements IWorkbenchWizard { + + private IWorkbench workbench; + private IStructuredSelection selection; + private NewComponentTypeWizardPage mainPage; + + public void init(IWorkbench workbench, IStructuredSelection selection) { + this.workbench = workbench; + this.selection = selection; + setWindowTitle("New SCA ComponentType"); + } + + public void addPages() { + mainPage = new NewComponentTypeWizardPage(workbench, selection); + addPage(mainPage); + } + + @Override + public boolean performFinish() { + return mainPage.finish(); + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizardPage.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizardPage.java new file mode 100644 index 0000000000..53b9607159 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewComponentTypeWizardPage.java @@ -0,0 +1,98 @@ +/* + * 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.core.newwizards; + +import static org.apache.tuscany.sca.core.log.LogUtil.error; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.PrintWriter; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.graphics.ImageLoader; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; +import org.eclipse.ui.ide.IDE; + +/** + * Wizard page for the new .componentType file wizard. + * + * @version $Rev$ $Date$ + */ +public class NewComponentTypeWizardPage extends WizardNewFileCreationPage { + + private IWorkbench workbench; + + public NewComponentTypeWizardPage(IWorkbench workbench, IStructuredSelection selection) { + super("New SCA ComponentType Page", selection); + + this.workbench = workbench; + + setTitle("SCA ComponentType"); + setDescription("Create a new SCA ComponentType."); + + try { + String location = FileLocator.toFileURL(Platform.getBundle("org.apache.tuscany.sca.core").getEntry("/")).getFile().toString(); + setImageDescriptor(ImageDescriptor.createFromImageData((new ImageLoader()).load(location + "/icons/tuscany.gif")[0])); + } catch (Exception e) { + error("Could not create wizard", e); + } + + setFileName("sample.componentType"); + + } + + public boolean finish() { + try { + IFile file = createNewFile(); + + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage workbenchPage = workbenchWindow.getActivePage(); + IDE.openEditor(workbenchPage, file, true); + } catch (Exception e) { + error("Could not open editor", e); + return false; + } + return true; + } + + @Override + protected InputStream getInitialContents() { + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + PrintWriter printWriter = new PrintWriter(outputStream); + printWriter.println(""); + printWriter.println(""); + printWriter.println(); + printWriter.println(); + printWriter.println(""); + printWriter.close(); + + return new ByteArrayInputStream(outputStream.toByteArray()); + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizard.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizard.java new file mode 100644 index 0000000000..f07f0b643c --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizard.java @@ -0,0 +1,53 @@ +/* + * 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.core.newwizards; + +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchWizard; + +/** + * A wizard to create new .composite files. + * + * @version $Rev$ $Date$ + */ +public class NewCompositeWizard extends Wizard implements IWorkbenchWizard { + + private IWorkbench workbench; + private IStructuredSelection selection; + private NewCompositeWizardPage mainPage; + + public void init(IWorkbench workbench, IStructuredSelection selection) { + this.workbench = workbench; + this.selection = selection; + setWindowTitle("New SCA Composite"); + } + + public void addPages() { + mainPage = new NewCompositeWizardPage(workbench, selection); + addPage(mainPage); + } + + @Override + public boolean performFinish() { + return mainPage.finish(); + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizardPage.java b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizardPage.java new file mode 100644 index 0000000000..bbca96196d --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/newwizards/NewCompositeWizardPage.java @@ -0,0 +1,105 @@ +/* + * 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.core.newwizards; + +import static org.apache.tuscany.sca.core.log.LogUtil.error; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.PrintWriter; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.graphics.ImageLoader; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; +import org.eclipse.ui.ide.IDE; + +/** + * Wizard page for the new .composite file wizard. + * + * @version $Rev$ $Date$ + */ +public class NewCompositeWizardPage extends WizardNewFileCreationPage { + + private IWorkbench workbench; + + public NewCompositeWizardPage(IWorkbench workbench, IStructuredSelection selection) { + super("New SCA Composite Page", selection); + + this.workbench = workbench; + + setTitle("SCA Composite"); + setDescription("Create a new SCA Composite."); + + try { + String location = FileLocator.toFileURL(Platform.getBundle("org.apache.tuscany.sca.core").getEntry("/")).getFile().toString(); + setImageDescriptor(ImageDescriptor.createFromImageData((new ImageLoader()).load(location + "/icons/tuscany.gif")[0])); + } catch (Exception e) { + error("Could not create wizard", e); + } + + setFileName("sample.composite"); + + } + + public boolean finish() { + try { + IFile file = createNewFile(); + + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage workbenchPage = workbenchWindow.getActivePage(); + IDE.openEditor(workbenchPage, file, true); + } catch (Exception e) { + error("Could not open editor", e); + return false; + } + return true; + } + + @Override + protected InputStream getInitialContents() { + + IPath path = new Path(getFileName()); + String name = path.removeFileExtension().toString(); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + PrintWriter printWriter = new PrintWriter(outputStream); + printWriter.println(""); + printWriter.println(""); + printWriter.println(); + printWriter.println(); + printWriter.println(""); + printWriter.close(); + + return new ByteArrayInputStream(outputStream.toByteArray()); + } +} diff --git a/branches/sca-android/tools/eclipse/plugins/core/plugin.xml b/branches/sca-android/tools/eclipse/plugins/core/plugin.xml new file mode 100644 index 0000000000..97c1d86623 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/plugin.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create a new SCA Composite + + + Create a new SCA ComponentType + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/pom.xml b/branches/sca-android/tools/eclipse/plugins/core/pom.xml new file mode 100644 index 0000000000..9ae1fd1e1f --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/pom.xml @@ -0,0 +1,102 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca-eclipse-tools + 1.4-SNAPSHOT + ../../pom.xml + + org.apache.tuscany.sca.core + Apache Tuscany SCA Eclipse Tools Core Plugin + + + + org.eclipse.jdt.debug + ui + 3.2.100-v20070531-1800 + + + + org.eclipse.equinox + app + + + + + org.eclipse.swt.win32.win32 + x86 + 3.3.0-v3346 + + + + org.eclipse.equinox + app + 1.0.0-v20070606 + + + + + ${basedir} + + + ${basedir} + + **/*.java + **/.*/** + pom.xml + build.* + target/** + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + META-INF/MANIFEST.MF + + + + + + + + + repo1.eclipse + http://repo1.maven.org/eclipse/ + + true + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-all.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-all.xsd new file mode 100644 index 0000000000..1b19ede427 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-all.xsd @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-ejb.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-ejb.xsd new file mode 100644 index 0000000000..26bedfcce5 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-ejb.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-jms.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-jms.xsd new file mode 100644 index 0000000000..850f32b56a --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-jms.xsd @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-sca.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-sca.xsd new file mode 100644 index 0000000000..02703402ef --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-sca.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-webservice.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-webservice.xsd new file mode 100644 index 0000000000..3e92de193b --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-binding-webservice.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-contribution.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-contribution.xsd new file mode 100644 index 0000000000..c7f92f6c3b --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-contribution.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-core.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-core.xsd new file mode 100644 index 0000000000..1c6291792b --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-core.xsd @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-definitions.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-definitions.xsd new file mode 100644 index 0000000000..0249882a92 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-definitions.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-bpel.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-bpel.xsd new file mode 100644 index 0000000000..87b443fb36 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-bpel.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-composite.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-composite.xsd new file mode 100644 index 0000000000..99669bc672 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-composite.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-cpp.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-cpp.xsd new file mode 100644 index 0000000000..6f1cf14a4b --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-cpp.xsd @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-ejb.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-ejb.xsd new file mode 100644 index 0000000000..1bca6199cb --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-ejb.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-java.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-java.xsd new file mode 100644 index 0000000000..f9d8171b8e --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-java.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-spring.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-spring.xsd new file mode 100644 index 0000000000..1cf9fb3ea9 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-implementation-spring.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-cpp.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-cpp.xsd new file mode 100644 index 0000000000..44f14e5ed5 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-cpp.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-java.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-java.xsd new file mode 100644 index 0000000000..81f939bdb4 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-java.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-wsdl.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-wsdl.xsd new file mode 100644 index 0000000000..c1fdfd8f3c --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-interface-wsdl.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-policy.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-policy.xsd new file mode 100644 index 0000000000..c22ffd6618 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca-policy.xsd @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/sca.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca.xsd new file mode 100644 index 0000000000..10f54275d0 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/sca.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-atom.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-atom.xsd new file mode 100644 index 0000000000..c93a1d72de --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-atom.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-dwr.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-dwr.xsd new file mode 100644 index 0000000000..d0da5421ec --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-dwr.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-http.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-http.xsd new file mode 100644 index 0000000000..ff48b97d7a --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-http.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-jsonrpc.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-jsonrpc.xsd new file mode 100644 index 0000000000..7c79738898 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-jsonrpc.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-notification.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-notification.xsd new file mode 100644 index 0000000000..6d5468b2f9 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-notification.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rmi.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rmi.xsd new file mode 100644 index 0000000000..2697a1ea98 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rmi.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rss.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rss.xsd new file mode 100644 index 0000000000..821f323d73 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-binding-rss.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-node.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-node.xsd new file mode 100644 index 0000000000..1b5c8aece2 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-node.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-notification.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-notification.xsd new file mode 100644 index 0000000000..f8d437310e --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-notification.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-osgi.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-osgi.xsd new file mode 100644 index 0000000000..f8ece54a07 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-osgi.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-resource.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-resource.xsd new file mode 100644 index 0000000000..dd596821ea --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-resource.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-script.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-script.xsd new file mode 100644 index 0000000000..e1723d65f0 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-script.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-widget.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-widget.xsd new file mode 100644 index 0000000000..0c0998595f --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-widget.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-xquery.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-xquery.xsd new file mode 100644 index 0000000000..cdabb697aa --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca-implementation-xquery.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca.xsd b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca.xsd new file mode 100644 index 0000000000..da5e696e01 --- /dev/null +++ b/branches/sca-android/tools/eclipse/plugins/core/xsd/tuscany-sca.xsd @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/pom.xml b/branches/sca-android/tools/eclipse/pom.xml new file mode 100644 index 0000000000..ef096ac09b --- /dev/null +++ b/branches/sca-android/tools/eclipse/pom.xml @@ -0,0 +1,47 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca-tools + 1.4-SNAPSHOT + ../pom.xml + + + pom + tuscany-sca-eclipse-tools + Apache Tuscany SCA Eclipse Tools + + + + default + + true + + + features/core + plugins/core + site/updatesite + + + + + diff --git a/branches/sca-android/tools/eclipse/site/updatesite/.project b/branches/sca-android/tools/eclipse/site/updatesite/.project new file mode 100644 index 0000000000..fd6959f412 --- /dev/null +++ b/branches/sca-android/tools/eclipse/site/updatesite/.project @@ -0,0 +1,24 @@ + + org.apache.tuscany.sca.updatesite + The Apache Software Foundation provides support for the Apache community of open-source software projects. + The Apache projects are characterized by a collaborative, consensus based development process, an open and + pragmatic software license, and a desire to create high quality software that leads the way in its field. + We consider ourselves not simply a group of projects sharing a server, but rather a community of developers + and users. + + org.apache.tuscany.sca.core + org.apache.tuscany.sca.feature.core + + + + org.eclipse.pde.UpdateSiteBuilder + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.pde.UpdateSiteNature + org.eclipse.jdt.core.javanature + + \ No newline at end of file diff --git a/branches/sca-android/tools/eclipse/site/updatesite/LICENSE b/branches/sca-android/tools/eclipse/site/updatesite/LICENSE new file mode 100644 index 0000000000..8aa906c321 --- /dev/null +++ b/branches/sca-android/tools/eclipse/site/updatesite/LICENSE @@ -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. + + + diff --git a/branches/sca-android/tools/eclipse/site/updatesite/NOTICE b/branches/sca-android/tools/eclipse/site/updatesite/NOTICE new file mode 100644 index 0000000000..fdfa0e9faa --- /dev/null +++ b/branches/sca-android/tools/eclipse/site/updatesite/NOTICE @@ -0,0 +1,6 @@ +${pom.name} +Copyright (c) 2005 - 2008 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + diff --git a/branches/sca-android/tools/eclipse/site/updatesite/pom.xml b/branches/sca-android/tools/eclipse/site/updatesite/pom.xml new file mode 100644 index 0000000000..32c0ec6f16 --- /dev/null +++ b/branches/sca-android/tools/eclipse/site/updatesite/pom.xml @@ -0,0 +1,85 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca-eclipse-tools + 1.4-SNAPSHOT + ../../pom.xml + + org.apache.tuscany.sca.updatesite + Apache Tuscany SCA Eclipse Tools Update Site + + + ${pom.version} + + + + + org.apache.tuscany.sca + org.apache.tuscany.sca.core + 1.4-SNAPSHOT + + + org.apache.tuscany.sca + org.apache.tuscany.sca.feature.core + 1.4-SNAPSHOT + + + + + + + ${basedir} + + **/.*/** + pom.xml + build.* + target/** + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + updatesite-package + package + + single + + + + src/main/assembly/updatesite.xml + + gnu + apache-tuscany-sca-${pom.version} + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/site/updatesite/site.xml b/branches/sca-android/tools/eclipse/site/updatesite/site.xml new file mode 100644 index 0000000000..1ba6c0c004 --- /dev/null +++ b/branches/sca-android/tools/eclipse/site/updatesite/site.xml @@ -0,0 +1,36 @@ + + + + + Apache Tuscany SCA Tools. + + + + + + + + + + diff --git a/branches/sca-android/tools/eclipse/site/updatesite/src/main/assembly/updatesite.xml b/branches/sca-android/tools/eclipse/site/updatesite/src/main/assembly/updatesite.xml new file mode 100644 index 0000000000..1ba06af971 --- /dev/null +++ b/branches/sca-android/tools/eclipse/site/updatesite/src/main/assembly/updatesite.xml @@ -0,0 +1,58 @@ + + + + updatesite + false + + zip + + + + + tuscany-sca-${tuscany.version}-updatesite + + LICENSE + NOTICE + site.xml + + + + + + + tuscany-sca-${tuscany.version}-updatesite/plugins + false + + org.apache.tuscany.sca:org.apache.tuscany.sca.core + + runtime + + + + tuscany-sca-${tuscany.version}-updatesite/features + false + + org.apache.tuscany.sca:org.apache.tuscany.sca.feature.core + + runtime + + + + -- cgit v1.2.3