Mercurial > hg > release > thermostat-0.4
changeset 568:5451224fbd0e
Add Eclipse feature and p2 repositories.
This patch adds a feature project which is required for installing things via
p2 (p2 is Eclipse's installer). Features can be thought of a collection of
plug-ins.
This feature is used to create one of the 3 p2 repositories:
1.) One repo is basically a repository of the core thermostat
bundles with p2 metadata added. This is required for the
Eclipse bits to properly resolve core thermostat bundles
which it depends on.
2.) The second repo contains the Eclipse plug-in client.
3.) A composite repo which points to the above two sub-repos, plus
eclipse.org's orbit repo (which we need for mongodb and lucene
for now).
Here is how users can then try the Eclipse plug-in client:
1.) $ cd $THERMOSTAT_HOME
2.) $ mvn clean install
3.) $ cd eclipse
4.) $ mvn clean package
5.) "Help => Install new software", point it to
$THERMOSTAT_HOME/eclipse/composite-repo/target/composite-repo
and install the Eclipse prototype into their Eclipse.
Reviewed-by: neugens
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-August/002899.html
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.feature/.project Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>com.redhat.thermostat.eclipse.feature</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.feature/build.properties Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,1 @@ +bin.includes = feature.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.feature/feature.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feature + id="com.redhat.thermostat.eclipse.feature" + label="Thermostat Eclipse Feature" + version="0.4.0.qualifier"> + + <description url="http://icedtea.classpath.org/thermostat/"> + Thermostat Eclipse Plug-ins. + </description> + + <copyright url="http://icedtea.classpath.org/thermostat"> + Copyright 2012 Red Hat, Inc. + </copyright> + + <license url="http://www.gnu.org/licenses/"> + Copyright 2012 Red Hat, Inc. + + This file is part of Thermostat. + + Thermostat is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 2, or (at your + option) any later version. + + Thermostat is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Thermostat; see the file COPYING. If not see + <http://www.gnu.org/licenses/>. + + Linking this code with other modules is making a combined work + based on this code. Thus, the terms and conditions of the GNU + General Public License cover the whole combination. + + As a special exception, the copyright holders of this code give + you permission to link this code with independent modules to + produce an executable, regardless of the license terms of these + independent modules, and to copy and distribute the resulting + executable under terms of your choice, provided that you also + meet, for each linked independent module, the terms and conditions + of the license of that module. An independent module is a module + which is not derived from or based on this code. If you modify + this code, you may extend this exception to your version of the + library, but you are not obligated to do so. If you do not wish + to do so, delete this exception statement from your version. + </license> + + <!-- common core requires mongodb and lucene. Bundle names might need + patching for Fedora and other distros. They come from + eclipse.org's orbit repo --> + <requires> + <import plugin="com.redhat.thermostat.common.core"/> + <import plugin="org.eclipse.orbit.mongodb" version="2.7.3" match="greaterOrEqual"/> + <import plugin="org.apache.lucene.core" version="3.5.0" match="greaterOrEqual"/> + </requires> + + <plugin + id="com.redhat.thermostat.eclipse" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.eclipse.boot" + download-size="0" + install-size="0" + version="0.0.0" + fragment="true" + unpack="false"/> + +</feature>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.feature/pom.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>thermostat-eclipse-parent</artifactId> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <version>0.4.0-SNAPSHOT</version> + </parent> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.feature</artifactId> + <version>0.4.0-SNAPSHOT</version> + + <name>Thermostat Eclipse Feature</name> + + <dependencies> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-common-core</artifactId> + <version>0.4.0-SNAPSHOT</version> + </dependency> + </dependencies> + + <build> + <!-- workaround for https://issues.sonatype.org/browse/TYCHO-168 --> + <resources> + <resource> + <directory>src</directory> + <excludes> + <exclude>**/*.java</exclude> + </excludes> + </resource> + </resources> + <plugins> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-source-plugin</artifactId> + </plugin> + </plugins> + </build> + <packaging>eclipse-feature</packaging> +</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.p2-repo/.project Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>com.redhat.thermostat.eclipse.p2-repo</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.pde.UpdateSiteBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.UpdateSiteNature</nature> + </natures> +</projectDescription>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.p2-repo/category.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site> + <feature url="features/com.redhat.thermostat.eclipse.feature_0.4.0.qualifier.jar" id="com.redhat.thermostat.eclipse.feature" version="0.4.0.qualifier"> + <category name="thermostat-eclipse"/> + </feature> + <category-def name="thermostat-eclipse" label="Thermostat Eclipse Plug-ins"/> +</site>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.p2-repo/pom.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>thermostat-eclipse-parent</artifactId> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <version>0.4.0-SNAPSHOT</version> + </parent> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.p2-repo</artifactId> + <version>0.4.0-SNAPSHOT</version> + + <name>Thermostat Eclipse p2 Repository</name> + + <dependencies> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-common-core</artifactId> + <version>0.4.0-SNAPSHOT</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-publisher-plugin</artifactId> + <version>${tycho-version}</version> + <configuration> + <publishArtifacts>true</publishArtifacts> + </configuration> + </plugin> + </plugins> + </build> + + <packaging>eclipse-repository</packaging> +</project>
--- a/eclipse/com.redhat.thermostat.eclipse/build.properties Thu Aug 23 20:32:12 2012 +0200 +++ b/eclipse/com.redhat.thermostat.eclipse/build.properties Wed Aug 22 14:52:00 2012 +0200 @@ -2,4 +2,5 @@ output.. = bin/ bin.includes = META-INF/,\ .,\ - plugin.xml + plugin.xml,\ + icons/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/composite-repo/compositeArtifacts.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,12 @@ +<?xml version='1.0' encoding='UTF-8'?> +<?compositeMetadataRepository version='1.0.0'?> +<repository name='Thermostat Eclipse Composite p2 repository' + type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'> + <children size='3'> + <child location='thermostat-eclipse'/> + <!-- Thermostat core bundles with p2 metadata --> + <child location='thermostat-core-p2'/> + <!-- Eclipse Orbit repo for mongodb and lucene --> + <child location='http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository/' /> + </children> +</repository>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/composite-repo/compositeContent.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,12 @@ +<?xml version='1.0' encoding='UTF-8'?> +<?compositeMetadataRepository version='1.0.0'?> +<repository name='Thermostat Eclipse Composite p2 repository' + type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'> + <children size='3'> + <child location='thermostat-eclipse'/> + <!-- Thermostat core bundles with p2 metadata --> + <child location='thermostat-core-p2'/> + <!-- Eclipse Orbit repo for mongodb and lucene --> + <child location='http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository/' /> + </children> +</repository>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/composite-repo/pom.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Copyright 2012 Red Hat, Inc. + + This file is part of Thermostat. + + Thermostat is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 2, or (at your + option) any later version. + + Thermostat is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Thermostat; see the file COPYING. If not see + <http://www.gnu.org/licenses />. + + Linking this code with other modules is making a combined work + based on this code. Thus, the terms and conditions of the GNU + General Public License cover the whole combination. + + As a special exception, the copyright holders of this code give + you permission to link this code with independent modules to + produce an executable, regardless of the license terms of these + independent modules, and to copy and distribute the resulting + executable under terms of your choice, provided that you also + meet, for each linked independent module, the terms and conditions + of the license of that module. An independent module is a module + which is not derived from or based on this code. If you modify + this code, you may extend this exception to your version of the + library, but you are not obligated to do so. If you do not wish + to do so, delete this exception statement from your version. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <artifactId>thermostat-eclipse-parent</artifactId> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <version>0.4.0-SNAPSHOT</version> + </parent> + + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.composite-repo</artifactId> + <packaging>pom</packaging> + + <properties> + <main.basedir>${project.basedir}/..</main.basedir> + </properties> + + <name>Thermostat Eclipse Composite p2 Repo</name> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.6</version> + <executions> + <execution> + <id>build-repo</id> + <phase>prepare-package</phase> + <configuration> + <target> + <mkdir dir="${project.build.directory}/composite-repo" /> + + <!-- Copy Thermostat Eclipse plug-ins --> + <copydir src="${main.basedir}/com.redhat.thermostat.eclipse.p2-repo/target/repository" + dest="${project.build.directory}/composite-repo/thermostat-eclipse" /> + <!-- Copy Thermostat core bundles p2 repo --> + <copydir src="${main.basedir}/core-p2-repository/target/repository" + dest="${project.build.directory}/composite-repo/thermostat-core-p2" /> + <copy file="compositeArtifacts.xml" + todir="${project.build.directory}/composite-repo/" /> + <copy file="compositeContent.xml" + todir="${project.build.directory}/composite-repo/" /> + + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.p2-repo</artifactId> + <version>${project.version}</version> + <type>eclipse-repository</type> + </dependency> + <dependency> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.core-p2-repo</artifactId> + <version>${project.version}</version> + <type>pom</type> + </dependency> + </dependencies> + +</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/core-p2-repository/pom.xml Wed Aug 22 14:52:00 2012 +0200 @@ -0,0 +1,215 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Copyright 2012 Red Hat, Inc. + + This file is part of Thermostat. + + Thermostat is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 2, or (at your + option) any later version. + + Thermostat is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Thermostat; see the file COPYING. If not see + <http://www.gnu.org/licenses />. + + Linking this code with other modules is making a combined work + based on this code. Thus, the terms and conditions of the GNU + General Public License cover the whole combination. + + As a special exception, the copyright holders of this code give + you permission to link this code with independent modules to + produce an executable, regardless of the license terms of these + independent modules, and to copy and distribute the resulting + executable under terms of your choice, provided that you also + meet, for each linked independent module, the terms and conditions + of the license of that module. An independent module is a module + which is not derived from or based on this code. If you modify + this code, you may extend this exception to your version of the + library, but you are not obligated to do so. If you do not wish + to do so, delete this exception statement from your version. + +--> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>thermostat-eclipse-parent</artifactId> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <version>0.4.0-SNAPSHOT</version> + </parent> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.core-p2-repo</artifactId> + <version>0.4.0-SNAPSHOT</version> + + <name>Thermostat Core Bundles p2 Repository</name> + + <build> + <plugins> + <!-- Configuration for the PublishFeaturesAndBundlesMojoTest --> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-p2-extras-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <phase>prepare-package</phase> + <goals> + <goal>publish-features-and-bundles</goal> + </goals> + </execution> + </executions> + <configuration> + <compress>true</compress> + </configuration> + </plugin> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>copy-bundles-for-publishing</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-main</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-bundles</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-tools</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-launcher</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-core</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-command</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-vmclassstat</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-osgi-memory-stats-panel</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-osgi-living-vm-filter</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-agent-core</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-agent-cli</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-agent-command</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-common-core</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-common-command</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-osgi-process-handler</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-killvm</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-heapdumper</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-laf</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-swing-components</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-keyring</artifactId> + <version>${project.version}</version> + </artifactItem> + + <!-- thread plugin --> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-thread-client-common</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-thread-client-controllers</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-thread-client-swing</artifactId> + <version>${project.version}</version> + </artifactItem> + <artifactItem> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-thread-collector</artifactId> + <version>${project.version}</version> + </artifactItem> + </artifactItems> + <outputDirectory>${project.basedir}/target/source/plugins</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <packaging>pom</packaging> +</project>
--- a/eclipse/pom.xml Thu Aug 23 20:32:12 2012 +0200 +++ b/eclipse/pom.xml Wed Aug 22 14:52:00 2012 +0200 @@ -55,7 +55,7 @@ <tycho-extras-version>0.15.0</tycho-extras-version> <platform-version-name>juno</platform-version-name> <eclipse-site>http://download.eclipse.org/releases/${platform-version-name}</eclipse-site> - <orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/S20120726065500/repository/</orbit-site> + <orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository/</orbit-site> </properties> <profiles> @@ -92,6 +92,10 @@ <module>com.redhat.thermostat.eclipse.boot</module> <module>com.redhat.thermostat.eclipse</module> <module>com.redhat.thermostat.eclipse.test</module> + <module>com.redhat.thermostat.eclipse.feature</module> + <module>com.redhat.thermostat.eclipse.p2-repo</module> + <module>core-p2-repository</module> + <module>composite-repo</module> </modules> <repositories>