Mercurial > hg > release > thermostat-0.7
changeset 737:6adfe1936814
Thermostat Eclipse perspective, SWTComponent and metadata updates
This commit updates the dependencies in each Eclipse POM file. The new
charting capabilities rely on com.redhat.thermostat.client.ui. I have
changed the com.redhat.thermostat.eclipse plugin to specify a dependency
on thermostat-client-core, and the other eclipse projects to depend on
the main com.redhat.thermostat.eclipse plugin. This commit also adds the
new chart plugin as a friend of the main eclipse plugin.
The commit also contains a Thermostat perspective which collects all of
the Thermostat views in a manner similar to the Swing GUI, and a
constants interface that stores cross-plugin constants such as the
various view IDs.
I also added a SWTComponent subclass of UIComponent which contains a
createControl method. This is necessary since, unlike Swing, SWT
controls require a parent composite to be specified in their constructor.
Reviewed-by: jerboaa
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-September/003345.html
line wrap: on
line diff
--- a/Makefile Thu Oct 25 12:48:30 2012 -0400 +++ b/Makefile Thu Oct 25 13:25:07 2012 -0400 @@ -31,7 +31,13 @@ eclipse-test-p2: eclipse-test-deps $(MAVEN) -f eclipse/test-deps-p2-repository/pom.xml $(MAVEN_FLAGS) $(REPO_FLAG) $(MAVEN_SKIP_TEST) clean $(GOAL) -eclipse: eclipse-test-p2 +jfreechart-deps: core-install + $(MAVEN) -f eclipse/jfreechart-bundle-wrapping/pom.xml $(MAVEN_FLAGS) $(REPO_FLAG) $(MAVEN_SKIP_TEST) clean install + +jfreechart-p2: jfreechart-deps + $(MAVEN) -f eclipse/jfreechart-p2-repository/pom.xml $(MAVEN_FLAGS) $(REPO_FLAG) $(MAVEN_SKIP_TEST) clean $(GOAL) + +eclipse: eclipse-test-p2 jfreechart-p2 $(MAVEN) -f eclipse/pom.xml $(MAVEN_FLAGS) $(REPO_FLAG) $(MAVEN_SKIP_TEST) clean $(GOAL) create-repo-dir:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.client.feature/.project Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>com.redhat.thermostat.client.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.client.feature/build.properties Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,1 @@ +bin.includes = feature.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.client.feature/feature.xml Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feature + id="com.redhat.thermostat.client.feature" + label="Thermostat Client Feature" + version="0.5.0.qualifier" + provider-name="Red Hat Inc."> + + <description url="http://icedtea.classpath.org/thermostat"> + Plug-ins necessary for a Thermostat client interface. + </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> + + <plugin + id="com.redhat.thermostat.client.core" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.common.core" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.keyring" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.bundles.org.jfree.chart" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.bundles.org.jfree" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.web.client" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.web.common" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.apache.servicemix.bundles.lucene" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.google.gson" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.launcher" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="com.redhat.thermostat.bundles.core" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.client.feature/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,65 @@ +<?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.5.0-SNAPSHOT</version> + </parent> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.client.feature</artifactId> + <version>0.5.0-SNAPSHOT</version> + + <name>Thermostat Client Feature</name> + + <dependencies> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-client-core</artifactId> + <version>0.5.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-web-client</artifactId> + <version>0.5.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-web-common</artifactId> + <version>0.5.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat</groupId> + <artifactId>thermostat-launcher</artifactId> + <version>0.5.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> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-packaging-plugin</artifactId> + <version>${tycho-version}</version> + <configuration> + <deployableFeature>true</deployableFeature> + </configuration> + </plugin> + </plugins> + </build> + <packaging>eclipse-feature</packaging> +</project>
--- a/eclipse/com.redhat.thermostat.eclipse.feature/feature.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse.feature/feature.xml Thu Oct 25 13:25:07 2012 -0400 @@ -13,48 +13,43 @@ </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. +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"/> + <import feature="com.redhat.thermostat.client.feature" version="0.5.0.qualifier"/> </requires> <plugin @@ -72,4 +67,11 @@ fragment="true" unpack="false"/> + <plugin + id="com.redhat.thermostat.eclipse.chart.common" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + </feature>
--- a/eclipse/com.redhat.thermostat.eclipse.feature/pom.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse.feature/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -15,8 +15,8 @@ <dependencies> <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-core</artifactId> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse</artifactId> <version>0.5.0-SNAPSHOT</version> </dependency> <!-- using Web storage -->
--- a/eclipse/com.redhat.thermostat.eclipse.p2-repo/pom.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse.p2-repo/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -15,8 +15,8 @@ <dependencies> <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-core</artifactId> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse</artifactId> <version>0.5.0-SNAPSHOT</version> </dependency> <!-- using Web storage -->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.test.ui/.classpath Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src/"/> + <classpathentry kind="output" path="target/classes"/> +</classpath>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.test.ui/.project Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>com.redhat.thermostat.eclipse.test.ui</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.test.ui/META-INF/MANIFEST.MF Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,37 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Thermostat Eclipse UI Tests +Bundle-SymbolicName: com.redhat.thermostat.eclipse.test.ui +Bundle-Version: 0.5.0.qualifier +Bundle-Vendor: Red Hat Inc. +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.junit;bundle-version="4.10.0", + org.hamcrest;bundle-version="1.1.0" +Import-Package: com.redhat.thermostat.client.core.views, + com.redhat.thermostat.client.osgi.service, + com.redhat.thermostat.client.ui, + com.redhat.thermostat.common, + com.redhat.thermostat.common.appctx, + com.redhat.thermostat.common.model, + com.redhat.thermostat.eclipse, + com.redhat.thermostat.eclipse.chart.common, + org.apache.log4j;version="1.2.13", + org.eclipse.swtbot.eclipse.finder, + org.eclipse.swtbot.eclipse.finder.matchers, + org.eclipse.swtbot.eclipse.finder.widgets, + org.eclipse.swtbot.swt.finder, + org.eclipse.swtbot.swt.finder.exceptions, + org.eclipse.swtbot.swt.finder.junit, + org.eclipse.swtbot.swt.finder.matchers, + org.eclipse.swtbot.swt.finder.utils, + org.eclipse.swtbot.swt.finder.waits, + org.eclipse.swtbot.swt.finder.widgets, + org.jfree.chart, + org.jfree.chart.axis, + org.jfree.chart.plot, + org.jfree.data.general, + org.jfree.data.time, + org.jfree.data.xy +Export-Package: com.redhat.thermostat.eclipse.test.ui
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.test.ui/build.properties Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.test.ui/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,76 @@ +<?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.5.0-SNAPSHOT</version> + </parent> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.test.ui</artifactId> + <packaging>eclipse-test-plugin</packaging> + <version>0.5.0-SNAPSHOT</version> + + <name>Thermostat Eclipse Client UI Tests</name> + + <repositories> + <repository> + <id>swtbot</id> + <layout>p2</layout> + <url>http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site</url> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.chart.common</artifactId> + <version>0.5.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse.test-deps-repo</artifactId> + <version>0.5.0-SNAPSHOT</version> + <type>pom</type> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-surefire-plugin</artifactId> + <version>${tycho-version}</version> + <configuration> + <useUIHarness>true</useUIHarness> + <useUIThread>false</useUIThread> + <product>org.eclipse.platform.ide</product> + <application>org.eclipse.ui.ide.workbench</application> + <bundleStartLevel> + <bundle> + <id>com.redhat.thermostat.common.core</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>com.redhat.thermostat.web.common</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>com.redhat.thermostat.web.client</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>com.redhat.thermostat.launcher</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + </bundleStartLevel> + </configuration> + </plugin> + </plugins> + </build> + +</project>
--- a/eclipse/com.redhat.thermostat.eclipse.test/META-INF/MANIFEST.MF Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse.test/META-INF/MANIFEST.MF Thu Oct 25 13:25:07 2012 -0400 @@ -12,11 +12,17 @@ com.redhat.thermostat.bundles.org.objenesis;resolution:=optional, com.redhat.thermostat.bundles.org.mockito.mockito-core;resolution:=optional Bundle-RequiredExecutionEnvironment: JavaSE-1.7 -Import-Package: com.redhat.thermostat.common, +Import-Package: com.redhat.thermostat.client.core.views, + com.redhat.thermostat.client.osgi.service, + com.redhat.thermostat.client.ui, + com.redhat.thermostat.common, com.redhat.thermostat.common.dao, + com.redhat.thermostat.common.utils, + com.redhat.thermostat.eclipse, + com.redhat.thermostat.eclipse.chart.common, com.redhat.thermostat.eclipse.model, - org.eclipse.core.resources, - org.eclipse.ui.ide, + com.redhat.thermostat.eclipse.views, org.mockito, org.mockito.stubbing -Export-Package: com.redhat.thermostat.eclipse.test.model +Export-Package: com.redhat.thermostat.eclipse.test.model, + com.redhat.thermostat.eclipse.test.views
--- a/eclipse/com.redhat.thermostat.eclipse.test/pom.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse.test/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -16,8 +16,8 @@ <dependencies> <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-core</artifactId> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.eclipse</artifactId> <version>0.5.0-SNAPSHOT</version> </dependency> <!-- using Web storage --> @@ -50,10 +50,9 @@ <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-surefire-plugin</artifactId> <version>${tycho-version}</version> - <!-- <configuration> <useUIHarness>true</useUIHarness> - <useUIThread>false</useUIThread> + <useUIThread>true</useUIThread> <product>org.eclipse.platform.ide</product> <dependencies> <dependency> @@ -61,9 +60,30 @@ <artifactId>org.eclipse.sdk.feature.group</artifactId> <version>${sdk-version}</version> </dependency> - </dependencies> + </dependencies> + <bundleStartLevel> + <bundle> + <id>com.redhat.thermostat.common.core</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>com.redhat.thermostat.web.common</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>com.redhat.thermostat.web.client</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>com.redhat.thermostat.launcher</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + </bundleStartLevel> </configuration> - --> </plugin> </plugins> </build>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.test/src/com/redhat/thermostat/eclipse/test/views/AbstractRefViewPartTest.java Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,116 @@ +/* + * 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. + */ + +package com.redhat.thermostat.eclipse.test.views; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; + +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.ISelectionService; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPartSite; +import org.eclipse.ui.IWorkbenchWindow; +import org.junit.Before; + +import com.redhat.thermostat.common.dao.Ref; +import com.redhat.thermostat.common.utils.OSGIUtils; +import com.redhat.thermostat.eclipse.ThermostatConstants; +import com.redhat.thermostat.eclipse.chart.common.RefViewPart; +import com.redhat.thermostat.eclipse.views.HostsVmsTreeViewPart; +import com.redhat.thermostat.eclipse.views.SWTComponent; + +public abstract class AbstractRefViewPartTest<T extends Ref> { + + protected Composite parent; + protected RefViewPart<T> view; + protected SWTComponent thermoView; + protected HostsVmsTreeViewPart hostVMView; + private ISelectionProvider provider; + protected OSGIUtils osgi; + + public AbstractRefViewPartTest() { + super(); + } + + @Before + public void before() { + parent = spy(new Shell(Display.getCurrent())); + + view = spy(createViewPart()); + hostVMView = mock(HostsVmsTreeViewPart.class); + osgi = mock(OSGIUtils.class); + OSGIUtils.setInstance(osgi); + + // Workbench mocks + IWorkbenchWindow window = mock(IWorkbenchWindow.class); + IWorkbenchPage page = mock(IWorkbenchPage.class); + ISelectionService service = mock(ISelectionService.class); + + when(page.findView(ThermostatConstants.VIEW_ID_HOST_VM)).thenReturn(hostVMView); + when(window.getSelectionService()).thenReturn(service); + when(window.getActivePage()).thenReturn(page); + when(view.getWorkbenchWindow()).thenReturn(window); + + // Controller mock + mockController(); + + // Selection mocks + IWorkbenchPartSite site = mock(IWorkbenchPartSite.class); + provider = mock(ISelectionProvider.class); + + when(site.getSelectionProvider()).thenReturn(provider); + when(hostVMView.getSite()).thenReturn(site); + } + + protected abstract void mockController(); + + protected abstract RefViewPart<T> createViewPart(); + + protected IStructuredSelection mockSelection(Ref ref) { + IStructuredSelection selection = mock(IStructuredSelection.class);; + when(provider.getSelection()).thenReturn(selection); + when(selection.getFirstElement()).thenReturn(ref); + + return selection; + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse.test/src/com/redhat/thermostat/eclipse/test/views/ThermostatPerspectiveTest.java Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,140 @@ +/* + * 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. + */ + +package com.redhat.thermostat.eclipse.test.views; + +import static org.mockito.Matchers.anyFloat; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import org.eclipse.ui.IFolderLayout; +import org.eclipse.ui.IPageLayout; +import org.junit.Before; +import org.junit.Test; + +import com.redhat.thermostat.eclipse.ThermostatConstants; +import com.redhat.thermostat.eclipse.views.ThermostatPerspectiveFactory; + +public class ThermostatPerspectiveTest { + + private IFolderLayout leftFolder; + private IFolderLayout rightFolder; + private IPageLayout layout; + + @Before + public void createLayout() { + ThermostatPerspectiveFactory factory = new ThermostatPerspectiveFactory(); + layout = mock(IPageLayout.class); + leftFolder = mock(IFolderLayout.class); + rightFolder = mock(IFolderLayout.class); + when(layout.createFolder(eq(ThermostatPerspectiveFactory.FOLDER_LEFT), anyInt(), anyFloat(), anyString())).thenReturn(leftFolder); + when(layout.createFolder(eq(ThermostatPerspectiveFactory.FOLDER_RIGHT), anyInt(), anyFloat(), anyString())).thenReturn(rightFolder); + factory.createInitialLayout(layout); + } + + @Test + public void testHostVMViewAdded() { + verifyViewAdded(ThermostatConstants.VIEW_ID_HOST_VM, leftFolder); + } + + @Test + public void testHostVMShortcutAdded() { + verifyShortcutAdded(ThermostatConstants.VIEW_ID_HOST_VM); + } + + @Test + public void testHostOverviewViewAdded() { + verifyViewAdded(ThermostatConstants.VIEW_ID_HOST_OVERVIEW, rightFolder); + } + + @Test + public void testHostOverviewShortcutAdded() { + verifyShortcutAdded(ThermostatConstants.VIEW_ID_HOST_OVERVIEW); + } + + @Test + public void testHostCPUViewAdded() { + verifyViewAdded(ThermostatConstants.VIEW_ID_HOST_CPU, rightFolder); + } + + @Test + public void testHostCPUShortcutAdded() { + verifyShortcutAdded(ThermostatConstants.VIEW_ID_HOST_CPU); + } + + @Test + public void testHostMemoryViewAdded() { + verifyViewAdded(ThermostatConstants.VIEW_ID_HOST_MEMORY, rightFolder); + } + + @Test + public void testHostMemoryShortcutAdded() { + verifyShortcutAdded(ThermostatConstants.VIEW_ID_HOST_MEMORY); + } + + @Test + public void testVMCPUViewAdded() { + verifyViewAdded(ThermostatConstants.VIEW_ID_VM_CPU, rightFolder); + } + + @Test + public void testVMCPUShortcutAdded() { + verifyShortcutAdded(ThermostatConstants.VIEW_ID_VM_CPU); + } + + @Test + public void testVMGCViewAdded() { + verifyViewAdded(ThermostatConstants.VIEW_ID_VM_GC, rightFolder); + } + + @Test + public void testVMGCShortcutAdded() { + verifyShortcutAdded(ThermostatConstants.VIEW_ID_VM_GC); + } + + private void verifyViewAdded(String viewID, IFolderLayout folder) { + verify(folder).addView(viewID); + } + + private void verifyShortcutAdded(String viewID) { + verify(layout).addShowViewShortcut(viewID); + } + +}
--- a/eclipse/com.redhat.thermostat.eclipse/META-INF/MANIFEST.MF Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse/META-INF/MANIFEST.MF Thu Oct 25 13:25:07 2012 -0400 @@ -10,16 +10,17 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.ui Import-Package: com.mongodb, + com.redhat.thermostat.client.core.views, com.redhat.thermostat.common, com.redhat.thermostat.common.appctx, com.redhat.thermostat.common.config, com.redhat.thermostat.common.dao, com.redhat.thermostat.common.model, com.redhat.thermostat.common.storage, + com.redhat.thermostat.common.utils, com.redhat.thermostat.launcher, - com.redhat.thermostat.common.utils, com.redhat.thermostat.web.client, com.redhat.thermostat.web.common -Export-Package: com.redhat.thermostat.eclipse;x-friends:=com.redhat.thermostat.eclipse.test, - com.redhat.thermostat.eclipse.model;x-friends:=com.redhat.thermostat.eclipse.test, - com.redhat.thermostat.eclipse.views;x-friends:=com.redhat.thermostat.eclipse.test +Export-Package: com.redhat.thermostat.eclipse;x-friends:="com.redhat.thermostat.eclipse.test,com.redhat.thermostat.eclipse.chart.common,com.redhat.thermostat.eclipse.test.ui", + com.redhat.thermostat.eclipse.model;x-friends:="com.redhat.thermostat.eclipse.test,com.redhat.thermostat.eclipse.chart.common,com.redhat.thermostat.eclipse.test.ui", + com.redhat.thermostat.eclipse.views;x-friends:="com.redhat.thermostat.eclipse.test,com.redhat.thermostat.eclipse.chart.common,com.redhat.thermostat.eclipse.test.ui"
--- a/eclipse/com.redhat.thermostat.eclipse/plugin.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse/plugin.xml Thu Oct 25 13:25:07 2012 -0400 @@ -59,4 +59,12 @@ restorable="true"> </view> </extension> + <extension + point="org.eclipse.ui.perspectives"> + <perspective + class="com.redhat.thermostat.eclipse.views.ThermostatPerspectiveFactory" + id="com.redhat.thermostat.eclipse.perspective" + name="Thermostat"> + </perspective> + </extension> </plugin>
--- a/eclipse/com.redhat.thermostat.eclipse/pom.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -17,7 +17,7 @@ <dependencies> <dependency> <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-core</artifactId> + <artifactId>thermostat-client-core</artifactId> <version>0.5.0-SNAPSHOT</version> </dependency> <!-- using Web storage -->
--- a/eclipse/com.redhat.thermostat.eclipse/src/com/redhat/thermostat/eclipse/Activator.java Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse/src/com/redhat/thermostat/eclipse/Activator.java Thu Oct 25 13:25:07 2012 -0400 @@ -43,6 +43,9 @@ import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; +import com.redhat.thermostat.common.ThreadPoolTimerFactory; +import com.redhat.thermostat.common.TimerFactory; +import com.redhat.thermostat.common.appctx.ApplicationContext; import com.redhat.thermostat.common.storage.ConnectionException; import com.redhat.thermostat.common.utils.OSGIUtils; import com.redhat.thermostat.launcher.DbService; @@ -74,6 +77,10 @@ public void start(BundleContext context) throws Exception { super.start(context); plugin = this; + + // Register a TimerFactory + TimerFactory timerFactory = new ThreadPoolTimerFactory(1); + ApplicationContext.getInstance().setTimerFactory(timerFactory); } /*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse/src/com/redhat/thermostat/eclipse/ThermostatConstants.java Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,52 @@ +/* + * 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. + */ + +package com.redhat.thermostat.eclipse; + +public interface ThermostatConstants { + + public static final String PERSPECTIVE_ID = "com.redhat.thermostat.eclipse.perspective"; + + public static final String VIEW_ID_HOST_VM = "com.redhat.thermostat.eclipse.vmtree"; + public static final String VIEW_ID_HOST_OVERVIEW = "com.redhat.thermostat.eclipse.mainContainer"; + public static final String VIEW_ID_HOST_CPU = "com.redhat.thermostat.eclipse.chart.hostCpuView"; + public static final String VIEW_ID_HOST_MEMORY = "com.redhat.thermostat.eclipse.chart.hostMemoryView"; + public static final String VIEW_ID_VM_CPU = "com.redhat.thermostat.eclipse.chart.vmCpuView"; + public static final String VIEW_ID_VM_GC = "com.redhat.thermostat.eclipse.chart.vmGcView"; + + public static final String TEST_TAG = "com.redhat.thermostat.eclipse.test.swtTag"; + +}
--- a/eclipse/com.redhat.thermostat.eclipse/src/com/redhat/thermostat/eclipse/views/HostOverviewViewPart.java Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/com.redhat.thermostat.eclipse/src/com/redhat/thermostat/eclipse/views/HostOverviewViewPart.java Thu Oct 25 13:25:07 2012 -0400 @@ -54,6 +54,7 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.ISelectionListener; +import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.PageBook; @@ -68,6 +69,7 @@ import com.redhat.thermostat.common.model.NetworkInterfaceInfo; import com.redhat.thermostat.common.utils.OSGIUtils; import com.redhat.thermostat.eclipse.Activator; +import com.redhat.thermostat.eclipse.ThermostatConstants; public class HostOverviewViewPart extends ViewPart { @@ -250,23 +252,28 @@ // Listen for VMtree changes getSite().getWorkbenchWindow().getSelectionService() - .addSelectionListener(listener); + .addSelectionListener(listener); if (Activator.getDefault().isDbConnected()) { - ISelection selection = getSite().getWorkbenchWindow() - .getSelectionService().getSelection(); - Ref ref = getRefFromSelection(selection); - if (ref != null) { - updateText(ref); - if (ref instanceof HostRef) { - showPage(mainScrollPage); - } else { - showPage(vmPage); - } - } else { - // FIXME: probably want to show something else, e.g. select x in - // VM tree - showPage(notConnectedPage); - } + // Explicitly get the selected element from the VmsTreeViewPart + IViewPart part = getSite().getWorkbenchWindow().getActivePage().findView(ThermostatConstants.VIEW_ID_HOST_VM); + if (part != null && part instanceof HostsVmsTreeViewPart) { + ISelection selection = part.getSite().getSelectionProvider().getSelection(); + Ref ref = getRefFromSelection(selection); + if (ref != null) { + updateText(ref); + if (ref instanceof HostRef) { + showPage(mainScrollPage); + } else { + showPage(vmPage); + } + } else { + // FIXME: probably want to show something else, e.g. select x in + // VM tree + showPage(notConnectedPage); + } + } else { + showPage(notConnectedPage); + } } else { showPage(notConnectedPage); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse/src/com/redhat/thermostat/eclipse/views/SWTComponent.java Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,47 @@ +/* + * 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. + */ + +package com.redhat.thermostat.eclipse.views; + +import org.eclipse.swt.widgets.Composite; + +import com.redhat.thermostat.client.core.views.UIComponent; + +public interface SWTComponent extends UIComponent { + + public void createControl(Composite parent); + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/com.redhat.thermostat.eclipse/src/com/redhat/thermostat/eclipse/views/ThermostatPerspectiveFactory.java Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,79 @@ +/* + * 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. + */ + +package com.redhat.thermostat.eclipse.views; + +import org.eclipse.ui.IFolderLayout; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IPerspectiveFactory; + +import com.redhat.thermostat.eclipse.ThermostatConstants; + +public class ThermostatPerspectiveFactory implements IPerspectiveFactory { + + public static final String FOLDER_LEFT = "left"; + public static final String FOLDER_RIGHT = "right"; + + @Override + public void createInitialLayout(IPageLayout layout) { + defineActions(layout); + defineLayout(layout); + } + + private void defineLayout(IPageLayout layout) { + IFolderLayout left = layout.createFolder(FOLDER_LEFT, IPageLayout.LEFT, 0.25f, layout.getEditorArea()); + left.addView(ThermostatConstants.VIEW_ID_HOST_VM); + + IFolderLayout right = layout.createFolder(FOLDER_RIGHT, IPageLayout.RIGHT, 0.5f, layout.getEditorArea()); + right.addView(ThermostatConstants.VIEW_ID_HOST_OVERVIEW); + right.addView(ThermostatConstants.VIEW_ID_HOST_CPU); + right.addView(ThermostatConstants.VIEW_ID_HOST_MEMORY); + right.addView(ThermostatConstants.VIEW_ID_VM_CPU); + right.addView(ThermostatConstants.VIEW_ID_VM_GC); + + layout.setEditorAreaVisible(false); + } + + private void defineActions(IPageLayout layout) { + layout.addShowViewShortcut(ThermostatConstants.VIEW_ID_HOST_VM); + layout.addShowViewShortcut(ThermostatConstants.VIEW_ID_HOST_OVERVIEW); + layout.addShowViewShortcut(ThermostatConstants.VIEW_ID_HOST_CPU); + layout.addShowViewShortcut(ThermostatConstants.VIEW_ID_HOST_MEMORY); + layout.addShowViewShortcut(ThermostatConstants.VIEW_ID_VM_CPU); + layout.addShowViewShortcut(ThermostatConstants.VIEW_ID_VM_GC); + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclipse/core-p2-repository/category.xml Thu Oct 25 13:25:07 2012 -0400 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site> + <feature url="features/com.redhat.thermostat.client.feature_0.5.0.qualifier.jar" id="com.redhat.thermostat.client.feature" version="0.5.0.qualifier"> + <category name="thermostat-client"/> + </feature> + <category-def name="thermostat-client" label="Thermostat Client"/> +</site>
--- a/eclipse/core-p2-repository/pom.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/core-p2-repository/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -1,41 +1,4 @@ <?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> @@ -48,197 +11,28 @@ <artifactId>com.redhat.thermostat.eclipse.core-p2-repo</artifactId> <version>0.5.0-SNAPSHOT</version> - <name>Thermostat Core Bundles p2 Repository</name> + <name>Thermostat Client p2 Repository</name> + + <dependencies> + <dependency> + <groupId>com.redhat.thermostat.eclipse.parent</groupId> + <artifactId>com.redhat.thermostat.client.feature</artifactId> + <version>0.5.0-SNAPSHOT</version> + </dependency> + </dependencies> <build> <plugins> - <!-- Configuration for the PublishFeaturesAndBundlesMojoTest --> <plugin> - <groupId>org.eclipse.tycho.extras</groupId> - <artifactId>tycho-p2-extras-plugin</artifactId> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-publisher-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> + <publishArtifacts>true</publishArtifacts> </configuration> </plugin> - <plugin> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>copy-bundles-for-publishing</id> - <phase>process-resources</phase> - <goals> - <goal>copy-dependencies</goal> - </goals> - <configuration> - <excludeTransitive>false</excludeTransitive> - <includeGroupIds>com.redhat.thermostat</includeGroupIds> - <outputDirectory>${project.basedir}/target/source/plugins</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> </plugins> </build> - <packaging>pom</packaging> - - <dependencies> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-main</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-bundles</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-tools</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-launcher</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-client-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-client-command</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-client-vmclassstat-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-osgi-memory-stats-panel-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-osgi-living-vm-filter-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-cli</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-command</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-agent-heapdumper</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-killvm-agent</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-killvm-client-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-common-command</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-osgi-process-handler</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-client-heapdumper-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-laf</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-keyring</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-web-client</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-web-server</artifactId> - <version>${project.version}</version> - </dependency> - - <!-- thread plugin --> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-thread-client-common</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-thread-client-controllers</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-thread-client-swing</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-thread-collector</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-thread-harvester</artifactId> - <version>${project.version}</version> - </dependency> - - <dependency> - <groupId>com.redhat.thermostat</groupId> - <artifactId>thermostat-system-backend</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> + <packaging>eclipse-repository</packaging> </project>
--- a/eclipse/pom.xml Thu Oct 25 12:48:30 2012 -0400 +++ b/eclipse/pom.xml Thu Oct 25 13:25:07 2012 -0400 @@ -91,15 +91,20 @@ <modules> <module>com.redhat.thermostat.eclipse.boot</module> <module>com.redhat.thermostat.eclipse</module> + <module>com.redhat.thermostat.eclipse.chart.common</module> <module>com.redhat.thermostat.eclipse.test</module> + <module>com.redhat.thermostat.eclipse.test.ui</module> <module>com.redhat.thermostat.eclipse.feature</module> <module>com.redhat.thermostat.eclipse.p2-repo</module> + <module>com.redhat.thermostat.client.feature</module> <module>core-p2-repository</module> <module>test-deps-bundle-wrapping</module> + <module>jfreechart-bundle-wrapping</module> <!-- Adds p2 metadata and creates repo for plain (wrapped) Java OSGi bundles so they can be found for building and running tycho tests --> <module>test-deps-p2-repository</module> + <module>jfreechart-p2-repository</module> <module>composite-repo</module> </modules> @@ -120,6 +125,11 @@ <url>file://${basedir}/../test-deps-p2-repository/target/repository/</url> </repository> <repository> + <id>local_jfreechart</id> + <layout>p2</layout> + <url>file://${basedir}/../jfreechart-p2-repository/target/repository/</url> + </repository> + <repository> <id>maven.eclipse.org</id> <url>http://maven.eclipse.org/nexus/content/groups/public/</url> </repository>