From 14c648cb00aa60784708faa80c128d41b3710536 Mon Sep 17 00:00:00 2001 From: Mickael Istria Date: Fri, 9 Jul 2021 14:21:17 +0200 Subject: [PATCH] Merge Tycho-demo into Tycho --- demo/README.md | 25 ++ demo/itp01/pom.xml | 36 ++ .../META-INF/MANIFEST.MF | 9 + .../tycho.demo.itp01.tests/build.properties | 4 + demo/itp01/tycho.demo.itp01.tests/pom.xml | 52 +++ .../src/tycho/demo/itp01/tests/ITP01Test.java | 33 ++ .../tycho.demo.itp01/META-INF/MANIFEST.MF | 9 + demo/itp01/tycho.demo.itp01/build.properties | 5 + .../tycho.demo.itp01/icons/alt_about.gif | Bin 0 -> 9340 bytes .../tycho.demo.itp01/icons/alt_launcher.icns | Bin 0 -> 51159 bytes .../tycho.demo.itp01/icons/alt_launcher.ico | Bin 0 -> 26694 bytes .../tycho.demo.itp01/icons/alt_launcher.xpm | 307 ++++++++++++++++ .../tycho.demo.itp01/icons/alt_window_16.gif | Bin 0 -> 637 bytes .../tycho.demo.itp01/icons/alt_window_32.gif | Bin 0 -> 1192 bytes demo/itp01/tycho.demo.itp01/icons/sample.gif | Bin 0 -> 983 bytes demo/itp01/tycho.demo.itp01/plugin.xml | 55 +++ demo/itp01/tycho.demo.itp01/pom.xml | 14 + .../src/tycho/demo/itp/Application.java | 62 ++++ .../demo/itp/ApplicationActionBarAdvisor.java | 32 ++ .../demo/itp/ApplicationWorkbenchAdvisor.java | 30 ++ .../ApplicationWorkbenchWindowAdvisor.java | 38 ++ .../src/tycho/demo/itp/Perspective.java | 22 ++ .../demo/itp01/actions/SampleAction.java | 73 ++++ demo/itp02/build01/pom.xml | 59 ++++ .../pomfirst-bundle/META-INF/MANIFEST.MF | 13 + demo/itp02/build01/pomfirst-bundle/pom.xml | 39 +++ .../tycho/demo/itp02/pomfirst/PomFirst.java | 23 ++ .../pomfirst-thirdparty/META-INF/MANIFEST.MF | 29 ++ .../itp02/build01/pomfirst-thirdparty/pom.xml | 99 ++++++ demo/itp02/build02/pom.xml | 62 ++++ .../META-INF/MANIFEST.MF | 8 + .../build.properties | 4 + .../tycho.demo.itp02.bundle.tests/pom.xml | 15 + .../demo/itp02/bundle/tests/ITP02Test.java | 28 ++ .../META-INF/MANIFEST.MF | 7 + .../tycho.demo.itp02.bundle/build.properties | 4 + .../build02/tycho.demo.itp02.bundle/pom.xml | 15 + .../src/tycho/demo/itp02/bundle/ITP02.java | 23 ++ .../README.txt | 5 + .../org.tycho.demo.crossplatform.rcp.product | 45 +++ .../org.tycho.demo.crossplatform.rcp/pom.xml | 12 + .../META-INF/MANIFEST.MF | 11 + .../build.properties | 5 + .../org.tycho.demo.crossplatform/plugin.xml | 30 ++ .../org.tycho.demo.crossplatform/pom.xml | 11 + .../tycho/demo/crossplatform/Activator.java | 30 ++ .../tycho/demo/crossplatform/Application.java | 59 ++++ demo/itp03-crossplatform/pom.xml | 91 +++++ demo/itp04-rcp/.gitignore | 5 + demo/itp04-rcp/README.txt | 6 + demo/itp04-rcp/eclipse-repository/.gitignore | 5 + .../itp04-rcp/eclipse-repository/category.xml | 19 + .../eclipse-repository/example.p2.inf | 7 + .../eclipse-repository/example.product | 35 ++ demo/itp04-rcp/eclipse-repository/pom.xml | 57 +++ demo/itp04-rcp/example-bundle/.gitignore | 5 + .../example-bundle/META-INF/MANIFEST.MF | 12 + demo/itp04-rcp/example-bundle/about.html | 28 ++ demo/itp04-rcp/example-bundle/about.ini | 7 + .../itp04-rcp/example-bundle/build.properties | 19 + .../example-bundle/icons/alt_about.gif | Bin 0 -> 9340 bytes .../example-bundle/icons/alt_launcher.icns | Bin 0 -> 51159 bytes .../example-bundle/icons/alt_launcher.ico | Bin 0 -> 26694 bytes .../example-bundle/icons/alt_launcher.xpm | 307 ++++++++++++++++ .../example-bundle/icons/alt_window_16.gif | Bin 0 -> 637 bytes .../example-bundle/icons/alt_window_32.gif | Bin 0 -> 1192 bytes .../itp04-rcp/example-bundle/icons/sample.gif | Bin 0 -> 983 bytes .../example-bundle/images/featureImage.png | Bin 0 -> 1248 bytes demo/itp04-rcp/example-bundle/plugin.xml | 101 ++++++ demo/itp04-rcp/example-bundle/pom.xml | 27 ++ .../src/example/bundle/Activator.java | 75 ++++ .../src/example/bundle/Application.java | 62 ++++ .../bundle/ApplicationActionBarAdvisor.java | 32 ++ .../bundle/ApplicationWorkbenchAdvisor.java | 30 ++ .../ApplicationWorkbenchWindowAdvisor.java | 37 ++ .../src/example/bundle/Perspective.java | 22 ++ .../bundle/handlers/SampleHandler.java | 44 +++ demo/itp04-rcp/example-feature-2/.gitignore | 5 + .../example-feature-2/build.properties | 14 + demo/itp04-rcp/example-feature-2/epl-v10.html | 328 ++++++++++++++++++ .../example-feature-2/feature.properties | 157 +++++++++ demo/itp04-rcp/example-feature-2/feature.xml | 27 ++ demo/itp04-rcp/example-feature-2/license.html | 107 ++++++ demo/itp04-rcp/example-feature-2/pom.xml | 27 ++ demo/itp04-rcp/example-feature/.gitignore | 5 + demo/itp04-rcp/example-feature/README.txt | 0 .../example-feature/build.properties | 23 ++ demo/itp04-rcp/example-feature/epl-v10.html | 328 ++++++++++++++++++ .../example-feature/feature.properties | 157 +++++++++ demo/itp04-rcp/example-feature/feature.xml | 27 ++ demo/itp04-rcp/example-feature/license.html | 107 ++++++ demo/itp04-rcp/example-feature/pom.xml | 27 ++ .../rootfiles/linux/doc/doc_linux.html | 0 .../rootfiles/linux/scripts/hello | 2 + .../rootfiles/macosx/doc/doc_macos.html | 0 .../rootfiles/win/doc/doc_win.html | 0 demo/itp04-rcp/mars/.gitignore | 5 + demo/itp04-rcp/mars/mars.target | 13 + demo/itp04-rcp/mars/pom.xml | 27 ++ demo/itp04-rcp/pom.xml | 78 +++++ demo/itp04-rcp/root-files-windows/p2iu.xml | 17 + demo/itp04-rcp/root-files-windows/pom.xml | 15 + .../src/main/resources/windowsFile.txt | 0 demo/itp04-rcp/root-files/p2iu.xml | 24 ++ demo/itp04-rcp/root-files/pom.xml | 15 + .../root-files/src/main/resources/myFile.txt | 0 tycho-demo/README.txt | 5 - 107 files changed, 4010 insertions(+), 5 deletions(-) create mode 100644 demo/README.md create mode 100644 demo/itp01/pom.xml create mode 100644 demo/itp01/tycho.demo.itp01.tests/META-INF/MANIFEST.MF create mode 100644 demo/itp01/tycho.demo.itp01.tests/build.properties create mode 100644 demo/itp01/tycho.demo.itp01.tests/pom.xml create mode 100644 demo/itp01/tycho.demo.itp01.tests/src/tycho/demo/itp01/tests/ITP01Test.java create mode 100644 demo/itp01/tycho.demo.itp01/META-INF/MANIFEST.MF create mode 100644 demo/itp01/tycho.demo.itp01/build.properties create mode 100644 demo/itp01/tycho.demo.itp01/icons/alt_about.gif create mode 100644 demo/itp01/tycho.demo.itp01/icons/alt_launcher.icns create mode 100644 demo/itp01/tycho.demo.itp01/icons/alt_launcher.ico create mode 100644 demo/itp01/tycho.demo.itp01/icons/alt_launcher.xpm create mode 100644 demo/itp01/tycho.demo.itp01/icons/alt_window_16.gif create mode 100644 demo/itp01/tycho.demo.itp01/icons/alt_window_32.gif create mode 100644 demo/itp01/tycho.demo.itp01/icons/sample.gif create mode 100644 demo/itp01/tycho.demo.itp01/plugin.xml create mode 100644 demo/itp01/tycho.demo.itp01/pom.xml create mode 100644 demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Application.java create mode 100644 demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationActionBarAdvisor.java create mode 100644 demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchAdvisor.java create mode 100644 demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchWindowAdvisor.java create mode 100644 demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Perspective.java create mode 100644 demo/itp01/tycho.demo.itp01/src/tycho/demo/itp01/actions/SampleAction.java create mode 100644 demo/itp02/build01/pom.xml create mode 100644 demo/itp02/build01/pomfirst-bundle/META-INF/MANIFEST.MF create mode 100644 demo/itp02/build01/pomfirst-bundle/pom.xml create mode 100644 demo/itp02/build01/pomfirst-bundle/src/main/java/tycho/demo/itp02/pomfirst/PomFirst.java create mode 100644 demo/itp02/build01/pomfirst-thirdparty/META-INF/MANIFEST.MF create mode 100644 demo/itp02/build01/pomfirst-thirdparty/pom.xml create mode 100644 demo/itp02/build02/pom.xml create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle.tests/META-INF/MANIFEST.MF create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle.tests/build.properties create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle.tests/pom.xml create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle.tests/src/tycho/demo/itp02/bundle/tests/ITP02Test.java create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle/META-INF/MANIFEST.MF create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle/build.properties create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle/pom.xml create mode 100644 demo/itp02/build02/tycho.demo.itp02.bundle/src/tycho/demo/itp02/bundle/ITP02.java create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/README.txt create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/org.tycho.demo.crossplatform.rcp.product create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/pom.xml create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform/META-INF/MANIFEST.MF create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform/build.properties create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform/plugin.xml create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform/pom.xml create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Activator.java create mode 100644 demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Application.java create mode 100644 demo/itp03-crossplatform/pom.xml create mode 100644 demo/itp04-rcp/.gitignore create mode 100644 demo/itp04-rcp/README.txt create mode 100644 demo/itp04-rcp/eclipse-repository/.gitignore create mode 100644 demo/itp04-rcp/eclipse-repository/category.xml create mode 100644 demo/itp04-rcp/eclipse-repository/example.p2.inf create mode 100644 demo/itp04-rcp/eclipse-repository/example.product create mode 100644 demo/itp04-rcp/eclipse-repository/pom.xml create mode 100644 demo/itp04-rcp/example-bundle/.gitignore create mode 100644 demo/itp04-rcp/example-bundle/META-INF/MANIFEST.MF create mode 100644 demo/itp04-rcp/example-bundle/about.html create mode 100644 demo/itp04-rcp/example-bundle/about.ini create mode 100644 demo/itp04-rcp/example-bundle/build.properties create mode 100644 demo/itp04-rcp/example-bundle/icons/alt_about.gif create mode 100644 demo/itp04-rcp/example-bundle/icons/alt_launcher.icns create mode 100644 demo/itp04-rcp/example-bundle/icons/alt_launcher.ico create mode 100644 demo/itp04-rcp/example-bundle/icons/alt_launcher.xpm create mode 100644 demo/itp04-rcp/example-bundle/icons/alt_window_16.gif create mode 100644 demo/itp04-rcp/example-bundle/icons/alt_window_32.gif create mode 100644 demo/itp04-rcp/example-bundle/icons/sample.gif create mode 100644 demo/itp04-rcp/example-bundle/images/featureImage.png create mode 100644 demo/itp04-rcp/example-bundle/plugin.xml create mode 100644 demo/itp04-rcp/example-bundle/pom.xml create mode 100644 demo/itp04-rcp/example-bundle/src/example/bundle/Activator.java create mode 100644 demo/itp04-rcp/example-bundle/src/example/bundle/Application.java create mode 100644 demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationActionBarAdvisor.java create mode 100644 demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchAdvisor.java create mode 100644 demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchWindowAdvisor.java create mode 100644 demo/itp04-rcp/example-bundle/src/example/bundle/Perspective.java create mode 100644 demo/itp04-rcp/example-bundle/src/example/bundle/handlers/SampleHandler.java create mode 100644 demo/itp04-rcp/example-feature-2/.gitignore create mode 100644 demo/itp04-rcp/example-feature-2/build.properties create mode 100644 demo/itp04-rcp/example-feature-2/epl-v10.html create mode 100644 demo/itp04-rcp/example-feature-2/feature.properties create mode 100644 demo/itp04-rcp/example-feature-2/feature.xml create mode 100644 demo/itp04-rcp/example-feature-2/license.html create mode 100644 demo/itp04-rcp/example-feature-2/pom.xml create mode 100644 demo/itp04-rcp/example-feature/.gitignore create mode 100644 demo/itp04-rcp/example-feature/README.txt create mode 100644 demo/itp04-rcp/example-feature/build.properties create mode 100644 demo/itp04-rcp/example-feature/epl-v10.html create mode 100644 demo/itp04-rcp/example-feature/feature.properties create mode 100644 demo/itp04-rcp/example-feature/feature.xml create mode 100644 demo/itp04-rcp/example-feature/license.html create mode 100644 demo/itp04-rcp/example-feature/pom.xml create mode 100644 demo/itp04-rcp/example-feature/rootfiles/linux/doc/doc_linux.html create mode 100644 demo/itp04-rcp/example-feature/rootfiles/linux/scripts/hello create mode 100644 demo/itp04-rcp/example-feature/rootfiles/macosx/doc/doc_macos.html create mode 100644 demo/itp04-rcp/example-feature/rootfiles/win/doc/doc_win.html create mode 100644 demo/itp04-rcp/mars/.gitignore create mode 100644 demo/itp04-rcp/mars/mars.target create mode 100644 demo/itp04-rcp/mars/pom.xml create mode 100644 demo/itp04-rcp/pom.xml create mode 100644 demo/itp04-rcp/root-files-windows/p2iu.xml create mode 100644 demo/itp04-rcp/root-files-windows/pom.xml create mode 100644 demo/itp04-rcp/root-files-windows/src/main/resources/windowsFile.txt create mode 100644 demo/itp04-rcp/root-files/p2iu.xml create mode 100644 demo/itp04-rcp/root-files/pom.xml create mode 100644 demo/itp04-rcp/root-files/src/main/resources/myFile.txt delete mode 100644 tycho-demo/README.txt diff --git a/demo/README.md b/demo/README.md new file mode 100644 index 0000000000..315f0e2e67 --- /dev/null +++ b/demo/README.md @@ -0,0 +1,25 @@ +Tycho Demo Projects +=================== + +Sample projects demonstrating how to use Tycho. + +* `itp01/`: Simple application that demonstrates how to build an eclipse plug-in and execute JUnit tests +* `itp02/`: Simple application that demonstrates [use of pom-first dependencies](https://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts) +* `itp03-crossplatform/`: _(Deprecated)_ Trivial cross-platform RCP application that displays a SWT MessageBox with current OSGi os/ws/arch properties. Specify either -Pe35 or -Pe36 to build for specified eclipse version +* `itp04-rcp/`: [Trivial cross-platform RCP product application with root files which can be updated by means of p2](https://wiki.eclipse.org/Tycho/Demo_Projects/RCP_Application) + +Each demo project (except itp02) can be built by executing: + + mvn clean install + +in the corresponding folder. + +About Tycho +=========== + + * [Project Homepage](http://www.eclipse.org/tycho/) + * [Documentation](http://eclipse.org/tycho/documentation.php) + * [Bug Tracker](https://bugs.eclipse.org/bugs/buglist.cgi?product=Tycho) + * [How to Contribute](http://wiki.eclipse.org/Tycho/Contributor_Guide) + * [Contact Us](https://dev.eclipse.org/mailman/listinfo/tycho-user) + diff --git a/demo/itp01/pom.xml b/demo/itp01/pom.xml new file mode 100644 index 0000000000..21277e98ab --- /dev/null +++ b/demo/itp01/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + tycho.demo.itp01 + parent + 1.0.0-SNAPSHOT + pom + + tycho.demo.itp01 + tycho.demo.itp01.tests + + + + 2.3.0 + + + + + helios + p2 + http://download.eclipse.org/releases/helios + + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + + + diff --git a/demo/itp01/tycho.demo.itp01.tests/META-INF/MANIFEST.MF b/demo/itp01/tycho.demo.itp01.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..d368d19398 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01.tests/META-INF/MANIFEST.MF @@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Tests Plug-in +Bundle-SymbolicName: tycho.demo.itp01.tests +Bundle-Version: 1.0.0.qualifier +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.junit4, + tycho.demo.itp01;bundle-version="1.0.0", + org.eclipse.ui diff --git a/demo/itp01/tycho.demo.itp01.tests/build.properties b/demo/itp01/tycho.demo.itp01.tests/build.properties new file mode 100644 index 0000000000..34d2e4d2da --- /dev/null +++ b/demo/itp01/tycho.demo.itp01.tests/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/demo/itp01/tycho.demo.itp01.tests/pom.xml b/demo/itp01/tycho.demo.itp01.tests/pom.xml new file mode 100644 index 0000000000..d5a7eee5d0 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01.tests/pom.xml @@ -0,0 +1,52 @@ + + + 4.0.0 + + + tycho.demo.itp01 + parent + 1.0.0-SNAPSHOT + + + tycho.demo.itp01.tests + eclipse-test-plugin + + + + + org.eclipse.tycho + tycho-surefire-plugin + ${tycho-version} + + true + + + + + + + + osx + + + mac + + + + + + + org.eclipse.tycho + tycho-surefire-plugin + ${tycho-version} + + -XstartOnFirstThread + + + + + + + + + diff --git a/demo/itp01/tycho.demo.itp01.tests/src/tycho/demo/itp01/tests/ITP01Test.java b/demo/itp01/tycho.demo.itp01.tests/src/tycho/demo/itp01/tests/ITP01Test.java new file mode 100644 index 0000000000..b34537ca21 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01.tests/src/tycho/demo/itp01/tests/ITP01Test.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp01.tests; + +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.PlatformUI; +import org.junit.Test; + +import tycho.demo.itp01.actions.SampleAction; + +public class ITP01Test { + + @Test + public void sampleAction() { + IWorkbench workbench = PlatformUI.getWorkbench(); + + SampleAction action = new SampleAction(); + action.init(workbench.getActiveWorkbenchWindow()); + +// action.run(null); + } + +} diff --git a/demo/itp01/tycho.demo.itp01/META-INF/MANIFEST.MF b/demo/itp01/tycho.demo.itp01/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..07e9bee0d5 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/META-INF/MANIFEST.MF @@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Itp Plug-in +Bundle-SymbolicName: tycho.demo.itp01;singleton:=true +Bundle-Version: 1.0.0.qualifier +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.ui +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: tycho.demo.itp01.actions;x-friends:="tycho.demo.itp01.tests" diff --git a/demo/itp01/tycho.demo.itp01/build.properties b/demo/itp01/tycho.demo.itp01/build.properties new file mode 100644 index 0000000000..2b0d95b6b0 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + . diff --git a/demo/itp01/tycho.demo.itp01/icons/alt_about.gif b/demo/itp01/tycho.demo.itp01/icons/alt_about.gif new file mode 100644 index 0000000000000000000000000000000000000000..20d9ad2d98dbd6820da5adbd9a1728153d3ff0c2 GIT binary patch literal 9340 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 literal 0 HcmV?d00001 diff --git a/demo/itp01/tycho.demo.itp01/icons/alt_launcher.icns b/demo/itp01/tycho.demo.itp01/icons/alt_launcher.icns new file mode 100644 index 0000000000000000000000000000000000000000..b77a6a63938e43ee977646573dbd9a45fd1983af GIT binary patch literal 51159 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

N=U55wS;a{OH*SV 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 Mpnv}UzqP>s0IH1_y#N3J literal 0 HcmV?d00001 diff --git a/demo/itp01/tycho.demo.itp01/icons/alt_launcher.xpm b/demo/itp01/tycho.demo.itp01/icons/alt_launcher.xpm new file mode 100644 index 0000000000..0ff90332a7 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/icons/alt_launcher.xpm @@ -0,0 +1,307 @@ +/* XPM */ +static char * icon48_xpm[] = { +"48 48 256 2", +" c #4B4B3B3B9090", +". c #0D0D0E0E5454", +"X c #11110E0E5B5B", +"o c #17170F0F6363", +"O c #1D1D13136969", +"+ c #212114146C6C", +"@ c #252514147171", +"# c #282811116C6C", +"$ c #26260D0D6363", +"% c #22220B0B5E5E", +"& c #1C1C0B0B5A5A", +"* c #1C1C0B0B5252", +"= c #1B1B05055353", +"- c #161606064D4D", +"; c #161605054949", +": c #111104044848", +"> c #131304044545", +", c #131305054242", +"< c #141410105E5E", +"1 c #2C2C15157373", +"2 c #2B2B1B1B7575", +"3 c #343416167272", +"4 c #313113136E6E", +"5 c #222209095757", +"6 c #1B1B06064D4D", +"7 c #15150B0B4242", +"8 c #13130C0C5555", +"9 c #2E2E1B1B7878", +"0 c #33331F1F7C7C", +"q c #343418187878", +"w c #3B3B1C1C7575", +"e c #2E2E10106767", +"r c #1B1B07074747", +"t c #18180B0B4646", +"y c #151513136262", +"u c #1A1A15156464", +"i c #34341F1F7777", +"p c #40401E1E8080", +"a c #42421B1B7A7A", +"s c #3B3B15157474", +"d c #2B2B0B0B5B5B", +"f c #222207075252", +"g c #373727277A7A", +"h c #474724248484", +"j c #393915156E6E", +"k c #373711116A6A", +"l c #343413136363", +"z c #232319196E6E", +"x c #292919197070", +"c c #3C3C2C2C8282", +"v c #444431318585", +"b c #494934348A8A", +"n c #505026268A8A", +"m c #3D3D1B1B6E6E", +"M c #31310E0E5C5C", +"N c #2B2B0D0D5353", +"B c #222207074A4A", +"V c #52523C3C9292", +"C c #58583C3C9494", +"Z c #5D5D44449797", +"A c #5C5C2E2E9292", +"S c #676733339595", +"D c #424228287575", +"F c #29290A0A4F4F", +"G c #6C6C4A4A9E9E", +"H c #72725454A7A7", +"J c #8C8C6D6DB2B2", +"K c #343424246E6E", +"L c #3A3A23236A6A", +"P c #3A3A1C1C6767", +"I c #24240A0A4B4B", +"U c #151518186161", +"Y c #76766F6FA5A5", +"T c #ADAD9191CCCC", +"R c #98988989D3D3", +"E c #45453B3B8686", +"W c #3C3C35357979", +"Q c #363631317575", +"! c #32322D2D6B6B", +"~ c #323229296363", +"^ c #30301F1F6262", +"/ c #323218185E5E", +"( c #272707074B4B", +") c #202028286C6C", +"_ c #1E1E1D1D6868", +"` c #9A9A8282BBBB", +"' c #C8C8B3B3D3D3", +"] c #B3B3AFAFE7E7", +"[ c #84847272C6C6", +"{ c #58585757A3A3", +"} c #3F3F3C3C8A8A", +"| c #3B3B3A3A8484", +" . c #414139397D7D", +".. c #3D3D39397A7A", +"X. c #37372E2E6E6E", +"o. c #2C2C21215A5A", +"O. c #2E2E1B1B5B5B", +"+. c #F5F5EFEFF5F5", +"@. c #656566669A9A", +"#. c #47474B4B8E8E", +"$. c #3C3C44447B7B", +"%. c #444442428080", +"&. c #45453E3E8181", +"*. c #40403C3C8181", +"=. c #3D3D33337474", +"-. c #3B3B30306E6E", +";. c #38382D2D6969", +":. c #303026265D5D", +">. c #2C2C15155A5A", +",. c #1F1F1C1C7070", +"<. c #25251E1E7171", +"1. c #59595C5C9191", +"2. c #4D4D53538989", +"3. c #4C4C49498484", +"4. c #484845458585", +"5. c #494941418585", +"6. c #494940408181", +"7. c #2F2F1C1C5353", +"8. c #2B2B28287676", +"9. c #323231317F7F", +"0. c #545452528B8B", +"q. c #51514E4E8989", +"w. c #4E4E4B4B8C8C", +"e. c #4C4C47478686", +"r. c #46463D3D7E7E", +"t. c #434336367A7A", +"y. c #2B2B13135555", +"u. c #47473D3D8D8D", +"i. c #575757578E8E", +"p. c #48483E3E7F7F", +"a. c #46463A3A7D7D", +"s. c #424235357575", +"d. c #404034347171", +"f. c #BFBFCBCBFAFA", +"g. c #B8B8A8A8DDDD", +"h. c #5E5E60609292", +"j. c #565655558C8C", +"k. c #4B4B44448282", +"l. c #454539397B7B", +"z. c #434338387878", +"x. c #3F3F32326D6D", +"c. c #3D3D30306969", +"v. c #3A3A2E2E6363", +"b. c #36362A2A5C5C", +"n. c #343424245555", +"m. c #30301E1E4D4D", +"M. c #49493C3C8282", +"N. c #5E5E4F4F8C8C", +"B. c #56563B3B8B8B", +"V. c #545407078585", +"C. c #424234347272", +"Z. c #9797A4A4F7F7", +"A. c #444436367676", +"S. c #7D7D7979D5D5", +"D. c #464640408A8A", +"F. c #44444B4B8282", +"G. c #414107077777", +"H. c #71716161C1C1", +"J. c #303039397979", +"K. c #8E8E8E8EE6E6", +"L. c #404033338B8B", +"P. c #4A4A45458C8C", +"I. c #46463A3A8080", +"U. c #363629295454", +"Y. c #303022224848", +"T. c #424237377575", +"R. c #2E2E1D1D6363", +"E. c #79798383EAEA", +"W. c #74747B7BE4E4", +"Q. c #6D6D7676D6D6", +"!. c #6A6A7171CECE", +"~. c #66666969C6C6", +"^. c #62626565BCBC", +"/. c #5F5F6060B5B5", +"(. c #5B5B5B5BACAC", +"). c #535353539898", +"_. c #4F4F4F4FA4A4", +"`. c #54544D4DA4A4", +"'. c #323204046B6B", +"]. c #303035357979", +"[. c #313122224343", +"{. c #5A5A5B5BB7B7", +"}. c #484846468080", +"|. c #454541417575", +" X c #4B4B31318282", +".X c #47473C3C8484", +"XX c #3E3E35356E6E", +"oX c #2F2F26264040", +"OX c #2B2B23233A3A", +"+X c #262619195C5C", +"@X c #252515155A5A", +"#X c #55555151B3B3", +"$X c #3C3C2D2D5D5D", +"%X c #39392F2F5656", +"&X c #37372D2D5050", +"*X c #25251F1F3030", +"=X c #24241D1D4343", +"-X c #202013135656", +";X c #41413B3B6C6C", +":X c #444442429696", +">X c #212100005E5E", +",X c #444436367272", +" > , , , ", +" . . X X < < o o O O + @ 1 2 2 1 1 1 1 1 1 1 1 3 4 # # $ $ $ % % % 5 = = 6 6 - ; ; > > , , 7 ", +" . 8 < < < o O O + @ @ 2 9 9 0 0 q q q q q q q w 3 4 4 e e $ $ $ $ % 5 = = 6 6 6 ; ; > > r t ", +" . X < y u O O + @ 1 2 i 0 0 p p p p p p p a a p a s 3 4 4 e e e e d 5 5 f f 6 6 6 ; ; r r t ", +" X < y u O + + @ 2 9 0 g p p h h h h h h h p h h a a s s j k k j l d d 5 5 f f 6 6 r r r r r ", +" X < y O z x x 9 0 g c v b n n n n n n n n n n n h a a s s j j m l M d d N f f B B B B r r r ", +" < y u + z 2 0 c c b V C Z C C A A A A A S S S n h D w w m m m m k l M d d N f F F F B r r r ", +" < y O z z 9 c b V Z G H H H G S G G J J H V v c g g K K K K L P l l l M M N N N N I B B r r ", +" U u + z x i v C H Y J J J J H J T R H V E W W Q Q Q Q ! ! ! ~ ^ ^ / / M M M M M N ( B B r r ", +" ) _ z x 9 g b Z Y ` ' ' ' T T ] [ { } | .........W W Q Q X.! ~ ~ o.O./ / / / N F ( B B B r ", +" ) ) z x i c V G J ' +.+.+.+.] [ @.#.$.%.%.%.&.*. . .....W =.-.X.;.~ :.o.O.^ >.N F ( B B B B ", +" ) ,.<.2 g v C H J ' +.+.+.+.T Y 1.2.3.4.4.4.5.6.&.&. . ...W =.=.-.;.~ :.o.7.>.N F F ( B I I ", +" ) ,.<.8.9.b C H J T +.+.+.' J @.1.0.q.q.w.e.4.5.6.&.r. . .t.W =.=.-.;.~ :.o.7.y.N F ( ( I I ", +" 8.8.8.9.| u.C G J T +.+.' ` Y @.1.i.0.q.q.e.e.5.6.p.r.a. .t.t.s.d.d.-.;.~ :.7.7.y.F F ( I I ", +" 9.c c c v b A S H ' f.g.` Y @.h.1.i.j.0.q.q.e.k.6.p.r.a.l.t.z.s.s.d.x.c.v.b.n.m.7.N F F F I ", +" <.g M.N.B.B.n V.J f.R J @.h.h.1.i.i.j.j.0.q.3.k.6.p.r.a.l.l.z.s.C.d.x.x.c.v.b.n.m.y.N F F F ", +" + x i v B.Z Z G g.Z.[ @.2.i.i.j.j.j.j.j.0.q.3.k.6.p.p.a.l.l.A.s.C.C.d.x.c.v.b.n.m.7.y.N N y. ", +" O # 3 w p n Z ` f.S.H D.F.q.0.0.0.0.j.0.q.q.3.k.6.p.r.a.a.l.A.s.s.C.d.x.x.c.v.b.n.m.y.y.y.y. ", +" O # 4 s a G.V.T Z.H.V J.%.e.w.q.0.0.0.0.q.q.e.k.6.p.r.a.a.l.z.A.s.C.d.d.x.c.v.b.n.m.7.>.y.y. ", +" O # 4 s w G.A f.K.H L...4.P.w.w.w.q.q.q.q.e.e.5.6.M.I.I.a.a.l.z.A.s.d.d.x.c.v.v.U.Y.7.O.>.y. ", +" $ # 4 3 s G.G f.S.Z 9.*.D.P.P.w.w.w.w.w.e.e.5.5.M.M.I.I.a.a.l.z.T.s.d.d.x.x.c.v.U.Y.m.R.>.>. ", +" E.E.W.W.W.W.E.Z.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.~.~.~.~.~.~.^.^.^.^.^./././.(.{ { )._.`._. ", +" + # 3 w s '.` f.H.V ].*.D.P.P.P.P.P.P.P.5.5.5.M.M.M.I.I.a.l.z.z.T.T.s.d.d.x.c.v.U.Y.[.^ O.>. ", +" ~.~.~.~.~.~.K.Z.S.~.{.^.^.^.^.^.^.^.^././././././.(.(.(.(.(.(.{ { { { { ).).).w.w.}.|.P.u.} ", +" .I.6. X X XT f.H.b ].*.E D.D.D.D.5.5..X.XM.M.I.I.a.a.l.l.z.z.T.T.T.d.XXx.c.v.b.U.oXOXR.+X@X ", +" E.E.E.W.W.W.K.Z.E.W.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.!.~.~.~.~.~.~.^.^.^.^.^./././.(.{ { ).).#X_._. ", +" & % $ e '.= H f.H.b 8.W *.E E E .X.X.XI.I.I.I.a.a.l.l.z.z.T.T.T.C.XXXXc.v.$X%X&XY.*X=X2 @X-X ", +" {.{.{.{.{.#X~.Z.W.~.{.{./././././././././.(.(.(.(.(.(.(.{ { { { { { ).).).w.w.3.}.;X%.:X} } ", +" & & % $ e >XV.f.S.C K X.W t. . .l.l.t.t.t.t.A.A.A.,X,X,X,X,XX7X` Z.Z D ! =.=.s.t.t.t.A.A.s.A.,X,X,X,X > > t t t cX ", +" nXbXbXzXzXlXaXXXY +Xf = f = 7XtXR R mXn.Y.[.[.[.[.OX*X*X8X5X*X=X,.u vXvX; > > MXMX, 7 t t ", +" nXnXnXbXzXvX-.Y +XcX6 6 = = = d L B.G H `.X.:.7.m.=X=X=X=X=X6X,.u cXvXNX: BX> MXVXCXVX7 7 7 ", +" ZXZXnXbXAXgX@.+XvX; - - - - * @XR.>.sX>.R.i 0 x eXeXeXeXO hXaXcXvXNX: BXMXMXMXVXCXCXCXVX7 7 ", +" SXZXZXAXgXN.aXNX: : NXNXNX- * +X+X* 6 6 6 * * * * * * * vXvX- NX: DXBXMXMXFXCXCXCXCXGXVXVX7 ", +" SXSXHXgX0.JXKXLXKXKXDX: : NX* @X-X- - - - - - - - - - - NX: DXDXDXMXMXFXFXCXCXCXCXGXGXGXVXVX ", +" SXHXPX3.JXnXnXnXnXbXLXKXKXNXaX-XvX: : NX: : : : : : : BXDXDXLXMXMXFXFXCXCXCXCXGXGXGXGXGXGXGX ", +" IXUX$.AXZXZXZXZXnXnXnXLXLXNXJXvXBXDXBXBXBXBXDXDXDXDXLXDXLXLXFXFXFXFXCXCXCXCXGXGXGXGXGXGXGXGX ", +" "}; diff --git a/demo/itp01/tycho.demo.itp01/icons/alt_window_16.gif b/demo/itp01/tycho.demo.itp01/icons/alt_window_16.gif new file mode 100644 index 0000000000000000000000000000000000000000..05626b17d8133fb8d4644b1d6fef71b5464a83ec GIT binary patch literal 637 zcmV-@0)qWVNk%w1VGsZi0OkMyi-8)}*O-2lP0Hw}F;@yymoek*x!Lop&FGr*^SR~k zs^;O9;p?WSqgKtvhMApMhF*N^?6&X&9pLg?DBG(C(ez;g!PXhs))Rw8MzH&4Z(_ zXvf!@hj|a@|9{HUwg3O)o~~}>@~^JReYVZIH1tGelN zk%v8>nmw<;lBk_yvbu)E--D*OeB8x>j*3>k(uk0bLzTd1hNNNJ=CYr@WM^3dMPxF! zzph4nBvxlHz`%CY-G9r{sL|c0ptWPh!<4SPZ@9Bvy2FG2|H;$mn~9BNUw$#w=Y!bc zgtn}6%i@6G^tH9ZgW}z-$IYnz|B<@Hh`+RXy1~Awt!2U5leENdA^8LV00000EC2ui z01yBW000NtfPaF6goT0uIU{mqadcHX2yRVIXMzhO7(q`I6h}HJI0pwxmKbPYVl@J4 zDm{J(2S|cfc{Cdv4KaNy8g_n31A=5;1shmX4-f6x{Jf>7ZWJ08yT*#Oz=YiBkILwmjfEnosaBAPDf9ls zyvdZd!-~Sos+W>G-s`Nk{FBSui~9V#l#Mgv?ySDMe7VAbsjYFcx_8&zi?qIfzR97t z#FCqrMWLNf&E=%y`n1>coVmr8xaEKH{mbL}t&D;gy~&Qj%#~z(LzA{)#N~zP^|R~m zp}otUtJHMC;*HGdj_LHdqq%0d+j+ajo586>NW&Zue=J&Va z_qWdQp*=VauEA}uv~jPtc+cjr?)$_4|H+n~Sk~>BfR;|v}n2Rhi`F=4Oay#WC( zz<`mgpCCAqiV)E;p<@9xCQK|?u;RoC1{4_NfH;66xr-`97}&wFV-*P~5+pD)vg8R0 zI93LL@noC>K`K;O`4g|B4lhV>>g2hiWCx%^T^{{orJ4a655`o18dWM!k`*dk<&Yyl zfG5fS1RaQShe(_;Sx`vWyEms9sw>oDh4>bLpfy5xfE`1`gkHXW0jpj6!!3+1hlRY6 zQy_~06J=0{7QHhC$-sg+aIlQ|&yCj@I%Akk8-s@1w@K(G@u9a17cX99$UG;+7%U7@ zlv%#~uj#6&*RB>2ppBs0bz)=quzPp!?;n2u4lX=Hp5cE)h!8^KID-=@;>$l>HEo9u zEsU@TAYhAi*RXY_!ECq{*d1@a0TQou6B7<7n0fl1KSm)2x0%)o*NS_pu^79a?c zi406UP(TnUnRKCj_u;1@haNhyM2LS(vBn8V+%d);0pLIZ1uX`dp?)5CAb^J;(kQ|I zO&6rWMFAHKfP;@MwvgcrL>d{R5+KlMf)rB#V8eqMJTZW399TI6mRTN&00K)uQ9=oV zj6lE?NdPc{4UC;JKn`ef@B<4QcIY7jTsF`EoqsUV$rLsKus{?aoe{tQKV-V0mT$rd z#SlFxTBoA~G~mSmU&O#h6&*O?mRoMV=|mHsf-*z{b&fDX4^<2hfeki9pa&ONoDhH$ z$Rgl`5=xXX1OyR83&9Y%G9keL8+1ZI5?#aq01O8-A+8@KG|&UI(QdE-8ln901s{1V z@dXp4mH#SB%I7#TXkB G2mm{gq(mG5 literal 0 HcmV?d00001 diff --git a/demo/itp01/tycho.demo.itp01/icons/sample.gif b/demo/itp01/tycho.demo.itp01/icons/sample.gif new file mode 100644 index 0000000000000000000000000000000000000000..34fb3c9d8cb7d489681b7f7aee4bdcd7eaf53610 GIT binary patch literal 983 zcmZ?wbhEHb6krfw_|CxKYUg-n!?izO{@9*?jxd%4aX0yzy`dymabz zw#(eg=y~&N&n)dZv2xzduG}5lraiApo3(c4*{Ylg5#|$JO_EEZ<^|a2`Z*=9ns7DV zy=TR&gYw*7f%auV?ip3tvjRPmcdoho{K?x$_vR?C#t5&<;~V}S*>OMCr>h}%%bLZ9 zmo3`hYEwTICo-TTCZwgTsC&VjZRgJ1eE#fBa^%9R zmmfWS@;bnyJ27HWY}kxYzv(Hl>yu;FCPlAEh+34Muq-8Rb6C)<8qA3{r2e5 z`$vyngh#H=FWlqqvnapfc5%(!sQ4v?r7J61-&eJNEN^;KTK}T7{#i-gJh%G*9vcYdwv_*~xdw!Gz4Va?T!sXyyF@8?w<>X`X=#j%uHV4GRvj@+tE@ zQ%F!a)GKcn^~8abN>4la1UNXVL;{ZWi)lEwyeatDu%Lr6;aASiLrXXW zQm# + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + diff --git a/demo/itp01/tycho.demo.itp01/pom.xml b/demo/itp01/tycho.demo.itp01/pom.xml new file mode 100644 index 0000000000..5bc050ad11 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + + + tycho.demo.itp01 + parent + 1.0.0-SNAPSHOT + + + tycho.demo.itp01 + eclipse-plugin + + diff --git a/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Application.java b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Application.java new file mode 100644 index 0000000000..80673dcda8 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Application.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp; + +import org.eclipse.equinox.app.IApplication; +import org.eclipse.equinox.app.IApplicationContext; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.PlatformUI; + +/** + * This class controls all aspects of the application's execution + */ +public class Application implements IApplication { + + /* + * (non-Javadoc) + * + * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext) + */ + public Object start(IApplicationContext context) throws Exception { + Display display = PlatformUI.createDisplay(); + try { + int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); + if (returnCode == PlatformUI.RETURN_RESTART) + return IApplication.EXIT_RESTART; + else + return IApplication.EXIT_OK; + } finally { + display.dispose(); + } + + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.equinox.app.IApplication#stop() + */ + public void stop() { + final IWorkbench workbench = PlatformUI.getWorkbench(); + if (workbench == null) + return; + final Display display = workbench.getDisplay(); + display.syncExec(new Runnable() { + public void run() { + if (!display.isDisposed()) + workbench.close(); + } + }); + } +} diff --git a/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationActionBarAdvisor.java b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationActionBarAdvisor.java new file mode 100644 index 0000000000..1f38959c05 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationActionBarAdvisor.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp; + +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.application.ActionBarAdvisor; +import org.eclipse.ui.application.IActionBarConfigurer; + +public class ApplicationActionBarAdvisor extends ActionBarAdvisor { + + public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { + super(configurer); + } + + protected void makeActions(IWorkbenchWindow window) { + } + + protected void fillMenuBar(IMenuManager menuBar) { + } + +} diff --git a/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchAdvisor.java b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchAdvisor.java new file mode 100644 index 0000000000..440f75dc94 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchAdvisor.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp; + +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchAdvisor; +import org.eclipse.ui.application.WorkbenchWindowAdvisor; + +public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor { + + private static final String PERSPECTIVE_ID = "tycho.demo.itp.perspective"; + + public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { + return new ApplicationWorkbenchWindowAdvisor(configurer); + } + + public String getInitialWindowPerspectiveId() { + return PERSPECTIVE_ID; + } +} diff --git a/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchWindowAdvisor.java b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchWindowAdvisor.java new file mode 100644 index 0000000000..71306c083b --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/ApplicationWorkbenchWindowAdvisor.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp; + +import org.eclipse.swt.graphics.Point; +import org.eclipse.ui.application.ActionBarAdvisor; +import org.eclipse.ui.application.IActionBarConfigurer; +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchWindowAdvisor; + +public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { + + public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { + super(configurer); + } + + public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) { + return new ApplicationActionBarAdvisor(configurer); + } + + public void preWindowOpen() { + IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); + configurer.setInitialSize(new Point(400, 300)); + configurer.setShowCoolBar(false); + configurer.setShowStatusLine(false); + configurer.setTitle("Hello RCP"); + } +} diff --git a/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Perspective.java b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Perspective.java new file mode 100644 index 0000000000..af349ca067 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp/Perspective.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp; + +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IPerspectiveFactory; + +public class Perspective implements IPerspectiveFactory { + + public void createInitialLayout(IPageLayout layout) { + } +} diff --git a/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp01/actions/SampleAction.java b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp01/actions/SampleAction.java new file mode 100644 index 0000000000..db850b0441 --- /dev/null +++ b/demo/itp01/tycho.demo.itp01/src/tycho/demo/itp01/actions/SampleAction.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp01.actions; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.IWorkbenchWindowActionDelegate; +import org.eclipse.jface.dialogs.MessageDialog; + +/** + * Our sample action implements workbench action delegate. The action proxy will be created by the + * workbench and shown in the UI. When the user tries to use the action, this delegate will be + * created and execution will be delegated to it. + * + * @see IWorkbenchWindowActionDelegate + */ +public class SampleAction implements IWorkbenchWindowActionDelegate { + private IWorkbenchWindow window; + + /** + * The constructor. + */ + public SampleAction() { + } + + /** + * The action has been activated. The argument of the method represents the 'real' action + * sitting in the workbench UI. + * + * @see IWorkbenchWindowActionDelegate#run + */ + public void run(IAction action) { + MessageDialog.openInformation(window.getShell(), "Itp Plug-in", "Hello, Eclipse world"); + } + + /** + * Selection in the workbench has been changed. We can change the state of the 'real' action + * here if we want, but this can only happen after the delegate has been created. + * + * @see IWorkbenchWindowActionDelegate#selectionChanged + */ + public void selectionChanged(IAction action, ISelection selection) { + } + + /** + * We can use this method to dispose of any system resources we previously allocated. + * + * @see IWorkbenchWindowActionDelegate#dispose + */ + public void dispose() { + } + + /** + * We will cache window object in order to be able to provide parent shell for the message + * dialog. + * + * @see IWorkbenchWindowActionDelegate#init + */ + public void init(IWorkbenchWindow window) { + this.window = window; + } +} diff --git a/demo/itp02/build01/pom.xml b/demo/itp02/build01/pom.xml new file mode 100644 index 0000000000..cb1b5bb9f4 --- /dev/null +++ b/demo/itp02/build01/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + + + 3.0 + + + tycho.demo.itp02 + itp02-pomfirst-parent + 1.0.0-SNAPSHOT + pom + + + 2.3.0 + + META-INF + + + + pomfirst-bundle + pomfirst-thirdparty + + + + + + org.codehaus.plexus + plexus-utils + 2.0.7 + + + + + + + + + maven-jar-plugin + 2.3.1 + + + ${manifest-location}/MANIFEST.MF + + + + + org.apache.felix + maven-bundle-plugin + 2.1.0 + + ${manifest-location} + + + + + + diff --git a/demo/itp02/build01/pomfirst-bundle/META-INF/MANIFEST.MF b/demo/itp02/build01/pomfirst-bundle/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..224e6401d1 --- /dev/null +++ b/demo/itp02/build01/pomfirst-bundle/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Export-Package: tycho.demo.itp02.pomfirst;uses:="org.codehaus.plexus.u + til";version="1.0.0.SNAPSHOT" +Bundle-Version: 1.0.0.SNAPSHOT +Tool: Bnd-0.0.357 +Bundle-Name: pomfirst-bundle +Bnd-LastModified: 1432827265000 +Created-By: 1.7.0_67 (Oracle Corporation) +Bundle-ManifestVersion: 2 +Bundle-SymbolicName: tycho.demo.itp02.pomfirst-bundle +Import-Package: org.codehaus.plexus.util,tycho.demo.itp02.pomfirst;ver + sion="1.0" + diff --git a/demo/itp02/build01/pomfirst-bundle/pom.xml b/demo/itp02/build01/pomfirst-bundle/pom.xml new file mode 100644 index 0000000000..25752e234b --- /dev/null +++ b/demo/itp02/build01/pomfirst-bundle/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + + + tycho.demo.itp02 + itp02-pomfirst-parent + 1.0.0-SNAPSHOT + + + pomfirst-bundle + + + + org.codehaus.plexus + plexus-utils + + + + + + + org.apache.felix + maven-bundle-plugin + + + bundle-manifest + process-classes + + manifest + + + + + + + + diff --git a/demo/itp02/build01/pomfirst-bundle/src/main/java/tycho/demo/itp02/pomfirst/PomFirst.java b/demo/itp02/build01/pomfirst-bundle/src/main/java/tycho/demo/itp02/pomfirst/PomFirst.java new file mode 100644 index 0000000000..b287b2dade --- /dev/null +++ b/demo/itp02/build01/pomfirst-bundle/src/main/java/tycho/demo/itp02/pomfirst/PomFirst.java @@ -0,0 +1,23 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp02.pomfirst; + +import org.codehaus.plexus.util.StringUtils; + +public class PomFirst { + + public String getMessage() { + return StringUtils.clean("maven-bundle-plugin"); + } + +} diff --git a/demo/itp02/build01/pomfirst-thirdparty/META-INF/MANIFEST.MF b/demo/itp02/build01/pomfirst-thirdparty/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..cddaeacf0c --- /dev/null +++ b/demo/itp02/build01/pomfirst-thirdparty/META-INF/MANIFEST.MF @@ -0,0 +1,29 @@ +Manifest-Version: 1.0 +Export-Package: org.codehaus.plexus.util.reflection;version="2.0.7",or + g.codehaus.plexus.util.cli;version="2.0.7",org.codehaus.plexus.util.d + ag;version="2.0.7",org.codehaus.plexus.util.introspection;version="2. + 0.7",org.codehaus.plexus.util.xml.pull;version="2.0.7",org.codehaus.p + lexus.util.cli.shell;version="2.0.7",org.codehaus.plexus.util.io;vers + ion="2.0.7",org.codehaus.plexus.util.xml;version="2.0.7",org.codehaus + .plexus.util;version="2.0.7" +Embed-Directory: jars +Bundle-ClassPath: jars/plexus-utils-2.0.7.jar +Built-By: d037913 +Tool: Bnd-0.0.357 +Bundle-Name: pomfirst-thirdparty +Created-By: Apache Maven Bundle Plugin +Build-Jdk: 1.7.0_67 +Bundle-Version: 1.0.0.SNAPSHOT +Bnd-LastModified: 1432827267797 +Embed-Transitive: true +Bundle-ManifestVersion: 2 +Embed-Dependency: plexus-utils +Import-Package: org.codehaus.plexus.util;version="2.0",org.codehaus.pl + exus.util.cli;version="2.0",org.codehaus.plexus.util.cli.shell;versio + n="2.0",org.codehaus.plexus.util.dag;version="2.0",org.codehaus.plexu + s.util.introspection;version="2.0",org.codehaus.plexus.util.io;versio + n="2.0",org.codehaus.plexus.util.reflection;version="2.0",org.codehau + s.plexus.util.xml;version="2.0",org.codehaus.plexus.util.xml.pull;ver + sion="2.0" +Bundle-SymbolicName: tycho.demo.itp02.pomfirst-thirdparty + diff --git a/demo/itp02/build01/pomfirst-thirdparty/pom.xml b/demo/itp02/build01/pomfirst-thirdparty/pom.xml new file mode 100644 index 0000000000..2f861b6f5a --- /dev/null +++ b/demo/itp02/build01/pomfirst-thirdparty/pom.xml @@ -0,0 +1,99 @@ + + + 4.0.0 + + + tycho.demo.itp02 + itp02-pomfirst-parent + 1.0.0-SNAPSHOT + + + pomfirst-thirdparty + bundle + + + + org.codehaus.plexus + plexus-utils + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + + plexus-utils + + <_exportcontents> + org.codehaus.plexus.util.*;version="2.0.7" + + {maven-dependencies} + true + jars + <_failok>true + <_nouses>true + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + bundle + org.sonatype.tycho.m2e.wrapperBundle + + + + + + org.apache.felix + maven-bundle-plugin + 2.1.0 + + bundle + + + + + org.sonatype.tycho.m2e.wrapperBundle + + + + + + org.apache.felix + maven-bundle-plugin + 2.1.0 + + manifest + + + + + + + + + + + + + + + + diff --git a/demo/itp02/build02/pom.xml b/demo/itp02/build02/pom.xml new file mode 100644 index 0000000000..2576a4ec64 --- /dev/null +++ b/demo/itp02/build02/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + + 3.0 + + + tycho.demo.itp02 + itp02-parent + 1.0.0-SNAPSHOT + pom + + + 2.3.0 + + + + tycho.demo.itp02.bundle + tycho.demo.itp02.bundle.tests + + + + + tycho.demo.itp02 + pomfirst-bundle + 1.0.0-SNAPSHOT + + + tycho.demo.itp02 + pomfirst-thirdparty + 1.0.0-SNAPSHOT + + + + + + helios + p2 + http://download.eclipse.org/releases/helios + + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + consider + + + + + diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle.tests/META-INF/MANIFEST.MF b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..7feecdc091 --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/META-INF/MANIFEST.MF @@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: bundle Plug-in +Bundle-SymbolicName: tycho.demo.itp02.bundle.tests +Bundle-Version: 1.0.0.qualifier +Require-Bundle: org.junit4;bundle-version="4.0.0", + org.eclipse.core.runtime +Import-Package: tycho.demo.itp02.bundle diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle.tests/build.properties b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/build.properties new file mode 100644 index 0000000000..34d2e4d2da --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle.tests/pom.xml b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/pom.xml new file mode 100644 index 0000000000..6e26b8c7bb --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/pom.xml @@ -0,0 +1,15 @@ + + + 4.0.0 + + + tycho.demo.itp02 + itp02-parent + 1.0.0-SNAPSHOT + + + tycho.demo.itp02.bundle.tests + eclipse-test-plugin + + diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle.tests/src/tycho/demo/itp02/bundle/tests/ITP02Test.java b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/src/tycho/demo/itp02/bundle/tests/ITP02Test.java new file mode 100644 index 0000000000..058714c420 --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle.tests/src/tycho/demo/itp02/bundle/tests/ITP02Test.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp02.bundle.tests; + +import org.junit.Assert; +import org.junit.Test; + +import tycho.demo.itp02.bundle.ITP02; + +public class ITP02Test { + + @Test + public void basic() { + ITP02 testee = new ITP02(); + Assert.assertEquals("maven-bundle-plugin", testee.getMessage()); + } + +} diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle/META-INF/MANIFEST.MF b/demo/itp02/build02/tycho.demo.itp02.bundle/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..3f2fa4b566 --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: bundle Plug-in +Bundle-SymbolicName: tycho.demo.itp02.bundle +Bundle-Version: 1.0.0.qualifier +Import-Package: tycho.demo.itp02.pomfirst +Export-Package: tycho.demo.itp02.bundle diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle/build.properties b/demo/itp02/build02/tycho.demo.itp02.bundle/build.properties new file mode 100644 index 0000000000..34d2e4d2da --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle/pom.xml b/demo/itp02/build02/tycho.demo.itp02.bundle/pom.xml new file mode 100644 index 0000000000..0930be6ab3 --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle/pom.xml @@ -0,0 +1,15 @@ + + + 4.0.0 + + + tycho.demo.itp02 + itp02-parent + 1.0.0-SNAPSHOT + + + tycho.demo.itp02.bundle + eclipse-plugin + + diff --git a/demo/itp02/build02/tycho.demo.itp02.bundle/src/tycho/demo/itp02/bundle/ITP02.java b/demo/itp02/build02/tycho.demo.itp02.bundle/src/tycho/demo/itp02/bundle/ITP02.java new file mode 100644 index 0000000000..829f9a037e --- /dev/null +++ b/demo/itp02/build02/tycho.demo.itp02.bundle/src/tycho/demo/itp02/bundle/ITP02.java @@ -0,0 +1,23 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package tycho.demo.itp02.bundle; + +import tycho.demo.itp02.pomfirst.PomFirst; + +public class ITP02 { + + public String getMessage() { + return new PomFirst().getMessage(); + } + +} diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/README.txt b/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/README.txt new file mode 100644 index 0000000000..8e96192968 --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/README.txt @@ -0,0 +1,5 @@ +Tycho supports non-standard (as of Eclipse 3.6M6, at least) .product file +os/ws/arch attributes of element. If specified, these attributes +will be used to filter out irrelevant bundles when resolving RCP application +dependencies from P2 repositories. This is similar to os/ws/arch filtering +supported by feature-based products. diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/org.tycho.demo.crossplatform.rcp.product b/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/org.tycho.demo.crossplatform.rcp.product new file mode 100644 index 0000000000..b526afeb67 --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/org.tycho.demo.crossplatform.rcp.product @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/pom.xml b/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/pom.xml new file mode 100644 index 0000000000..7bd0c88a3e --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform.rcp/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + tycho.demo + crossplatform + 1.0.0-SNAPSHOT + + org.tycho.demo.crossplatform.rcp + + eclipse-application + diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform/META-INF/MANIFEST.MF b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..48d21a6885 --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Bundle +Bundle-SymbolicName: org.tycho.demo.crossplatform;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.eclipse.equinox.app;bundle-version="1.2.1", + org.eclipse.swt;bundle-version="3.5.0", + system.bundle +Bundle-Activator: org.tycho.demo.crossplatform.Activator +Bundle-ActivationPolicy: lazy diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform/build.properties b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/build.properties new file mode 100644 index 0000000000..e9863e281e --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform/plugin.xml b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/plugin.xml new file mode 100644 index 0000000000..aa5fbbd431 --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/plugin.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform/pom.xml b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/pom.xml new file mode 100644 index 0000000000..905eb47156 --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/pom.xml @@ -0,0 +1,11 @@ + + + 4.0.0 + + tycho.demo + crossplatform + 1.0.0-SNAPSHOT + + org.tycho.demo.crossplatform + eclipse-plugin + diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Activator.java b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Activator.java new file mode 100644 index 0000000000..942c9f8eaa --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Activator.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package org.tycho.demo.crossplatform; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + public static BundleContext context; + + public void start(BundleContext context) throws Exception { + Activator.context = context; + } + + public void stop(BundleContext context) throws Exception { + context = null; + } + +} diff --git a/demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Application.java b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Application.java new file mode 100644 index 0000000000..824f4b099c --- /dev/null +++ b/demo/itp03-crossplatform/org.tycho.demo.crossplatform/src/org/tycho/demo/crossplatform/Application.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright (c) 2008, 2011 Sonatype Inc. and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sonatype Inc. - initial API and implementation + *******************************************************************************/ +package org.tycho.demo.crossplatform; + +import org.eclipse.equinox.app.IApplication; +import org.eclipse.equinox.app.IApplicationContext; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.osgi.framework.BundleContext; + +public class Application implements IApplication { + + public Object start(IApplicationContext context) throws Exception { + context.applicationRunning(); + + Display display = Display.getCurrent(); + if (display == null) { + display = new Display(); + } + + final Shell shell = new Shell(display); + + display.syncExec(new Runnable() { + public void run() { + MessageBox dialog = new MessageBox(shell); + + BundleContext ctx = Activator.context; + + StringBuilder sb = new StringBuilder(); + sb.append("osgi.os=").append(ctx.getProperty("osgi.os")).append("; "); + sb.append("osgi.ws=").append(ctx.getProperty("osgi.ws")).append("; "); + sb.append("osgi.arch=").append(ctx.getProperty("osgi.arch")); + + dialog.setText("OSGi runtime environment properties"); + dialog.setMessage(sb.toString()); + + dialog.open(); + } + }); + + return null; + } + + public void stop() { + // TODO Auto-generated method stub + } + +} diff --git a/demo/itp03-crossplatform/pom.xml b/demo/itp03-crossplatform/pom.xml new file mode 100644 index 0000000000..91863d4c0e --- /dev/null +++ b/demo/itp03-crossplatform/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + tycho.demo + crossplatform + 1.0.0-SNAPSHOT + pom + + + 2.3.0 + http://download.eclipse.org/eclipse/updates/3.6 + + + + org.tycho.demo.crossplatform + org.tycho.demo.crossplatform.rcp + + + + + e35 + + http://download.eclipse.org/eclipse/updates/3.5 + + + + + + + update36 + ${eclipse-repository-url} + p2 + + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + + + linux + gtk + x86_64 + + + linux + gtk + x86 + + + macosx + carbon + x86 + + + macosx + cocoa + x86 + + + macosx + cocoa + x86_64 + + + win32 + win32 + x86 + + + win32 + win32 + x86_64 + + + + + + + + diff --git a/demo/itp04-rcp/.gitignore b/demo/itp04-rcp/.gitignore new file mode 100644 index 0000000000..8032fef6bb --- /dev/null +++ b/demo/itp04-rcp/.gitignore @@ -0,0 +1,5 @@ +/target +/.settings +/.classpath +/.project +/workspace diff --git a/demo/itp04-rcp/README.txt b/demo/itp04-rcp/README.txt new file mode 100644 index 0000000000..370363c25b --- /dev/null +++ b/demo/itp04-rcp/README.txt @@ -0,0 +1,6 @@ +This demo project shows how Tycho supports p2-enabled RCP applications + +The demo application is documented in detail here +http://wiki.eclipse.org/Tycho/Demo_Projects/RCP_Application + + diff --git a/demo/itp04-rcp/eclipse-repository/.gitignore b/demo/itp04-rcp/eclipse-repository/.gitignore new file mode 100644 index 0000000000..8032fef6bb --- /dev/null +++ b/demo/itp04-rcp/eclipse-repository/.gitignore @@ -0,0 +1,5 @@ +/target +/.settings +/.classpath +/.project +/workspace diff --git a/demo/itp04-rcp/eclipse-repository/category.xml b/demo/itp04-rcp/eclipse-repository/category.xml new file mode 100644 index 0000000000..d069dfc2a5 --- /dev/null +++ b/demo/itp04-rcp/eclipse-repository/category.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + Description of example category + + + + + Install Feature2 Category contains example-feature-2. + + + diff --git a/demo/itp04-rcp/eclipse-repository/example.p2.inf b/demo/itp04-rcp/eclipse-repository/example.p2.inf new file mode 100644 index 0000000000..cda4d5bbe3 --- /dev/null +++ b/demo/itp04-rcp/eclipse-repository/example.p2.inf @@ -0,0 +1,7 @@ + +requires.0.namespace=org.eclipse.equinox.p2.iu +requires.0.name=org.tycho.demo.rootfiles +requires.0.range=1.0.0 + + + diff --git a/demo/itp04-rcp/eclipse-repository/example.product b/demo/itp04-rcp/eclipse-repository/example.product new file mode 100644 index 0000000000..81376acbc5 --- /dev/null +++ b/demo/itp04-rcp/eclipse-repository/example.product @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/itp04-rcp/eclipse-repository/pom.xml b/demo/itp04-rcp/eclipse-repository/pom.xml new file mode 100644 index 0000000000..6c3eac48c8 --- /dev/null +++ b/demo/itp04-rcp/eclipse-repository/pom.xml @@ -0,0 +1,57 @@ + + + + 4.0.0 + + 1.0.0-SNAPSHOT + eclipse-repository + eclipse-repository + RCP Example Product + + + 1.0.0-SNAPSHOT + example.group + parent + + + + + + org.eclipse.tycho + tycho-p2-director-plugin + ${tycho-version} + + + zip + tar.gz + tar.gz + + + + + materialize-products + + materialize-products + + + + archive-products + + archive-products + + + + + + + diff --git a/demo/itp04-rcp/example-bundle/.gitignore b/demo/itp04-rcp/example-bundle/.gitignore new file mode 100644 index 0000000000..8032fef6bb --- /dev/null +++ b/demo/itp04-rcp/example-bundle/.gitignore @@ -0,0 +1,5 @@ +/target +/.settings +/.classpath +/.project +/workspace diff --git a/demo/itp04-rcp/example-bundle/META-INF/MANIFEST.MF b/demo/itp04-rcp/example-bundle/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..4e7f0fd9b7 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Bundle +Bundle-SymbolicName: example-bundle;singleton:=true +Bundle-Version: 0.1.0.qualifier +Bundle-Activator: example.bundle.Activator +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.swt;bundle-version="3.6.0", + org.eclipse.ui;bundle-version="3.6.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-Vendor: Eclipse.org diff --git a/demo/itp04-rcp/example-bundle/about.html b/demo/itp04-rcp/example-bundle/about.html new file mode 100644 index 0000000000..395df3ba90 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/about.html @@ -0,0 +1,28 @@ + + + + +About + + +

About This Content

+ +

June 5, 2006

+

License

+ +

The Eclipse Foundation makes available all content in this plug-in ("Content"). +Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at http://www.eclipse.org/legal/epl-v10.html. +For purposes of the EPL, "Program" will mean the Content.

+ +

If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor’s license +that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at http://www.eclipse.org.

+ + + \ No newline at end of file diff --git a/demo/itp04-rcp/example-bundle/about.ini b/demo/itp04-rcp/example-bundle/about.ini new file mode 100644 index 0000000000..8e0b41a2ff --- /dev/null +++ b/demo/itp04-rcp/example-bundle/about.ini @@ -0,0 +1,7 @@ +# about.ini contains information about a feature + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=about text of the example feature + +# Property "featureImage" contains path to feature image (32x32) +featureImage=images/featureImage.png diff --git a/demo/itp04-rcp/example-bundle/build.properties b/demo/itp04-rcp/example-bundle/build.properties new file mode 100644 index 0000000000..08da9e0c11 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/build.properties @@ -0,0 +1,19 @@ +############################################################################### +# Copyright (c) 2010, 2011 SAP AG and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# SAP AG - initial API and implementation +############################################################################### +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + icons/,\ + about.ini,\ + images/,\ + about.html diff --git a/demo/itp04-rcp/example-bundle/icons/alt_about.gif b/demo/itp04-rcp/example-bundle/icons/alt_about.gif new file mode 100644 index 0000000000000000000000000000000000000000..20d9ad2d98dbd6820da5adbd9a1728153d3ff0c2 GIT binary patch literal 9340 zcmV-?B!k;WNk%w1VRHba0OkMySZp?koLAA^wZ_bwsJnK!shY)b!|9U4%cGUH zYRlECy1SCS#GuL1qs`i}nwxQTgE=BE7>l@M#mtG@^rL8aHkhYo&DpGEf=0fmD1s{dWb=` zw2QaXm(KB>((6!azrE*>v&)0A(R{1gfu_`a&hMee(y7GlmaC|O zeWzKy+l1BOxvRr^w8whM*@(Te}#V(hZKrsi(?d8k5yJxRX&!Ml~I~nLP<$PTU$IQCkhH49vuND zCR}-W85toV0JXIoxVgH!w!HwfxxFD4vKe_?TqXe>9Ui6xgJIGmVI$Vp*I6T3+*vr@ zIN>;#KAT=zo=KrRqoy7gssYHbva`0kx-|H~z5uwr76Qs*aV*)g4i^;gAwb}dAZgRE zVN)?eMK^9L!XX%UNt32@>ei8RmugijShHx|+NG~02O9eD_0m<#Lah+7j3HBoFyTT1 zDI7k8SWRNZZ5FwO%Qy}}$4ybvff6&S6e;@VeB9Dcci!x0BHfKf9 z$wdUS3nlpQNs(d*m^lwgOuLJ>+c$B4$$3nIE~F?@RuQw}>UAY9$B}~ze>~YTznZcN zidc5xf@q*A=A0g+8lus>7qjf}+tiZBC|bODA_9ut$iwltqEy)!a&QS7B*2F+876UF zwur?l$lUqD6fJ;p+8lKe#oAHXiNl?2nus@EVIxg|iYlzQvKUw|*%z679CA2ZeK8$3 zOf1M`)tqR2TrpP*bF@euQ6u1Clu{Xa6PtJCL~)LTp!{H-DTigXN>}Vv=3aaqCOIGf zePsQUUo0$i#$0GAUJ+o6a|C5q7s&iae$hLnM9;-8qTR{opw5j z8BQez&|GL&l-dG|b1=|ifm~LDXg05b6V6i&KKcm}KJqZBDH39}+nbmksi~5jhKSZL zIH90t01$vyLaA1Q(SoXTXnRO5d6CBp2n- z8&iHED0{~p%{nWZm8Yg!?X}f)8KXovY!i;G<7C3gxZ_3ogO9r&R;io4VffPjyYR{v z-(!#Am+ZaF>TBw$46w+6wOekBO~EWH#nC1VlNU;)y0*is2T-i5o-FPnnX$$o^7HYY z`IhkP6Q}mefT|ie6ozU7t2_eB;Y_U{B~gsKM2~2eJLv&8>qarp7-sr2(D!*-ub%fd zYcwBEj6AKXC;#zut9ZyLb=6g8p~lNPc0$Aw4)c)fr01fGGZdDtXR+Bo2km6ND1cma z331Dv>e37d)n(q-fn&ARv-(hkj-C*X=EJ&veQvKf|LSd)`!4tY+)Fnd&F4mW zD~=p$SW-j*UU(sd^MsoLee@@QUH$dg8!6|eLDR=g>UA%CK>&Q=6Cb}gx4A+HB5!&_ z6w5|H0vuE@9CEls0g4bm=F#td(W73vdX=-rk*zU4qZ6lSGK7@{p%K9AwZE8!SK@mZyXy)b9r&{2Gu>AtA=?#soPjl2}q0uVMuwB?UC#0gZ;a z-;u9;O~WB|kaxif{;djQLO>9)(81;%F@(6$-vnT%Gv1u=H#CSBeQsy00cKH)TvQtbi#38Cc0d8h93gtLm{N!guTs_Q}zXYa)(D|#1U932hkx2`gsl_eIP;RO$ z-#yvDQETS&qu8v17DW1;tO=nLTRZ4MlbFBPEtHdEQwcgQIRT@t%YKB&~s|^pt?z^+7TF*G1fk^O3{kOaGpI~r9Ig&R-jUW4OB?% z7^tw=#x52lw*p1in3~YJZjzyP^hbzXqSs?BbE{lMr5Af@L&0{GGz@{xVH3;R)-IN{ zM4*CX-wM|QTyn1G#B5hAW)=~_)349;>Q^&5&EirZsHjaX0b0x4=5B!qQ`kauBUM}5 zCiI*hm_W|j1PcIkcCWc3U@3FTMO2P2c%`kU2J+d_!!l$cKM{j`!@o;|o$A_>>9UDGlj)GQlE}y@*9D6$l_2Q#@zF6_)Q7Fx=mjCN!AZuTu!AaI7K4wN>eLg|b(ml&a$07Q z0edA`$vbT_an)N~3R*ChkEk+h#gOIZI3q46=(3mDG3K~d7Rc)wvS-ztnIrG+0w@-( zf)~6>!4?-xu{`Q)>nmSADBuF`a0V$->t*S+u62i=qf|w_=(J=;KlWl43R|O`!AtC%q8L6>Pzj>X7?klYn5x0&G6Uazy1U z%q94|#D#Kki>rciyX;%wDJl|#4P7uBTLH`nz@L>J$I6;n)j4Bzerj@UwcteC%<9wI zY7MPhhkM)z*FYA6P;QH41d=`g7qHh2-3zmW04IRQTSOhlde8L$(QebUuTAoRVEf2Y z;x?^q%~P_ zbl#oJcZ4@!npW^S&C9)mEFeG*2w1}<3NJsUl81HX8c7E#ByS+&I{?M(x6>nVa)Oko zC#1RpAF!Tv^y<3vV-S5108jeuIK?RiFr7eKKfl*QEcT~xlL?w3p$_DX3z9cE?=27k z7WkeECi0W!ix0-mPqP7^|GWm0KXV-{Kkz%)0qRrl14)iO3Y2tGDRq5DcM9_G3MQ~! zN>>xRM}AO85N*K|{!t|X@ zWuSZvCx>-dhfZjR&$oviWJw@|T~IKCyH|+i7bU;v6F?y-)8vTOqK1zce?=&ZYp4ZY zXMaGzd`d`%o9Kjh*ndSZL_|bCy<}NIwscSDfQE>Q2ayn~C@7BTijSCZlPHUk_<4S3 ze@LhTfH#Nvr-{ATgh#Odhi%XX%;QE&U!kq$fREES zO$m^OL>P&)r~xu}i_3?JnHY{vxQAF^j^{{>?5JI&NPh2Vemk)Y&aeIib1Bx0plh^UBu7O4P0 zk&%o*0Ru1qM2U|gsgFfjl=zqc{Wt(5nUYcokVKdT72tvPrvtgzjY^0B;Mj|IxQCKN zljZ0^>bQ=oW($O9isoknb$5}=bsG7klpo2IOG%ecNs><404BMYC<%W^c$Ldnkh}Pe zF-d~sD3)Z|kT)6sOeR2sY{>#{>654clmq|E4`i{q$9vMEGlX^!cLmUGl}6DgT)nH81E5JTVyM7f#6>6xGD zneO?S@Y#=~S(<){ni>!U6~K~NsRJtT0?h}TC3pmhnVs5MmbK}fk9lpTc#4y0ksc6e zLMfcDE|>XOtMjz>zMw5g&800j&Pr8Xb}=m!Pa1)*aw zlmn0k6k4HMnxpgirOip7f(n0EnV$(maE0)Te|t!kYGkfuo*sofb&PP(Awcd2wb z0T62crJTyCMG2~*ilYets>rFV>ZoeUklCtTZ>pQSx^W6{ z0>6o#d5Wc4YOJLCr^(u`e_8?Xs+A$?pFlvJ_8OqGTCKBLj_DXZ{Hmb38K-j!7X&Z` zNPwqlK&%5`t{1AVp31N;%dUm0s;jyK6T7HJda)QglV*vNl)9kenR3251ysNYWMHtL z`k4-3t}nZ^raGpF%AYqdvC>+x;%K7zYL2$)q)&Q^|7wxo$^(owl)}oHT>z>MV4-JV zp-j8B4lA=;*`Gw}swDWTC5o|+YM{1B3tP*eDVJ=S>Ih^|v{{;^4sZr%V78sQuxrcz zuq^qoAPTKDd!~(wud^wsW)MtG2d5$H3?s`}!CI7qo3trwwxoHs^I5nFkhY6EpAL(a z5bKgJFs)8Nw}@%214@&&+Ogqj1994`4@v-;O0;Rv1%q3*Nt?8)o3wvwx~i+JXWP8W znyOd{1dtoGtxB~eO1V0_v2*lx9&4#Dnry#X24ujg#5=mjd${T9l**gFsr$aG>y$e1 zu&e5y^t!0knZFjBvpTB;>NrO%3a8s9zF|uNV@tdaP`1WwN8>av(u$n5Y=ZnA%9K#Hpu7->Myb+wd z8Em-F%ewQcpSj4N(0T*(I=isisM*WE+G)Z7{Jm}2yX48aBrCjF3d1s7#So0VPWiyf zn*dEFh z1Ufvy8N9w0{DB{;m5F-4MSQa-%8<5MZ34`jqBgR3TE4@JzzdAWR_w4n3 zpzHt^d@+{9m1cm-LNd=%IZA3UcTNAM?r2#7jC2IvP?9C0l z00%A3NsG{a+{J#}$-kV=pnP*-H+U93cs`(dXb^qggo56L1t5(D`aDoYw6W9-%TUUz zD;&iH?afq-&|QGg2rbT`49YT{&RlHM#k>Gb;5TaU(>?%6Xy5~AP}JX)f&l0RB27sH zB|jzYOWo_wJjuH%-3(AX1ms)L2Ccvi9McWl#mBnUJydOZkVja_CUEVjn+ctgPWNp^&oz}t4(_nCAR4@dkVc%1b z-}=4ZQ!uh$U||>L-D24H-WLwv z3s6|f_2D4S5MMw5BR*(hR%#LA0juq^+x?SrJOp)Mz-a*g&bQ3oz0KPkp5DFP-aFpg zIxW^A9^}fkY^0W2BMxRffN=<};@1`e@Yv$Xrp=XIzBEqW5pLe+oxnYw-Z^gLJPzck z#bwI15P^nqA717JaB)el=1Sfx*}dRT9I#(-o`L(#vwhxJ?&V%?;XB^t@D1Ns_TfJv z=BY*G%C+VOp5_;~#dVc9$e(7F5Rzfc1|NY+s9_mv7>Qr$6 zXs6n3+~O|&1t2g6bw1l4Farzl0h+$&na-TB&@(RH)O5m-2U&E{s7rd0dTDanOz2BpasOu z37vgXp6%J69r1fz+7N>-)ocM>xP`py#L+(OboHP!I5z zuJYQB0T}QAKb`gMqXsZP)Lw5(M;-Pb4btG`)cg!K)ttgA4A9b!1o^J?T|n~vKGs$r z^>&Z)0B`kDujhJi_3TUsbRY+BaM2bm&+$C}&l|nb?}LIKy+QFaKS-ni0q`kYyWRFa z=lNdABrn!Z&+T{5_j^zE><#r-j{!#r1ats+Z?O8Sk9voHhp@i}vYNAt&qgLa`2bLU zF3PK(0cvuN@8wJBO~37ZpZ8Hu_sC!Oc`x-U{{Y7S01vQy6|j}mAFcC>$eSq7C3?i3 z*gVnW0obPTyU*a#9_d!F^l{JcGcflv;Q6F){G?y^^1toOPw?^&{SQz9Zs4%_2?#(s zKtL~qgf~DpH%>bUJ5C6alaohB1qE12OJ)ZX762I$EG#yrBB%i!3JND*LvdDQU0oj^ zGcyahGZ?xUzr72=3&O>{z{C&0$G;2z56=$^6$Ta6)jAbAIxsKY-HYH(;*pV*2$z_f zKL-jK78Wd{rKcjQ9<5(Qb!234aJIH|?c%j8*fL=Smnr-8tRS=p)C@?p2BQKD7&=~L zH1q=8qH!R{S;FK+Nv8vO0E8G7!ITYD^*UU@2cnLZH2wh2_~45euUyO!A}dHt=t2w+ zA4;4^&002$+`N4Y7ZM~oP3sPD0RS)FJec-codAJE)<1x^eqtbaOlaGLz!o-Sh%_nF zrcNtz+bGpzRjUQsY&vkj1Xp=qQ+2p^;>47){m$Z=%#4>?xC-YwObTsjM7-6YYSY-U zG}Vv@oM0-jsgq#~i0Rb}z<4bGk~ood3dFVcGG@(jm2u|0bQ)-jp)pFG`th$5bm|Ux z2mzZ^;@P#o*vxHfGC|(P*aDj&_o!T?b%%Sl2Ku7%<)xi82bp@LrcMgpg|IF=K!BNz zX=hVTX{p6qGiwz@kZ|P*CqR0`LF8Fe?QOGHUpI8*TqKtWmQ@C!$m3Efw2Acv2ywX3 zPj@?c*Na+kHB??)5OOBKjT26jS7_V7#~dSnU82bngryYQOJJ=+(>^P*=-q*99iQ%wA%zh)Ue5jqn8lwR? zS}lpIGzLOVWNdpWpFe3T98wQHR4$)@CROai6Rx{uyYIokM6;_VDv6L~9?$`r^B_4} zzpkM8rep>*K1Na~SOpKeQvZY($UcrofZ++Nk7P54fXPpH}AYe>*gS_%{Y5` zG4-2Y|F_42_ooUz+NDT*`Q>|<^3eCN6^KfG5i`KL6i7S0NUs}A$Pm{wW(h1{p<@aN z!S+g#B-;4@3j{7WnNG+@z!Dx%ed}Z2>=+0?oJ|iyeOtp3ickbBfM6Xb*vfv!#xL-l z&VT_lq2yMez8V;@Y7v_law;H$+8OF%5^RnnWLQHl2myy3aFnc))Gu4PASW#{pb*iA z!gM9DeHECUHJXSVWl@g_5v11?saQiH5a9dybeBD`r7!5hIBbHH- zjdbMfBAJ}L!4Zm!up}neph+6Wp_51;!WZ(WfDVL?dmStrrA&u3RTk2aL`)x`|-r*jB+u91`4)E4AZr2vGw zJbV^wk?QL~4?@a7H!$^|haf08r^?c+W)-UhxWF9-Tgt{vN33HVnM_RSf-j;~m1^Dp zC{gP<*&6h~vLUU28**@nymk|%Q?)`FTKZC~W;LCH9jpSr@K7G4^8{ffg-$y_Tb>&3 ztTRw6WJSf+w;qt1lTD;t=Ne1Rc6OiyMJPWMTH36FfB+F4>>YSYgdu=n3RB=g9uGUp z#Lngdi#6I=KLFYC8nCx-g{w3_YQ*6ZcS3e`!%_)Bhi*o7xuR_@V23~eK0rXa7a+h8 zT(VeE>pz<)8*NkRh~X z&@XhMdjSY=;SS#;09go(1R>a%2zTT`2KN&w#rjdaXd|zAm#4@g*Yl%t6~J)+mE2(u z+cm^=kOLh`Oa`i!VGKwxEq_;hg49m;1X#_oOMfX&PTm-gB2chSRdE3an-0R~)vW-e zV8GzobCDU|u#)9!04KX4#C@QHpw)neDvuTnSqAKi)A`@Qmf%EKopH9PO2bN9@QP+= zhnf{5lf?$Iv2Zr;Ztr;`DO7g77|!!>W1wUw_aO*@jxv=gP=+gGH3f_Aub0ba-7p7o z(v?Q2L1$<|5G>&f0pM|u8w^N{l6S4Dl!COWN#~DB`^ZQZ?uO<1=RU-`#3rV-t%rc? zMVDaL&^0X*eoa*?NOcXDgtrWjV8Jq-;HKVPlT6yY%(IGmy=%4ho@-$LYAFbS)isEL zdk?Pg9(a4uYDfbaXgvlnkh|Q_<%5?4z=w4Ex(;Qa^t(@L2Xc7MhCeVS3i4gsHY=be z4}L6U=^Sl>&zayy%&?LhzTp`7yazED!JyNS28vre1sLZ;2^u|JK1@NtAQ*5UMXm=l zkX#&oxulSUu!IDAHzxZo+oyl(2O-a#&IK>HWqV+7DX@LpKIeH1)Ib8F8yyTtU$Mpm zFxUW;V8!YNIaN=r2ZLJj4IWtp6P&fN8X9{#D_?WiUq1FwM|%a*HZ{)K-aNM-eAO{< zd)(u0cM5>v^hrOrbU6-qUx(b?2t8>xBS`yO;<6l>@WKs~o$m(!i#_IMpE>5Q&G`(o zTH$*Jx)grS{2oxi^r%n46?EO`|8(5rQhz-{^>Fyv*WUK?+gYok1%i8{fD4jubDK}# zQ-4Et51G%rWsz@ih1(zKa2U_*dtwdQVQU6oydu96i1$8M;^ceD1Zug0CtlHLZBu-fw%&D0D@Aue1>>}xVVTha0dYZ z0RlLK{5J-*Mg~=o1|{|e^+gASAW&=QPjC2!ZTN{l2!R@6hZRT!cd&A+xQFV;et*b; z9_R;yD2ub0dAN9vSZD<5cmX8_%J zmr~i;m!dhEa7alULWDUqR*7ko-iS7hDUJ^* z1rphlv}v1^DU@_smwx7(3)GpQDV6$|l70!8#Th{`i3T$Hl_J2J8Ms=f^qh}5owez6 zL1~*oshynZ2EM5-Dx^T)DV)Q3mD5v)s0jiW@Rb3;ifwjoF9(|)7@wneoAo)L>S&jo zxu3DLK%e=aQ7N8PS)A24L!Cqf9dLf@$#)ILpkLsikJ$qfIiZqSn=%>$`iY@*)jlfp qpHvy3foYywi3N4wPyt|~3EG+q$_gNaHaQ8MXDOpj`lLn>2mm`zH?9Hz literal 0 HcmV?d00001 diff --git a/demo/itp04-rcp/example-bundle/icons/alt_launcher.icns b/demo/itp04-rcp/example-bundle/icons/alt_launcher.icns new file mode 100644 index 0000000000000000000000000000000000000000..b77a6a63938e43ee977646573dbd9a45fd1983af GIT binary patch literal 51159 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

N=U55wS;a{OH*SV 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 Mpnv}UzqP>s0IH1_y#N3J literal 0 HcmV?d00001 diff --git a/demo/itp04-rcp/example-bundle/icons/alt_launcher.xpm b/demo/itp04-rcp/example-bundle/icons/alt_launcher.xpm new file mode 100644 index 0000000000..0ff90332a7 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/icons/alt_launcher.xpm @@ -0,0 +1,307 @@ +/* XPM */ +static char * icon48_xpm[] = { +"48 48 256 2", +" c #4B4B3B3B9090", +". c #0D0D0E0E5454", +"X c #11110E0E5B5B", +"o c #17170F0F6363", +"O c #1D1D13136969", +"+ c #212114146C6C", +"@ c #252514147171", +"# c #282811116C6C", +"$ c #26260D0D6363", +"% c #22220B0B5E5E", +"& c #1C1C0B0B5A5A", +"* c #1C1C0B0B5252", +"= c #1B1B05055353", +"- c #161606064D4D", +"; c #161605054949", +": c #111104044848", +"> c #131304044545", +", c #131305054242", +"< c #141410105E5E", +"1 c #2C2C15157373", +"2 c #2B2B1B1B7575", +"3 c #343416167272", +"4 c #313113136E6E", +"5 c #222209095757", +"6 c #1B1B06064D4D", +"7 c #15150B0B4242", +"8 c #13130C0C5555", +"9 c #2E2E1B1B7878", +"0 c #33331F1F7C7C", +"q c #343418187878", +"w c #3B3B1C1C7575", +"e c #2E2E10106767", +"r c #1B1B07074747", +"t c #18180B0B4646", +"y c #151513136262", +"u c #1A1A15156464", +"i c #34341F1F7777", +"p c #40401E1E8080", +"a c #42421B1B7A7A", +"s c #3B3B15157474", +"d c #2B2B0B0B5B5B", +"f c #222207075252", +"g c #373727277A7A", +"h c #474724248484", +"j c #393915156E6E", +"k c #373711116A6A", +"l c #343413136363", +"z c #232319196E6E", +"x c #292919197070", +"c c #3C3C2C2C8282", +"v c #444431318585", +"b c #494934348A8A", +"n c #505026268A8A", +"m c #3D3D1B1B6E6E", +"M c #31310E0E5C5C", +"N c #2B2B0D0D5353", +"B c #222207074A4A", +"V c #52523C3C9292", +"C c #58583C3C9494", +"Z c #5D5D44449797", +"A c #5C5C2E2E9292", +"S c #676733339595", +"D c #424228287575", +"F c #29290A0A4F4F", +"G c #6C6C4A4A9E9E", +"H c #72725454A7A7", +"J c #8C8C6D6DB2B2", +"K c #343424246E6E", +"L c #3A3A23236A6A", +"P c #3A3A1C1C6767", +"I c #24240A0A4B4B", +"U c #151518186161", +"Y c #76766F6FA5A5", +"T c #ADAD9191CCCC", +"R c #98988989D3D3", +"E c #45453B3B8686", +"W c #3C3C35357979", +"Q c #363631317575", +"! c #32322D2D6B6B", +"~ c #323229296363", +"^ c #30301F1F6262", +"/ c #323218185E5E", +"( c #272707074B4B", +") c #202028286C6C", +"_ c #1E1E1D1D6868", +"` c #9A9A8282BBBB", +"' c #C8C8B3B3D3D3", +"] c #B3B3AFAFE7E7", +"[ c #84847272C6C6", +"{ c #58585757A3A3", +"} c #3F3F3C3C8A8A", +"| c #3B3B3A3A8484", +" . c #414139397D7D", +".. c #3D3D39397A7A", +"X. c #37372E2E6E6E", +"o. c #2C2C21215A5A", +"O. c #2E2E1B1B5B5B", +"+. c #F5F5EFEFF5F5", +"@. c #656566669A9A", +"#. c #47474B4B8E8E", +"$. c #3C3C44447B7B", +"%. c #444442428080", +"&. c #45453E3E8181", +"*. c #40403C3C8181", +"=. c #3D3D33337474", +"-. c #3B3B30306E6E", +";. c #38382D2D6969", +":. c #303026265D5D", +">. c #2C2C15155A5A", +",. c #1F1F1C1C7070", +"<. c #25251E1E7171", +"1. c #59595C5C9191", +"2. c #4D4D53538989", +"3. c #4C4C49498484", +"4. c #484845458585", +"5. c #494941418585", +"6. c #494940408181", +"7. c #2F2F1C1C5353", +"8. c #2B2B28287676", +"9. c #323231317F7F", +"0. c #545452528B8B", +"q. c #51514E4E8989", +"w. c #4E4E4B4B8C8C", +"e. c #4C4C47478686", +"r. c #46463D3D7E7E", +"t. c #434336367A7A", +"y. c #2B2B13135555", +"u. c #47473D3D8D8D", +"i. c #575757578E8E", +"p. c #48483E3E7F7F", +"a. c #46463A3A7D7D", +"s. c #424235357575", +"d. c #404034347171", +"f. c #BFBFCBCBFAFA", +"g. c #B8B8A8A8DDDD", +"h. c #5E5E60609292", +"j. c #565655558C8C", +"k. c #4B4B44448282", +"l. c #454539397B7B", +"z. c #434338387878", +"x. c #3F3F32326D6D", +"c. c #3D3D30306969", +"v. c #3A3A2E2E6363", +"b. c #36362A2A5C5C", +"n. c #343424245555", +"m. c #30301E1E4D4D", +"M. c #49493C3C8282", +"N. c #5E5E4F4F8C8C", +"B. c #56563B3B8B8B", +"V. c #545407078585", +"C. c #424234347272", +"Z. c #9797A4A4F7F7", +"A. c #444436367676", +"S. c #7D7D7979D5D5", +"D. c #464640408A8A", +"F. c #44444B4B8282", +"G. c #414107077777", +"H. c #71716161C1C1", +"J. c #303039397979", +"K. c #8E8E8E8EE6E6", +"L. c #404033338B8B", +"P. c #4A4A45458C8C", +"I. c #46463A3A8080", +"U. c #363629295454", +"Y. c #303022224848", +"T. c #424237377575", +"R. c #2E2E1D1D6363", +"E. c #79798383EAEA", +"W. c #74747B7BE4E4", +"Q. c #6D6D7676D6D6", +"!. c #6A6A7171CECE", +"~. c #66666969C6C6", +"^. c #62626565BCBC", +"/. c #5F5F6060B5B5", +"(. c #5B5B5B5BACAC", +"). c #535353539898", +"_. c #4F4F4F4FA4A4", +"`. c #54544D4DA4A4", +"'. c #323204046B6B", +"]. c #303035357979", +"[. c #313122224343", +"{. c #5A5A5B5BB7B7", +"}. c #484846468080", +"|. c #454541417575", +" X c #4B4B31318282", +".X c #47473C3C8484", +"XX c #3E3E35356E6E", +"oX c #2F2F26264040", +"OX c #2B2B23233A3A", +"+X c #262619195C5C", +"@X c #252515155A5A", +"#X c #55555151B3B3", +"$X c #3C3C2D2D5D5D", +"%X c #39392F2F5656", +"&X c #37372D2D5050", +"*X c #25251F1F3030", +"=X c #24241D1D4343", +"-X c #202013135656", +";X c #41413B3B6C6C", +":X c #444442429696", +">X c #212100005E5E", +",X c #444436367272", +" > , , , ", +" . . X X < < o o O O + @ 1 2 2 1 1 1 1 1 1 1 1 3 4 # # $ $ $ % % % 5 = = 6 6 - ; ; > > , , 7 ", +" . 8 < < < o O O + @ @ 2 9 9 0 0 q q q q q q q w 3 4 4 e e $ $ $ $ % 5 = = 6 6 6 ; ; > > r t ", +" . X < y u O O + @ 1 2 i 0 0 p p p p p p p a a p a s 3 4 4 e e e e d 5 5 f f 6 6 6 ; ; r r t ", +" X < y u O + + @ 2 9 0 g p p h h h h h h h p h h a a s s j k k j l d d 5 5 f f 6 6 r r r r r ", +" X < y O z x x 9 0 g c v b n n n n n n n n n n n h a a s s j j m l M d d N f f B B B B r r r ", +" < y u + z 2 0 c c b V C Z C C A A A A A S S S n h D w w m m m m k l M d d N f F F F B r r r ", +" < y O z z 9 c b V Z G H H H G S G G J J H V v c g g K K K K L P l l l M M N N N N I B B r r ", +" U u + z x i v C H Y J J J J H J T R H V E W W Q Q Q Q ! ! ! ~ ^ ^ / / M M M M M N ( B B r r ", +" ) _ z x 9 g b Z Y ` ' ' ' T T ] [ { } | .........W W Q Q X.! ~ ~ o.O./ / / / N F ( B B B r ", +" ) ) z x i c V G J ' +.+.+.+.] [ @.#.$.%.%.%.&.*. . .....W =.-.X.;.~ :.o.O.^ >.N F ( B B B B ", +" ) ,.<.2 g v C H J ' +.+.+.+.T Y 1.2.3.4.4.4.5.6.&.&. . ...W =.=.-.;.~ :.o.7.>.N F F ( B I I ", +" ) ,.<.8.9.b C H J T +.+.+.' J @.1.0.q.q.w.e.4.5.6.&.r. . .t.W =.=.-.;.~ :.o.7.y.N F ( ( I I ", +" 8.8.8.9.| u.C G J T +.+.' ` Y @.1.i.0.q.q.e.e.5.6.p.r.a. .t.t.s.d.d.-.;.~ :.7.7.y.F F ( I I ", +" 9.c c c v b A S H ' f.g.` Y @.h.1.i.j.0.q.q.e.k.6.p.r.a.l.t.z.s.s.d.x.c.v.b.n.m.7.N F F F I ", +" <.g M.N.B.B.n V.J f.R J @.h.h.1.i.i.j.j.0.q.3.k.6.p.r.a.l.l.z.s.C.d.x.x.c.v.b.n.m.y.N F F F ", +" + x i v B.Z Z G g.Z.[ @.2.i.i.j.j.j.j.j.0.q.3.k.6.p.p.a.l.l.A.s.C.C.d.x.c.v.b.n.m.7.y.N N y. ", +" O # 3 w p n Z ` f.S.H D.F.q.0.0.0.0.j.0.q.q.3.k.6.p.r.a.a.l.A.s.s.C.d.x.x.c.v.b.n.m.y.y.y.y. ", +" O # 4 s a G.V.T Z.H.V J.%.e.w.q.0.0.0.0.q.q.e.k.6.p.r.a.a.l.z.A.s.C.d.d.x.c.v.b.n.m.7.>.y.y. ", +" O # 4 s w G.A f.K.H L...4.P.w.w.w.q.q.q.q.e.e.5.6.M.I.I.a.a.l.z.A.s.d.d.x.c.v.v.U.Y.7.O.>.y. ", +" $ # 4 3 s G.G f.S.Z 9.*.D.P.P.w.w.w.w.w.e.e.5.5.M.M.I.I.a.a.l.z.T.s.d.d.x.x.c.v.U.Y.m.R.>.>. ", +" E.E.W.W.W.W.E.Z.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.~.~.~.~.~.~.^.^.^.^.^./././.(.{ { )._.`._. ", +" + # 3 w s '.` f.H.V ].*.D.P.P.P.P.P.P.P.5.5.5.M.M.M.I.I.a.l.z.z.T.T.s.d.d.x.c.v.U.Y.[.^ O.>. ", +" ~.~.~.~.~.~.K.Z.S.~.{.^.^.^.^.^.^.^.^././././././.(.(.(.(.(.(.{ { { { { ).).).w.w.}.|.P.u.} ", +" .I.6. X X XT f.H.b ].*.E D.D.D.D.5.5..X.XM.M.I.I.a.a.l.l.z.z.T.T.T.d.XXx.c.v.b.U.oXOXR.+X@X ", +" E.E.E.W.W.W.K.Z.E.W.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.!.~.~.~.~.~.~.^.^.^.^.^./././.(.{ { ).).#X_._. ", +" & % $ e '.= H f.H.b 8.W *.E E E .X.X.XI.I.I.I.a.a.l.l.z.z.T.T.T.C.XXXXc.v.$X%X&XY.*X=X2 @X-X ", +" {.{.{.{.{.#X~.Z.W.~.{.{./././././././././.(.(.(.(.(.(.(.{ { { { { { ).).).w.w.3.}.;X%.:X} } ", +" & & % $ e >XV.f.S.C K X.W t. . .l.l.t.t.t.t.A.A.A.,X,X,X,X,XX7X` Z.Z D ! =.=.s.t.t.t.A.A.s.A.,X,X,X,X > > t t t cX ", +" nXbXbXzXzXlXaXXXY +Xf = f = 7XtXR R mXn.Y.[.[.[.[.OX*X*X8X5X*X=X,.u vXvX; > > MXMX, 7 t t ", +" nXnXnXbXzXvX-.Y +XcX6 6 = = = d L B.G H `.X.:.7.m.=X=X=X=X=X6X,.u cXvXNX: BX> MXVXCXVX7 7 7 ", +" ZXZXnXbXAXgX@.+XvX; - - - - * @XR.>.sX>.R.i 0 x eXeXeXeXO hXaXcXvXNX: BXMXMXMXVXCXCXCXVX7 7 ", +" SXZXZXAXgXN.aXNX: : NXNXNX- * +X+X* 6 6 6 * * * * * * * vXvX- NX: DXBXMXMXFXCXCXCXCXGXVXVX7 ", +" SXSXHXgX0.JXKXLXKXKXDX: : NX* @X-X- - - - - - - - - - - NX: DXDXDXMXMXFXFXCXCXCXCXGXGXGXVXVX ", +" SXHXPX3.JXnXnXnXnXbXLXKXKXNXaX-XvX: : NX: : : : : : : BXDXDXLXMXMXFXFXCXCXCXCXGXGXGXGXGXGXGX ", +" IXUX$.AXZXZXZXZXnXnXnXLXLXNXJXvXBXDXBXBXBXBXDXDXDXDXLXDXLXLXFXFXFXFXCXCXCXCXGXGXGXGXGXGXGXGX ", +" "}; diff --git a/demo/itp04-rcp/example-bundle/icons/alt_window_16.gif b/demo/itp04-rcp/example-bundle/icons/alt_window_16.gif new file mode 100644 index 0000000000000000000000000000000000000000..05626b17d8133fb8d4644b1d6fef71b5464a83ec GIT binary patch literal 637 zcmV-@0)qWVNk%w1VGsZi0OkMyi-8)}*O-2lP0Hw}F;@yymoek*x!Lop&FGr*^SR~k zs^;O9;p?WSqgKtvhMApMhF*N^?6&X&9pLg?DBG(C(ez;g!PXhs))Rw8MzH&4Z(_ zXvf!@hj|a@|9{HUwg3O)o~~}>@~^JReYVZIH1tGelN zk%v8>nmw<;lBk_yvbu)E--D*OeB8x>j*3>k(uk0bLzTd1hNNNJ=CYr@WM^3dMPxF! zzph4nBvxlHz`%CY-G9r{sL|c0ptWPh!<4SPZ@9Bvy2FG2|H;$mn~9BNUw$#w=Y!bc zgtn}6%i@6G^tH9ZgW}z-$IYnz|B<@Hh`+RXy1~Awt!2U5leENdA^8LV00000EC2ui z01yBW000NtfPaF6goT0uIU{mqadcHX2yRVIXMzhO7(q`I6h}HJI0pwxmKbPYVl@J4 zDm{J(2S|cfc{Cdv4KaNy8g_n31A=5;1shmX4-f6x{Jf>7ZWJ08yT*#Oz=YiBkILwmjfEnosaBAPDf9ls zyvdZd!-~Sos+W>G-s`Nk{FBSui~9V#l#Mgv?ySDMe7VAbsjYFcx_8&zi?qIfzR97t z#FCqrMWLNf&E=%y`n1>coVmr8xaEKH{mbL}t&D;gy~&Qj%#~z(LzA{)#N~zP^|R~m zp}otUtJHMC;*HGdj_LHdqq%0d+j+ajo586>NW&Zue=J&Va z_qWdQp*=VauEA}uv~jPtc+cjr?)$_4|H+n~Sk~>BfR;|v}n2Rhi`F=4Oay#WC( zz<`mgpCCAqiV)E;p<@9xCQK|?u;RoC1{4_NfH;66xr-`97}&wFV-*P~5+pD)vg8R0 zI93LL@noC>K`K;O`4g|B4lhV>>g2hiWCx%^T^{{orJ4a655`o18dWM!k`*dk<&Yyl zfG5fS1RaQShe(_;Sx`vWyEms9sw>oDh4>bLpfy5xfE`1`gkHXW0jpj6!!3+1hlRY6 zQy_~06J=0{7QHhC$-sg+aIlQ|&yCj@I%Akk8-s@1w@K(G@u9a17cX99$UG;+7%U7@ zlv%#~uj#6&*RB>2ppBs0bz)=quzPp!?;n2u4lX=Hp5cE)h!8^KID-=@;>$l>HEo9u zEsU@TAYhAi*RXY_!ECq{*d1@a0TQou6B7<7n0fl1KSm)2x0%)o*NS_pu^79a?c zi406UP(TnUnRKCj_u;1@haNhyM2LS(vBn8V+%d);0pLIZ1uX`dp?)5CAb^J;(kQ|I zO&6rWMFAHKfP;@MwvgcrL>d{R5+KlMf)rB#V8eqMJTZW399TI6mRTN&00K)uQ9=oV zj6lE?NdPc{4UC;JKn`ef@B<4QcIY7jTsF`EoqsUV$rLsKus{?aoe{tQKV-V0mT$rd z#SlFxTBoA~G~mSmU&O#h6&*O?mRoMV=|mHsf-*z{b&fDX4^<2hfeki9pa&ONoDhH$ z$Rgl`5=xXX1OyR83&9Y%G9keL8+1ZI5?#aq01O8-A+8@KG|&UI(QdE-8ln901s{1V z@dXp4mH#SB%I7#TXkB G2mm{gq(mG5 literal 0 HcmV?d00001 diff --git a/demo/itp04-rcp/example-bundle/icons/sample.gif b/demo/itp04-rcp/example-bundle/icons/sample.gif new file mode 100644 index 0000000000000000000000000000000000000000..34fb3c9d8cb7d489681b7f7aee4bdcd7eaf53610 GIT binary patch literal 983 zcmZ?wbhEHb6krfw_|CxKYUg-n!?izO{@9*?jxd%4aX0yzy`dymabz zw#(eg=y~&N&n)dZv2xzduG}5lraiApo3(c4*{Ylg5#|$JO_EEZ<^|a2`Z*=9ns7DV zy=TR&gYw*7f%auV?ip3tvjRPmcdoho{K?x$_vR?C#t5&<;~V}S*>OMCr>h}%%bLZ9 zmo3`hYEwTICo-TTCZwgTsC&VjZRgJ1eE#fBa^%9R zmmfWS@;bnyJ27HWY}kxYzv(Hl>yu;FCPlAEh+34Muq-8Rb6C)<8qA3{r2e5 z`$vyngh#H=FWlqqvnapfc5%(!sQ4v?r7J61-&eJNEN^;KTK}T7{#i-gJh%G*9vcYdwv_*~xdw!Gz4Va?T!sXyyF@8?w<>X`X=#j%uHV4GRvj@+tE@ zQ%F!a)GKcn^~8abN>4la1UNXVL;{ZWi)lEwyeatDu%Lr6;aASiLrXXW zQm#pF1ZP1_K>z@;j(q!3lK=n!AY({UO#lFg4*&p+4*&rDQUCyfKmY)J zc>nJI>{JTSNzMQCufqW=$ofBwGHu0Fgj zfcBML(-OIpM=%ufV5h`@&c&UKu7DOp7VOjw0A2alr=LOOu@|8IJ9ME!8W8D!0`zY~ zuM**XzYG}Jo_9WVUX(33DbhPW-uX=02~R!s?S=v ztbrA@l9+lZq?1N@CShdaJQFi31+zM7)d*HDY15```jkVTxg9`85M@D($lAoEocvQ8 zS1_?@UM}$RxRDV|YyukAq=(;GJM`%hJ~L{}xlH*%0q80Uf~KJeW2UOhxbNgkc5R-d zWl<&Jj(A7-tkcl)9Wxi)*23N4Viy1{Hz^U_M@XVobSCQ16##Hss_l(|`=~Kbtl>Lp zFHbqk)6RV{Ks53cK;{yi0K=e2*tnbs;4&4)Ek#5od9XNrxIA0$S0cKe#!e=Zmq$%Z+|Fg%0rTUvxv}c} z`2K^5gQe-im3v2D-EXWf9CvSWuM-~)&?};7sYNM>zO(45!+ODUusrk3H&jt{<(;K1bB6^9cNCbGfnY`_{kK3_kk4C*VUFaNqi} z`PkR=ubu8~oQ1Z|V>>UCfmi(ig>^zm6P3v&Cte+*yD4-e~}ISSc<>C z9Y8wV3o~OcdB-Ztp4!8E^{u62|LS+)M`wwh^GxuEQsU=Y{>?xDa=4RijMHXBml-$Y zCd|cYTY1h|S-AVPZ>GNHt@~F`5Pov^WiI?vS-3pN{d!#eqaOgfjNFc71LF|JS!7lx z2*6`4&N|9oSCxdnxzGr%zlcA%$VV>WUd{YcFTH6VzWo3I!hd%T3r;TW=5te);=Hr6 z=&t#uo^5y=+l!6R`dM=4q8xu+%l`Jf^!w@I+so5GuK@V-@$@g7@>xE4BG;7w0000< KMNUMnLSTY5CPljd literal 0 HcmV?d00001 diff --git a/demo/itp04-rcp/example-bundle/plugin.xml b/demo/itp04-rcp/example-bundle/plugin.xml new file mode 100644 index 0000000000..d49bec45c4 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/plugin.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/itp04-rcp/example-bundle/pom.xml b/demo/itp04-rcp/example-bundle/pom.xml new file mode 100644 index 0000000000..fcd1bbf023 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/pom.xml @@ -0,0 +1,27 @@ + + + + 4.0.0 + + 0.1.0-SNAPSHOT + example-bundle + eclipse-plugin + RCP Example Bundle (Product Application) + + + 1.0.0-SNAPSHOT + example.group + parent + + + diff --git a/demo/itp04-rcp/example-bundle/src/example/bundle/Activator.java b/demo/itp04-rcp/example-bundle/src/example/bundle/Activator.java new file mode 100644 index 0000000000..af7bf7a190 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/src/example/bundle/Activator.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 SAP AG and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * SAP AG - initial API and implementation + *******************************************************************************/ +package example.bundle; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "example-bundle"; + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given plug-in relative path + * + * @param path + * the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/demo/itp04-rcp/example-bundle/src/example/bundle/Application.java b/demo/itp04-rcp/example-bundle/src/example/bundle/Application.java new file mode 100644 index 0000000000..a96f777a60 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/src/example/bundle/Application.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 SAP AG and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * SAP AG - initial API and implementation + *******************************************************************************/ +package example.bundle; + +import org.eclipse.equinox.app.IApplication; +import org.eclipse.equinox.app.IApplicationContext; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.PlatformUI; + +/** + * This class controls all aspects of the application's execution + */ +public class Application implements IApplication { + + /* + * (non-Javadoc) + * + * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext) + */ + public Object start(IApplicationContext context) throws Exception { + Display display = PlatformUI.createDisplay(); + try { + int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); + if (returnCode == PlatformUI.RETURN_RESTART) + return IApplication.EXIT_RESTART; + else + return IApplication.EXIT_OK; + } finally { + display.dispose(); + } + + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.equinox.app.IApplication#stop() + */ + public void stop() { + final IWorkbench workbench = PlatformUI.getWorkbench(); + if (workbench == null) + return; + final Display display = workbench.getDisplay(); + display.syncExec(new Runnable() { + public void run() { + if (!display.isDisposed()) + workbench.close(); + } + }); + } +} diff --git a/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationActionBarAdvisor.java b/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationActionBarAdvisor.java new file mode 100644 index 0000000000..abbbc4f7bc --- /dev/null +++ b/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationActionBarAdvisor.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 SAP AG and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * SAP AG - initial API and implementation + *******************************************************************************/ +package example.bundle; + +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.application.ActionBarAdvisor; +import org.eclipse.ui.application.IActionBarConfigurer; + +public class ApplicationActionBarAdvisor extends ActionBarAdvisor { + + public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { + super(configurer); + } + + protected void makeActions(IWorkbenchWindow window) { + } + + protected void fillMenuBar(IMenuManager menuBar) { + } + +} diff --git a/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchAdvisor.java b/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchAdvisor.java new file mode 100644 index 0000000000..1b2716929e --- /dev/null +++ b/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchAdvisor.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 SAP AG and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * SAP AG - initial API and implementation + *******************************************************************************/ +package example.bundle; + +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchAdvisor; +import org.eclipse.ui.application.WorkbenchWindowAdvisor; + +public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor { + + private static final String PERSPECTIVE_ID = "example.bundle.perspective"; + + public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { + return new ApplicationWorkbenchWindowAdvisor(configurer); + } + + public String getInitialWindowPerspectiveId() { + return PERSPECTIVE_ID; + } +} diff --git a/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchWindowAdvisor.java b/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchWindowAdvisor.java new file mode 100644 index 0000000000..e1513a253a --- /dev/null +++ b/demo/itp04-rcp/example-bundle/src/example/bundle/ApplicationWorkbenchWindowAdvisor.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 SAP AG and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * SAP AG - initial API and implementation + *******************************************************************************/ +package example.bundle; + +import org.eclipse.swt.graphics.Point; +import org.eclipse.ui.application.ActionBarAdvisor; +import org.eclipse.ui.application.IActionBarConfigurer; +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchWindowAdvisor; + +public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { + + public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { + super(configurer); + } + + public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) { + return new ApplicationActionBarAdvisor(configurer); + } + + public void preWindowOpen() { + IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); + configurer.setInitialSize(new Point(400, 300)); + configurer.setShowCoolBar(false); + configurer.setShowStatusLine(false); + } +} diff --git a/demo/itp04-rcp/example-bundle/src/example/bundle/Perspective.java b/demo/itp04-rcp/example-bundle/src/example/bundle/Perspective.java new file mode 100644 index 0000000000..7a4106ad8b --- /dev/null +++ b/demo/itp04-rcp/example-bundle/src/example/bundle/Perspective.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 SAP AG and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * SAP AG - initial API and implementation + *******************************************************************************/ +package example.bundle; + +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IPerspectiveFactory; + +public class Perspective implements IPerspectiveFactory { + + public void createInitialLayout(IPageLayout layout) { + } +} diff --git a/demo/itp04-rcp/example-bundle/src/example/bundle/handlers/SampleHandler.java b/demo/itp04-rcp/example-bundle/src/example/bundle/handlers/SampleHandler.java new file mode 100644 index 0000000000..af7c591e14 --- /dev/null +++ b/demo/itp04-rcp/example-bundle/src/example/bundle/handlers/SampleHandler.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 SAP AG and others. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * SAP AG - initial API and implementation + *******************************************************************************/ +package example.bundle.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.jface.dialogs.MessageDialog; + +/** + * Our sample handler extends AbstractHandler, an IHandler base class. + * + * @see org.eclipse.core.commands.IHandler + * @see org.eclipse.core.commands.AbstractHandler + */ +public class SampleHandler extends AbstractHandler { + /** + * The constructor. + */ + public SampleHandler() { + } + + /** + * the command has been executed, so extract extract the needed information from the application + * context. + */ + public Object execute(ExecutionEvent event) throws ExecutionException { + IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event); + MessageDialog.openInformation(window.getShell(), "Bundle", "Hello, Eclipse world"); + return null; + } +} diff --git a/demo/itp04-rcp/example-feature-2/.gitignore b/demo/itp04-rcp/example-feature-2/.gitignore new file mode 100644 index 0000000000..8032fef6bb --- /dev/null +++ b/demo/itp04-rcp/example-feature-2/.gitignore @@ -0,0 +1,5 @@ +/target +/.settings +/.classpath +/.project +/workspace diff --git a/demo/itp04-rcp/example-feature-2/build.properties b/demo/itp04-rcp/example-feature-2/build.properties new file mode 100644 index 0000000000..59ab0d6e58 --- /dev/null +++ b/demo/itp04-rcp/example-feature-2/build.properties @@ -0,0 +1,14 @@ +############################################################################### +# Copyright (c) 2010, 2011 SAP AG and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# SAP AG - initial API and implementation +############################################################################### +bin.includes = feature.xml,\ + license.html,\ + feature.properties,\ + epl-v10.html diff --git a/demo/itp04-rcp/example-feature-2/epl-v10.html b/demo/itp04-rcp/example-feature-2/epl-v10.html new file mode 100644 index 0000000000..ed4b196655 --- /dev/null +++ b/demo/itp04-rcp/example-feature-2/epl-v10.html @@ -0,0 +1,328 @@ + + + + + + + + +Eclipse Public License - Version 1.0 + + + + + + +
+ +

Eclipse Public License - v 1.0 +

+ +

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.

+ +

1. DEFINITIONS

+ +

"Contribution" means:

+ +

a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and
+b) in the case of each subsequent Contributor:

+ +

i) +changes to the Program, and

+ +

ii) +additions to the Program;

+ +

where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program.

+ +

"Contributor" means any person or +entity that distributes the Program.

+ +

"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program.

+ +

"Program" means the Contributions +distributed in accordance with this Agreement.

+ +

"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.

+ +

2. GRANT OF RIGHTS

+ +

a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.

+ +

b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder.

+ +

c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.

+ +

d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement.

+ +

3. REQUIREMENTS

+ +

A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that: +

+ +

a) +it complies with the terms and conditions of this Agreement; and

+ +

b) +its license agreement:

+ +

i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose;

+ +

ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits;

+ +

iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and

+ +

iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.

+ +

When the Program is made available in source +code form:

+ +

a) +it must be made available under this Agreement; and

+ +

b) a +copy of this Agreement must be included with each copy of the Program.

+ +

Contributors may not remove or alter any +copyright notices contained within the Program.

+ +

Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution.

+ +

4. COMMERCIAL DISTRIBUTION

+ +

Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.

+ +

For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.

+ +

5. NO WARRANTY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations.

+ +

6. DISCLAIMER OF LIABILITY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.

+ +

7. GENERAL

+ +

If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.

+ +

If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed.

+ +

All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive.

+ +

Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.

+ +

This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.

+ +

 

+ +
+ + + + \ No newline at end of file diff --git a/demo/itp04-rcp/example-feature-2/feature.properties b/demo/itp04-rcp/example-feature-2/feature.properties new file mode 100644 index 0000000000..3982edde05 --- /dev/null +++ b/demo/itp04-rcp/example-feature-2/feature.properties @@ -0,0 +1,157 @@ +############################################################################### +# Copyright (c) 2010, 2011 SAP AG and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# SAP AG - initial API and implementation +############################################################################### +featureName=Example Feature 2 +providerName=Eclipse.org + +# description property - text of the "Feature Descrption" +description=Tycho Example Feature +################ end of description property ################################## + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2010, 2011 SAP AG and others.\n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +April 14, 2010\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ########################################## + diff --git a/demo/itp04-rcp/example-feature-2/feature.xml b/demo/itp04-rcp/example-feature-2/feature.xml new file mode 100644 index 0000000000..73e955d500 --- /dev/null +++ b/demo/itp04-rcp/example-feature-2/feature.xml @@ -0,0 +1,27 @@ + + + + + %description + + + + %copyright + + + + %license + + + + + diff --git a/demo/itp04-rcp/example-feature-2/license.html b/demo/itp04-rcp/example-feature-2/license.html new file mode 100644 index 0000000000..c184ca36a9 --- /dev/null +++ b/demo/itp04-rcp/example-feature-2/license.html @@ -0,0 +1,107 @@ + + + + + +Eclipse Foundation Software User Agreement + + + +

Eclipse Foundation Software User Agreement

+

April 14, 2010

+ +

Usage Of Content

+ +

THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.

+ +

Applicable Licenses

+ +

Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. + For purposes of the EPL, "Program" will mean the Content.

+ +

Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code + repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").

+ +
    +
  • Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • +
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • +
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins + and/or Fragments associated with that Feature.
  • +
  • Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.
  • +
+ +

The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and +Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module +including, but not limited to the following locations:

+ +
    +
  • The top-level (root) directory
  • +
  • Plug-in and Fragment directories
  • +
  • Inside Plug-ins and Fragments packaged as JARs
  • +
  • Sub-directories of the directory named "src" of certain Plug-ins
  • +
  • Feature directories
  • +
+ +

Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in +that directory.

+ +

THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):

+ + + +

IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.

+ + +

Use of Provisioning Technology

+ +

The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about packaging Installable Software is available at http://eclipse.org/equinox/p2/repository_packaging.html + ("Specification").

+ +

You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology + in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the + Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:

+ +
    +
  1. A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based + product.
  2. +
  3. During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.
  4. +
  5. Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern + the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such + indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.
  6. +
+ +

Cryptography

+ +

Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to + another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import, + possession, or use, and re-export of encryption software, to see if this is permitted.

+ +

Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.

+ + diff --git a/demo/itp04-rcp/example-feature-2/pom.xml b/demo/itp04-rcp/example-feature-2/pom.xml new file mode 100644 index 0000000000..7b8cd45d83 --- /dev/null +++ b/demo/itp04-rcp/example-feature-2/pom.xml @@ -0,0 +1,27 @@ + + + + 4.0.0 + + 0.2.0-SNAPSHOT + example-feature-2 + eclipse-feature + RCP Example Feature 2 + + + 1.0.0-SNAPSHOT + example.group + parent + + + diff --git a/demo/itp04-rcp/example-feature/.gitignore b/demo/itp04-rcp/example-feature/.gitignore new file mode 100644 index 0000000000..8032fef6bb --- /dev/null +++ b/demo/itp04-rcp/example-feature/.gitignore @@ -0,0 +1,5 @@ +/target +/.settings +/.classpath +/.project +/workspace diff --git a/demo/itp04-rcp/example-feature/README.txt b/demo/itp04-rcp/example-feature/README.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demo/itp04-rcp/example-feature/build.properties b/demo/itp04-rcp/example-feature/build.properties new file mode 100644 index 0000000000..4e89bee422 --- /dev/null +++ b/demo/itp04-rcp/example-feature/build.properties @@ -0,0 +1,23 @@ +############################################################################### +# Copyright (c) 2010, 2011 SAP AG and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# SAP AG - initial API and implementation +############################################################################### +bin.includes = feature.xml,\ + license.html,\ + feature.properties,\ + epl-v10.html + +root = file:README.txt +root.win32.win32.x86_64 = rootfiles/win +root.linux.gtk.x86_64 = rootfiles/linux +root.macosx.cocoa.x86_64 = rootfiles/macosx + +# permissions and links works if product is built on linux (will not work if built on windows) +root.linux.gtk.x86_64.permissions.755 = scripts/hello +root.linux.gtk.x86_64.link = scripts/hello,hello_alias diff --git a/demo/itp04-rcp/example-feature/epl-v10.html b/demo/itp04-rcp/example-feature/epl-v10.html new file mode 100644 index 0000000000..ed4b196655 --- /dev/null +++ b/demo/itp04-rcp/example-feature/epl-v10.html @@ -0,0 +1,328 @@ + + + + + + + + +Eclipse Public License - Version 1.0 + + + + + + +
+ +

Eclipse Public License - v 1.0 +

+ +

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.

+ +

1. DEFINITIONS

+ +

"Contribution" means:

+ +

a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and
+b) in the case of each subsequent Contributor:

+ +

i) +changes to the Program, and

+ +

ii) +additions to the Program;

+ +

where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program.

+ +

"Contributor" means any person or +entity that distributes the Program.

+ +

"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program.

+ +

"Program" means the Contributions +distributed in accordance with this Agreement.

+ +

"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.

+ +

2. GRANT OF RIGHTS

+ +

a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.

+ +

b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder.

+ +

c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.

+ +

d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement.

+ +

3. REQUIREMENTS

+ +

A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that: +

+ +

a) +it complies with the terms and conditions of this Agreement; and

+ +

b) +its license agreement:

+ +

i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose;

+ +

ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits;

+ +

iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and

+ +

iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.

+ +

When the Program is made available in source +code form:

+ +

a) +it must be made available under this Agreement; and

+ +

b) a +copy of this Agreement must be included with each copy of the Program.

+ +

Contributors may not remove or alter any +copyright notices contained within the Program.

+ +

Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution.

+ +

4. COMMERCIAL DISTRIBUTION

+ +

Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.

+ +

For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.

+ +

5. NO WARRANTY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations.

+ +

6. DISCLAIMER OF LIABILITY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.

+ +

7. GENERAL

+ +

If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.

+ +

If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed.

+ +

All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive.

+ +

Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.

+ +

This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.

+ +

 

+ +
+ + + + \ No newline at end of file diff --git a/demo/itp04-rcp/example-feature/feature.properties b/demo/itp04-rcp/example-feature/feature.properties new file mode 100644 index 0000000000..4a1a063d2e --- /dev/null +++ b/demo/itp04-rcp/example-feature/feature.properties @@ -0,0 +1,157 @@ +############################################################################### +# Copyright (c) 2010, 2011 SAP AG and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# SAP AG - initial API and implementation +############################################################################### +featureName=Example Feature +providerName=Eclipse.org + +# description property - text of the "Feature Descrption" +description=Tycho Example Feature +################ end of description property ################################## + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2010, 2011 SAP AG and others.\n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +April 14, 2010\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ########################################## + diff --git a/demo/itp04-rcp/example-feature/feature.xml b/demo/itp04-rcp/example-feature/feature.xml new file mode 100644 index 0000000000..4594603c86 --- /dev/null +++ b/demo/itp04-rcp/example-feature/feature.xml @@ -0,0 +1,27 @@ + + + + + %description + + + + %copyright + + + + %license + + + + + diff --git a/demo/itp04-rcp/example-feature/license.html b/demo/itp04-rcp/example-feature/license.html new file mode 100644 index 0000000000..c184ca36a9 --- /dev/null +++ b/demo/itp04-rcp/example-feature/license.html @@ -0,0 +1,107 @@ + + + + + +Eclipse Foundation Software User Agreement + + + +

Eclipse Foundation Software User Agreement

+

April 14, 2010

+ +

Usage Of Content

+ +

THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.

+ +

Applicable Licenses

+ +

Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. + For purposes of the EPL, "Program" will mean the Content.

+ +

Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code + repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").

+ +
    +
  • Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • +
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • +
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins + and/or Fragments associated with that Feature.
  • +
  • Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.
  • +
+ +

The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and +Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module +including, but not limited to the following locations:

+ +
    +
  • The top-level (root) directory
  • +
  • Plug-in and Fragment directories
  • +
  • Inside Plug-ins and Fragments packaged as JARs
  • +
  • Sub-directories of the directory named "src" of certain Plug-ins
  • +
  • Feature directories
  • +
+ +

Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in +that directory.

+ +

THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):

+ + + +

IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.

+ + +

Use of Provisioning Technology

+ +

The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about packaging Installable Software is available at http://eclipse.org/equinox/p2/repository_packaging.html + ("Specification").

+ +

You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology + in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the + Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:

+ +
    +
  1. A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based + product.
  2. +
  3. During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.
  4. +
  5. Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern + the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such + indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.
  6. +
+ +

Cryptography

+ +

Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to + another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import, + possession, or use, and re-export of encryption software, to see if this is permitted.

+ +

Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.

+ + diff --git a/demo/itp04-rcp/example-feature/pom.xml b/demo/itp04-rcp/example-feature/pom.xml new file mode 100644 index 0000000000..c309ec136a --- /dev/null +++ b/demo/itp04-rcp/example-feature/pom.xml @@ -0,0 +1,27 @@ + + + + 4.0.0 + + 0.1.0-SNAPSHOT + example-feature + eclipse-feature + RCP Example Feature + + + 1.0.0-SNAPSHOT + example.group + parent + + + diff --git a/demo/itp04-rcp/example-feature/rootfiles/linux/doc/doc_linux.html b/demo/itp04-rcp/example-feature/rootfiles/linux/doc/doc_linux.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demo/itp04-rcp/example-feature/rootfiles/linux/scripts/hello b/demo/itp04-rcp/example-feature/rootfiles/linux/scripts/hello new file mode 100644 index 0000000000..b0f0a0b0f0 --- /dev/null +++ b/demo/itp04-rcp/example-feature/rootfiles/linux/scripts/hello @@ -0,0 +1,2 @@ +#!/bin/bash +echo Hello world diff --git a/demo/itp04-rcp/example-feature/rootfiles/macosx/doc/doc_macos.html b/demo/itp04-rcp/example-feature/rootfiles/macosx/doc/doc_macos.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demo/itp04-rcp/example-feature/rootfiles/win/doc/doc_win.html b/demo/itp04-rcp/example-feature/rootfiles/win/doc/doc_win.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demo/itp04-rcp/mars/.gitignore b/demo/itp04-rcp/mars/.gitignore new file mode 100644 index 0000000000..8032fef6bb --- /dev/null +++ b/demo/itp04-rcp/mars/.gitignore @@ -0,0 +1,5 @@ +/target +/.settings +/.classpath +/.project +/workspace diff --git a/demo/itp04-rcp/mars/mars.target b/demo/itp04-rcp/mars/mars.target new file mode 100644 index 0000000000..400cf54baf --- /dev/null +++ b/demo/itp04-rcp/mars/mars.target @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/demo/itp04-rcp/mars/pom.xml b/demo/itp04-rcp/mars/pom.xml new file mode 100644 index 0000000000..8923f9b81a --- /dev/null +++ b/demo/itp04-rcp/mars/pom.xml @@ -0,0 +1,27 @@ + + + + 4.0.0 + + mars + eclipse-target-definition + RCP Example Target Definition + + + parent + example.group + 1.0.0-SNAPSHOT + + + diff --git a/demo/itp04-rcp/pom.xml b/demo/itp04-rcp/pom.xml new file mode 100644 index 0000000000..20b9ebce18 --- /dev/null +++ b/demo/itp04-rcp/pom.xml @@ -0,0 +1,78 @@ + + + + 4.0.0 + + 1.0.0-SNAPSHOT + example.group + parent + pom + RCP Parent + + + 2.3.0 + UTF-8 + + + + eclipse-repository + example-bundle + example-feature + example-feature-2 + mars + root-files + root-files-windows + + + + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + + + example.group + mars + 1.0.0-SNAPSHOT + + + + + win32 + win32 + x86_64 + + + linux + gtk + x86_64 + + + macosx + cocoa + x86_64 + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + + diff --git a/demo/itp04-rcp/root-files-windows/p2iu.xml b/demo/itp04-rcp/root-files-windows/p2iu.xml new file mode 100644 index 0000000000..6be2d7b1b8 --- /dev/null +++ b/demo/itp04-rcp/root-files-windows/p2iu.xml @@ -0,0 +1,17 @@ + + + + + + + + + + unzip(source:@artifact, target:${installFolder}); + + + cleanupzip(source:@artifact, target:${installFolder}); + + + + diff --git a/demo/itp04-rcp/root-files-windows/pom.xml b/demo/itp04-rcp/root-files-windows/pom.xml new file mode 100644 index 0000000000..6d3af281e6 --- /dev/null +++ b/demo/itp04-rcp/root-files-windows/pom.xml @@ -0,0 +1,15 @@ + + + 4.0.0 + + org.tycho.demo.rootfiles.win + p2-installable-unit + 1.0.0-SNAPSHOT + + + example.group + parent + 1.0.0-SNAPSHOT + + + diff --git a/demo/itp04-rcp/root-files-windows/src/main/resources/windowsFile.txt b/demo/itp04-rcp/root-files-windows/src/main/resources/windowsFile.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demo/itp04-rcp/root-files/p2iu.xml b/demo/itp04-rcp/root-files/p2iu.xml new file mode 100644 index 0000000000..f4f1d3399b --- /dev/null +++ b/demo/itp04-rcp/root-files/p2iu.xml @@ -0,0 +1,24 @@ + + + + + + + + + (&(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32)) + + + + + + + + unzip(source:@artifact, target:${installFolder}); + + + cleanupzip(source:@artifact, target:${installFolder}); + + + + diff --git a/demo/itp04-rcp/root-files/pom.xml b/demo/itp04-rcp/root-files/pom.xml new file mode 100644 index 0000000000..b9740bd646 --- /dev/null +++ b/demo/itp04-rcp/root-files/pom.xml @@ -0,0 +1,15 @@ + + + 4.0.0 + + org.tycho.demo.rootfiles + p2-installable-unit + 1.0.0 + + + example.group + parent + 1.0.0-SNAPSHOT + + + diff --git a/demo/itp04-rcp/root-files/src/main/resources/myFile.txt b/demo/itp04-rcp/root-files/src/main/resources/myFile.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tycho-demo/README.txt b/tycho-demo/README.txt deleted file mode 100644 index b097eadbb3..0000000000 --- a/tycho-demo/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -To checkout Tycho demo projects have been moved to a separate git repository -To checkout the demo projects execute the following command - - git clone git://git.eclipse.org/gitroot/tycho/org.eclipse.tycho-demo.git -