blob: c7f53fcec56ea711df042d9df7621f42f8281254 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<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>
<groupId>org.apache.brooklyn</groupId>
<artifactId>brooklyn-server</artifactId>
<version>1.2.0-SNAPSHOT</version> <!-- BROOKLYN_VERSION -->
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>brooklyn-parent</artifactId>
<packaging>pom</packaging>
<name>Brooklyn Parent Project</name>
<description>
Brooklyn parent project, serving as the ancestor POM for all Apache Brooklyn modules
</description>
<!-- useful custom properties/defines to specify to control the build:
brooklyn.explicitModules :: only builds explicit modules (instead of default modules)
brooklyn.deployTo={apache} ::
:: required when deploying; specify the deployment target
javadoc :: build javadoc (adds a minute or two; enabled automatically for target deploy)
skipSources :: don't make the -sources.jar (saves a second or two, not much)
skipTests :: does the usual thing (saves a lot of time, but at some cost of build quality!)
simply activate with -Dbrooklyn.theCustomProperty on the mvn build line
(some of these are used to trigger profile selection, since maven activeByDefault
only works if _no_ profiles are triggered, see suggestion/background at:
http://stackoverflow.com/questions/5309379/how-to-keep-maven-profiles-which-are-activebydefault-active-even-if-another-prof )
-->
<build>
<testSourceDirectory>src/test/java</testSourceDirectory>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
</plugin>
<plugin>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.4</version>
<configuration>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6.1</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<!-- <release>8</release> only available with more recent JVMs -->
</configuration>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.eclipse.jdt.groovy.core.groovyNature</projectnature>
</additionalProjectnatures>
</configuration>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<!-- version 2.4+ seems to break eclipse integration as per https://github.com/tesla/m2eclipse-extras/issues/10
but cannot find issue on GitHub any more - 404 error -->
<!-- if this version is changed, update the MavenArtifactTest -->
<version>2.6</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<configuration>
<!-- disabling use because of NPE deploying to sonatype:
http://stackoverflow.com/questions/888199/why-does-maven-install-fail-during-javadoc-generation
http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=ac084ab7f47c4e7f1df2117cecd?bug_id=5101868
-->
<use>false</use>
<links>
<link>http://download.oracle.com/javaee/6/api</link>
</links>
<keywords>true</keywords>
<author>false</author>
<quiet>true</quiet>
<aggregate>false</aggregate>
<failOnError>false</failOnError>
<detectLinks />
<tags>
<tag>
<name>todo</name>
<placement>a</placement>
<head>To-do:</head>
</tag>
</tags>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>with-dependencies</shadedClassifierName>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.4</version>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<argLine>-Xms768m -Xmx768m -verbose:gc -XX:SoftRefLRUPolicyMSPerMB=1 -Dfile.encoding=${project.build.sourceEncoding}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>${cobertura.plugin.version}</version>
</plugin>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.4.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.3</version>
<configuration>
<!-- where git submodules are built take the SHA-1 from the submodule as the build number -->
<getRevisionOnlyOnce>false</getRevisionOnlyOnce>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.12</version>
</plugin>
<!-- This is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.8,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<versionRange>[2.4.1,)</versionRange>
<goals>
<goal>single</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<versionRange>[1.7,)</versionRange>
<goals>
<goal>attach-artifact</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.3.1,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<versionRange>[1.5,)</versionRange>
<goals>
<goal>process</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.8,)</versionRange>
<goals>
<goal>unpack</goal>
<goal>copy</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.github.skwakman.nodejs-maven-plugin</groupId>
<artifactId>nodejs-maven-plugin</artifactId>
<versionRange>[1.0.3,)</versionRange>
<goals>
<goal>extract</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<versionRange>[2.4,)</versionRange>
<goals>
<goal>exploded</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<versionRange>[2.13,)</versionRange>
<goals>
<goal>check</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<!-- This is suggested if Eclipse runs too many incremental maven plugins, but it also seems to cause NPE's in maven build.
<pluginExecution>
<action>
<execute>
<runOnIncremental>false</runOnIncremental>
</execute>
</action>
</pluginExecution>
-->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<versionRange>[2.3.4,)</versionRange>
<goals>
<goal>manifest</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>.</directory>
<includes>
<include>brooklyn*.log</include>
<include>brooklyn*.log.*</include>
<include>stacktrace.log</include>
<include>test-output</include>
<include>prodDb.*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>verify-style</id>
<phase>process-classes</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<logViolationsToConsole>true</logViolationsToConsole>
<checkstyleRules>
<module name="Checker">
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="FileTabCharacter">
<property name="eachLine" value="true" />
</module>
<module name="TreeWalker">
<module name="IllegalImport">
<property name="illegalPkgs" value="com.google.api.client,org.python.google"/>
</module>
</module>
</module>
</checkstyleRules>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce</id>
<phase>none</phase>
</execution>
<execution>
<id>brooklyn-build-req</id>
<goals>
<goal>enforce</goal>
</goals>
<inherited>true</inherited>
<configuration>
<rules>
<requireJavaVersion>
<version>${java.version}.0</version>
</requireJavaVersion>
<requireMavenVersion>
<version>[3.0.0,)</version>
</requireMavenVersion>
<dependencyConvergence/>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!-- workaround for src/main/resources excluding all in eclipse, as per
https://issues.sonatype.org/browse/MNGECLIPSE-864
-->
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<executions>
<execution>
<id>fix-eclipse-dot-classpath-mangling</id>
<phase>clean</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<ignoreMissingFile>true</ignoreMissingFile>
<file>.classpath</file>
<regex>false</regex>
<replacements>
<replacement>
<xpath>/classpath/classpathentry[@path='src/main/resources' and @kind='src' and @excluding='**']/@excluding</xpath>
<token>**</token>
<value />
</replacement>
<replacement>
<xpath>/classpath/classpathentry[@path='src/test/resources' and @kind='src' and @excluding='**']/@excluding</xpath>
<token>**</token>
<value />
</replacement>
</replacements>
</configuration>
</execution>
</executions>
</plugin>
<!-- Needed for command-line access, e.g mvn apache-rat:rat and mvn apache-rat:check -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<consoleOutput>true</consoleOutput>
<!--
If you wish to override this list in the component (child) pom, ensure you use
<excludes combine.children="merge">
so that the child pom entries replace the parent entries
-->
<basedir>${project.basedir}</basedir>
<excludes combine.children="append">
<!-- Exclude sandbox because not part of distribution: not in tgz, and not uploaded to maven-central -->
<exclude>sandbox/**</exclude>
<!-- Exclude release because not part of distribution: not in tgz, and not uploaded to maven-central -->
<exclude>release/**</exclude>
<exclude>README.md</exclude>
<!-- git and IDE project files -->
<!-- see https://issues.apache.org/jira/browse/RAT-107 -->
<exclude>**/.git/**</exclude>
<exclude>**/.gitignore</exclude>
<exclude>**/.repository/**</exclude>
<exclude>**/.idea/**</exclude>
<exclude>**/*.iml</exclude>
<exclude>**/.classpath/**</exclude>
<exclude>**/.project</exclude>
<exclude>**/.settings/**</exclude>
<exclude>**/*.log</exclude>
<exclude>**/brooklyn*.log.*</exclude>
<exclude>**/target/**</exclude>
<!-- Exclude netbeans config files (not part of the project, but often on users' drives -->
<exclude>**/nbactions.xml</exclude>
<exclude>**/nb-configuration.xml</exclude>
<!-- files not requiring licence -->
<exclude>ignored/**</exclude>
<exclude>LICENSE.md</exclude>
<exclude>DEPENDENCIES</exclude>
<exclude>.mvn/jvm.config</exclude>
<exclude>**/src/main/license/**</exclude>
<exclude>**/src/test/license/**</exclude>
<exclude>**/MANIFEST.MF</exclude>
<exclude>**/META-INF/services/**</exclude>
<exclude>**/test-output/**</exclude>
<exclude>**/*.pem.pub</exclude>
<exclude>**/*.pem</exclude>
<exclude>**/*_rsa.pub</exclude>
<exclude>**/*_rsa</exclude>
<exclude>**/*.svg</exclude>
<exclude>**/*.crt</exclude>
<exclude>**/*.csr</exclude>
<exclude>**/*.key</exclude>
<exclude>**/*.key.org</exclude>
<exclude>**/*.psd</exclude>
<exclude>**/*.json</exclude>
<exclude>**/*.plxarc</exclude>
<exclude>**/src/test/resources/org/apache/brooklyn/entity/software/base/template_with_extra_substitutions.txt</exclude>
<exclude>**/src/main/resources/banner.txt</exclude>
<exclude>**/src/test/resources/ssl/certs/localhost/info.txt</exclude>
<exclude>**/src/main/history/dependencies.xml</exclude>
<exclude>**/sandbox/examples/src/main/scripts/amis.txt</exclude>
<!-- see notes in https://issues.apache.org/jira/browse/BROOKLYN-18 -->
<!--
docs are not part of the distribution: they are just used to populate
https://brooklyn.incubator.apache.org
-->
<exclude>docs/**</exclude>
<!-- maven cache -->
<exclude>**/.m2/**</exclude>
<!-- brooklyn persisted state, created by tests -->
<exclude>**/.brooklyn/**</exclude>
</excludes>
</configuration>
</plugin>
<!-- Add off-the-schelf LICENSE and NOTICE to each jar. Where off-the-shelf isn't suitable
- for submodules, they can disable this processing and intergrate their own files. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<resourceBundles>
<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
</resourceBundles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>1.0</version>
</extension>
<extension>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
<version>2.2</version>
</extension>
</extensions>
</build>
<profiles>
<!-- profile>
<id>Essentials</id>
<activation> <property><name> !brooklyn.explicitModules </name></property> </activation>
<modules>
<module>utils/test-support</module>
<module>utils/common</module>
<module>utils/groovy</module>
<module>api</module>
<module>usage/test-support</module>
<module>camp</module>
<module>core</module>
<module>policy</module>
<module>storage/hazelcast</module>
</modules>
</profile -->
<!-- profile>
<id>Locations</id>
<activation> <property><name> !brooklyn.explicitModules </name></property> </activation>
<modules>
<module>locations/jclouds</module>
</modules>
</profile -->
<!-- profile>
<id>Entities</id>
<activation> <property><name> !brooklyn.explicitModules </name></property> </activation>
<modules>
<module>utils/jmx/jmxmp-ssl-agent</module>
<module>utils/jmx/jmxrmi-agent</module>
<module>software/base</module>
<module>software/network</module>
<module>software/osgi</module>
<module>software/webapp</module>
<module>software/messaging</module>
<module>software/nosql</module>
<module>software/database</module>
<module>software/monitoring</module>
</modules>
</profile -->
<!-- profile>
<id>Usage</id>
<activation> <property><name> !brooklyn.explicitModules </name></property> </activation>
<modules>
<module>usage/logback-includes</module>
<module>usage/logback-xml</module>
<module>utils/rest-swagger</module>
<module>usage/camp</module>
<module>usage/rest-api</module>
<module>usage/rest-server</module>
<module>usage/rest-client</module>
<module>usage/jsgui</module>
<module>usage/launcher</module>
<module>usage/cli</module>
<module>usage/all</module>
<module>usage/dist</module>
<module>usage/downstream-parent</module>
<module>usage/archetypes/quickstart</module>
</modules>
</profile -->
<!-- profile>
<id>Examples</id>
<activation> <property><name> !brooklyn.explicitModules </name></property> </activation>
<modules>
<module>examples</module>
</modules>
</profile -->
<!-- profile>
<id>QA</id>
<activation> <property><name> !brooklyn.explicitModules </name></property> </activation>
<modules>
<module>usage/qa</module>
</modules>
</profile -->
<!-- profile>
<id>Sandbox</id>
<modules>
<module>sandbox/extra</module>
<module>sandbox/database</module>
<module>sandbox/web-acceptance</module>
<module>sandbox/nosql</module>
<module>sandbox/monitoring</module>
<module>sandbox/examples/simple-open-loop-policy</module>
<module>sandbox/cassandra-multicloud-snitch</module>
<module>sandbox/mobile-app</module>
</modules>
</profile -->
<profile>
<id>Documentation</id>
<reporting>
<excludeDefaults>true</excludeDefaults>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>modules</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8</version>
<configuration>
<links>
<link>http://download.oracle.com/javaee/6/api</link>
</links>
<keywords>true</keywords>
<author>false</author>
<quiet>true</quiet>
<aggregate>false</aggregate>
<detectLinks />
<tags>
<tag>
<name>todo</name>
<placement>a</placement>
<head>To-do:</head>
</tag>
</tags>
</configuration>
<reportSets>
<reportSet>
<id>javadoc</id>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</profile>
<profile>
<id>Bundle</id>
<activation>
<file>
<!-- NB - this is all the leaf projects, including logback-* (with no src);
the archetype project neatly ignores this however -->
<exists>${basedir}/src</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<!-- configure plugin to generate MANIFEST.MF
adapted from http://blog.knowhowlab.org/2010/06/osgi-tutorial-from-project-structure-to.html -->
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<supportedProjectTypes>
<supportedProjectType>jar</supportedProjectType>
<supportedProjectType>bundle</supportedProjectType>
</supportedProjectTypes>
<instructions>
<!-- OSGi specific instruction -->
<!--
By default packages containing impl and internal
are not included in the export list. Setting an
explicit wildcard will include all packages
regardless of name.
In time we should minimize our export lists to
what is really needed.
-->
<Export-Package>
brooklyn.*,
org.apache.brooklyn.*
</Export-Package>
<!-- By default import automatically, but constrain some versions which confuse karaf at runtime -->
<Implementation-SHA-1>${buildNumber}</Implementation-SHA-1>
<Implementation-Branch>${scmBranch}</Implementation-Branch>
<Brooklyn-Catalog-Force-Remove-Bundles>*</Brooklyn-Catalog-Force-Remove-Bundles>
<Brooklyn-Catalog-Upgrade-For-Bundles>*</Brooklyn-Catalog-Upgrade-For-Bundles>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifestFile> ${project.build.outputDirectory}/META-INF/MANIFEST.MF </manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>Tests</id>
<activation>
<file> <exists>${basedir}/src/test</exists> </file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
<properties>
<property>
<name>listener</name>
<value>org.apache.brooklyn.test.support.LoggingVerboseReporter,org.apache.brooklyn.test.support.BrooklynLeakListener,org.apache.brooklyn.test.support.PlatformTestSelectorListener</value>
</property>
</properties>
<enableAssertions>true</enableAssertions>
<groups>${includedTestGroups}</groups>
<excludedGroups>${excludedTestGroups}</excludedGroups>
<testFailureIgnore>false</testFailureIgnore>
<systemPropertyVariables>
<verbose>-1</verbose>
<net.sourceforge.cobertura.datafile>${project.build.directory}/cobertura/cobertura.ser</net.sourceforge.cobertura.datafile>
<cobertura.user.java.nio>false</cobertura.user.java.nio>
</systemPropertyVariables>
<printSummary>true</printSummary>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>test-jar-creation</id>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<forceCreation>true</forceCreation>
<archive combine.self="override" />
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>Integration</id>
<properties>
<includedTestGroups>Integration</includedTestGroups>
<excludedTestGroups>Acceptance,Live,WIP,Broken</excludedTestGroups>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>run-tests</id>
<goals>
<goal>run</goal>
</goals>
<phase>integration-test</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>Acceptance</id>
<properties>
<includedTestGroups>Acceptance</includedTestGroups>
<excludedTestGroups>Integration,Live,WIP,Broken</excludedTestGroups>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>run-tests</id>
<goals>
<goal>run</goal>
</goals>
<phase>integration-test</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>Live</id>
<properties>
<includedTestGroups>Live</includedTestGroups>
<excludedTestGroups>Acceptance,WIP,Broken</excludedTestGroups>
</properties>
</profile>
<profile>
<id>Live-sanity</id>
<properties>
<includedTestGroups>Live-sanity</includedTestGroups>
<excludedTestGroups>Acceptance,WIP,Broken</excludedTestGroups>
</properties>
</profile>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<configuration>
<xmlOutput>true</xmlOutput>
<xmlOutputDirectory>target/site</xmlOutputDirectory>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>findbugs</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.5</version>
<inherited>true</inherited>
<configuration>
<failOnViolation>false</failOnViolation>
<linkXref>true</linkXref>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<minimumTokens>100</minimumTokens>
<targetJdk>${java.version}</targetJdk>
<excludes>
<exclude>**/*Test.java</exclude>
<exclude>**/tests/**/*.java</exclude>
<!-- add any more generated source code directories here -->
</excludes>
<excludeRoots>
<excludeRoot>
${pom.basedir}/target/generated-sources/groovy-stubs/main
</excludeRoot>
</excludeRoots>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>Coverage</id>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>${cobertura.plugin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>run-tests</id>
</execution>
<execution>
<id>instrument classes</id>
<goals>
<goal>run</goal>
</goals>
<phase>process-test-classes</phase>
<configuration>
<target>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath" />
<taskdef resource="tasks.properties" classpathref="maven.plugin.classpath" />
<if>
<available property="gogocobertura" file="target/test-classes" />
<then>
<echo message="INSTRUMENTING CLASSES FOR COBERTURA" />
<!-- Ensure any and all bits of our project are copied in first -->
<copy todir="target/cobertura/coverage-classes">
<fileset erroronmissingdir="false" dir="target/classes" />
</copy>
<cobertura-instrument datafile="target/cobertura/cobertura.ser" todir="target/test-classes">
<fileset erroronmissingdir="false" dir="target/classes">
<include name="brooklyn/**/*.class" />
<exclude name="brooklyn/**/*Test.class" />
</fileset>
<fileset erroronmissingdir="false" dir="target/cobertura/dependency-classes">
<include name="brooklyn/**/*.class" />
<exclude name="brooklyn/**/*Test.class" />
</fileset>
</cobertura-instrument>
</then>
</if>
</target>
</configuration>
</execution>
<execution>
<id>coverage report</id>
<goals>
<goal>run</goal>
</goals>
<phase>post-integration-test</phase>
<configuration>
<target>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath" />
<taskdef resource="tasks.properties" classpathref="maven.plugin.classpath" />
<if>
<available property="gogocobertura" file="target/cobertura/cobertura.ser" />
<then>
<echo message="GENERATING COBERTURA COVERAGE REPORT" />
<cobertura-report format="xml" destdir="target/site/cobertura" datafile="target/cobertura/cobertura.ser">
<fileset erroronmissingdir="false" dir="src/main/java" />
<fileset erroronmissingdir="false" dir="target/cobertura/dependency-sources" />
</cobertura-report>
<cobertura-report format="html" destdir="target/site/cobertura" datafile="target/cobertura/cobertura.ser">
<fileset erroronmissingdir="false" dir="src/main/java" />
<fileset erroronmissingdir="false" dir="target/cobertura/dependency-sources" />
</cobertura-report>
</then>
</if>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
<version>${ant.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${ant.version}</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>${cobertura.plugin.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-coverage-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<classifier>sources</classifier>
<includeScope>compile</includeScope>
<includeGroupIds>brooklyn</includeGroupIds>
<outputDirectory>
${project.build.directory}/cobertura/dependency-sources
</outputDirectory>
<failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
</configuration>
</execution>
<execution>
<id>unpack-coverage-classes</id>
<phase>compile</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<type>jar</type>
<includeScope>compile</includeScope>
<includeGroupIds>brooklyn</includeGroupIds>
<outputDirectory>
${project.build.directory}/cobertura/dependency-classes
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<inherited>true</inherited>
<configuration>
<reportFormat>xml</reportFormat>
<classesDirectory>${project.build.directory}/cobertura/coverage-classes</classesDirectory>
<systemProperties>
<property>
<name>net.sourceforge.cobertura.datafile</name>
<value>${project.build.directory}/cobertura/cobertura.ser
</value>
</property>
<property>
<name>cobertura.user.java.nio</name>
<value>false</value>
</property>
</systemProperties>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>test-jar-creation</id>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- build sources jars by default, it's quick -->
<profile>
<id>make-sources-jar</id>
<activation> <property><name>!skipSources</name></property> </activation>
<build><plugins><plugin>
<artifactId>maven-source-plugin</artifactId>
</plugin></plugins></build>
</profile>
<!-- only build javadoc if asked, or if deploying (it's slow) -->
<profile>
<id>make-javadoc-jar</id>
<activation> <property><name>javadoc</name></property> </activation>
<build><plugins><plugin>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin></plugins></build>
</profile>
<!-- sign and make javadoc when deploying; note, this means you'll need gpg set up to deploy -->
<profile>
<id>make-more-things-when-deploying</id>
<activation> <property><name>brooklyn.deployTo</name></property> </activation>
<build><plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
</plugin>
</plugins></build>
</profile>
<profile>
<id>apache-repo</id>
<activation> <property><name>brooklyn.deployTo</name><value>apache</value></property> </activation>
<!-- distributionManagement configured by the parent Apache POM -->
</profile>
<profile>
<id>eclipse-compiler</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerId>eclipse</compilerId>
<optimize>true</optimize>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>skipBrooklynDeploy</id>
<!-- allow downstream projects that compile brooklyn to specify not to attempt to deploy it to apache's maven repo -->
<build>
<plugins>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>