Mercurial > hg > release > thermostat-0.7
view thread/distribution/plugin.xml @ 1007:53ce942c35c1
Convert plugins to use plugin installation mechanism
This commit converts the existing Thermostat plugins (Host CPU, Thread,
NUMA, etc.) to be installed using the plugin installation mechanism.
Each plugin now has a distribution module that creates a zip artifact
with the necessary jars and plugin.xml using maven-assembly-plugin.
The assembly descriptor is put in a shared place for all plugins under
a new top-level assembly module. The main distribution module now has
a dependency on each plugin's zip artifact. At build time, the
distribution module invokes maven-assembly-plugin again to unpack all
plugins' distribution zips under target/plugins. The reason for using
zips is that it seemed to be the only way for maven-assembly-plugin to
create the desired layout under target/plugins, although other archive
formats should work just as well.
I have similarly changed distribution to use maven-assembly-plugin to
place core jars under target/libs. The one difference here is that
expectj.jar and tools.jar are no longer included. This seems to be since
expectj is only used for testing and tools.jar is always provided by the
system. So this change should be beneficial in that regard, along with
reducing the amount of plugins we use and thus simplifying our build.
I have also modified the plugin.xml parser to ignore comments, as the
copyright headers were breaking it. As far as building goes, mvn clean
package still builds the core and all plugins.
Reviewed-by: jerboaa, omajid, vanaltj
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-February/005580.html
author | Elliott Baron <ebaron@redhat.com> |
---|---|
date | Tue, 26 Feb 2013 15:31:32 -0500 |
parents | |
children |
line wrap: on
line source
<?xml version="1.0"?> <!-- Copyright 2012, 2013 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. --> <plugin> <commands> <command type="extends"> <name>gui</name> <bundles> <bundle>thermostat-thread-collector-${project.version}.jar</bundle> <bundle>thermostat-thread-client-swing-${project.version}.jar</bundle> <bundle>thermostat-thread-client-controllers-${project.version}.jar</bundle> <bundle>thermostat-thread-client-common-${project.version}.jar</bundle> </bundles> </command> <command type="extends"> <name>agent</name> <bundles> <bundle>thermostat-thread-collector-${project.version}.jar</bundle> <bundle>thermostat-thread-harvester-${project.version}.jar</bundle> </bundles> </command> <!-- Requires all storage entity classes to be loaded --> <command type="extends"> <name>webservice</name> <bundles> <bundle>thermostat-thread-collector-${project.version}.jar</bundle> </bundles> </command> </commands> </plugin>