Skip to content

Content of file superpom-2.16.pom


<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>it.tidalwave.thesefoolishthings</groupId>
    <artifactId>superpom</artifactId>
    <packaging>pom</packaging>
    <version>2.16</version>
    <name>TheseFoolishThings - SuperPOM</name>
    <url>${tft.project.url}</url>
    <description>${tft.project.description}</description>
    <inceptionYear>2010</inceptionYear>

    <organization>
        <name>Tidalwave s.a.s. (http://tidalwave.it)</name>
        <url>http://tidalwave.it</url>
    </organization>

    <developers>
        <developer>
            <name>Fabrizio Giudici</name>
            <email>fabrizio.giudici@tidalwave.it</email>
            <url>http://fabriziogiudici.it</url>
            <organization>Tidalwave s.a.s.</organization>
            <organizationUrl>http://tidalwave.it</organizationUrl>
            <roles>
                <role>manager</role>
                <role>developer</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
    </developers>

    <licenses>
        <license>
            <name>Apache-2.0</name>
            <url>http://www.opensource.org/licenses/apache2.0.php</url>
            <comments>Apache License 2.0</comments>
        </license>
    </licenses>

    <properties>
        <tft.project.url>http://thesefoolishthings.kenai.com</tft.project.url>
        <tft.project.description>TheseFoolishThings Super POM</tft.project.description>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <bundle.namespace>${project.groupId}.${project.artifactId}</bundle.namespace>
        <staging.mvn.repo.url>file://${project.build.directory}/target-maven-repo</staging.mvn.repo.url>

        <netbeans.checkstyle.format>true</netbeans.checkstyle.format>

        <!-- Deprecated properties replaced by tft.* ones -->
        <testFailureIgnore>false</testFailureIgnore> <!-- backward compatibility, to be dropped -->
        <stableAPI>false</stableAPI>
        <stableAPIVersion>(,${project.version})</stableAPIVersion>
        <disableJavaDocs>false</disableJavaDocs>
        <disableDeploy>false</disableDeploy>
        <skipTests>false</skipTests>
        <scm.repo.effective.url>${scm.repo.url}</scm.repo.effective.url>
        <release.profiles>release</release.profiles>

        <tft.defaultGoal>clean install</tft.defaultGoal>
        <tft.profile.metrics.defaultGoal>install findbugs:findbugs pmd:cpd pmd:pmd checkstyle:checkstyle clirr:clirr javancss:report dependency:analyze</tft.profile.metrics.defaultGoal>
            
        <tft.descriptionStamp>.description</tft.descriptionStamp>
        <tft.license.name>tidalwave_asf2</tft.license.name>
        <tft.license.template>/it/tidalwave/license/tidalwave-header-description.ftl</tft.license.template>
        <tft.maven.requiredVersion>3.0.4</tft.maven.requiredVersion>
        <tft.maven.requiredJdk>[1.7.0,)</tft.maven.requiredJdk>
        <tft.superpom.config.version>1.2</tft.superpom.config.version>
        <tft.mainClass>please-set-the-tft.mainClass-property-to-specify-the-main-class</tft.mainClass>
        <tft.javac.source>1.7</tft.javac.source>
        <tft.javac.target>1.7</tft.javac.target>
        <tft.javac.xlint>-Xlint:all</tft.javac.xlint>
        <tft.javac.debug>true</tft.javac.debug>
        <tft.javac.optimize>true</tft.javac.optimize>
        <tft.javac.showDeprecation>true</tft.javac.showDeprecation>
        <tft.javac.showWarnings>true</tft.javac.showWarnings>
        <tft.javac.fork>true</tft.javac.fork>
        <tft.project.build.unwoven-classes.directory>${project.build.directory}/unwoven-classes</tft.project.build.unwoven-classes.directory>
        <tft.project.build.unwoven-test-classes.directory>${project.build.directory}/unwoven-test-classes</tft.project.build.unwoven-test-classes.directory>
        <tft.stableAPI>${stableAPI}</tft.stableAPI>
        <tft.stableAPIVersion>${stableAPIVersion}</tft.stableAPIVersion>
        <tft.disableJavaDocs>${disableJavaDocs}</tft.disableJavaDocs>
        <tft.disableDeploy>${disableDeploy}</tft.disableDeploy>
        <tft.javadoc.doclint />
        <tft.release.localCheckout>true</tft.release.localCheckout>
        <tft.release.preparationGoals>clean install verify</tft.release.preparationGoals>
        <tft.release.completionGoals />
        <tft.release.goals>clean install source:test-jar javadoc:javadoc assembly:assembly deploy</tft.release.goals>
        <tft.release.sign-artifacts.skip>false</tft.release.sign-artifacts.skip>

        <tft.appbundler.version>1.0-patched</tft.appbundler.version>
        <tft.capecanaveral.version>2.0-ALPHA-1</tft.capecanaveral.version>
        <tft.lombok.version>1.12.6</tft.lombok.version>
        <tft.testng.version>6.8.8</tft.testng.version>
        <tft.junit.version>4.7</tft.junit.version>
        <tft.mockito.version>1.9.5</tft.mockito.version>
        <tft.hamcrest-matchers.version>1.3</tft.hamcrest-matchers.version>
        <tft.test.skip>${skipTests}</tft.test.skip>
        <tft.test.maxMemory>768M</tft.test.maxMemory>
        <tft.test.reportsDirectory>${project.build.directory}/surefire-reports/plain</tft.test.reportsDirectory>
        <tft.test.failureIgnore>${testFailureIgnore}</tft.test.failureIgnore>
        <tft.test.vmOptions />

        <tft.embedded-jdk-groupId>it.tidalwave.jdk</tft.embedded-jdk-groupId>
        <tft.embedded-jdk-artifactId>it-tidalwave-openjdk7</tft.embedded-jdk-artifactId>
        <tft.embedded-jdk-name>openjdk1.7.0u7</tft.embedded-jdk-name>
        <tft.embedded-jdk-version>1.7.0_07-1</tft.embedded-jdk-version>
        <tft.embedded-jdk-classifier>macosx-intel</tft.embedded-jdk-classifier>

        <tft.netbeans.main>it.tidalwave.netbeans.boot.NetBeansLauncher</tft.netbeans.main>
        <tft.netbeans.useOSGiDependencies>false</tft.netbeans.useOSGiDependencies>

        <tft.aspectjrt.version>1.8.1</tft.aspectjrt.version>        
        <tft.aspectj.ajc.verbose>false</tft.aspectj.ajc.verbose>

        <tft.jetty.port>8080</tft.jetty.port>
        <tft.jetty.stopPort>9966</tft.jetty.stopPort>
        <tft.jetty.scanIntervalSeconds>4</tft.jetty.scanIntervalSeconds>
        <tft.jetty.stopKey>${project.groupId}:${project.artifactId}</tft.jetty.stopKey>

        <tft.gwt.version>2.1.1</tft.gwt.version>

        <tft.scm>hg</tft.scm>

        <!-- tft.test.listeners></tft.test.listeners -->
        <tft.javadoc.excludePackageNames>*.impl:*.impl.*</tft.javadoc.excludePackageNames>
        <tft.javadoc.doclet>org.umlgraph.doclet.UmlGraphDoc</tft.javadoc.doclet>
        <tft.clirr.skip>false</tft.clirr.skip>
        <tft.buildNumber.getRevisionOnlyOnce>false</tft.buildNumber.getRevisionOnlyOnce>
        <tft.UmlGraphDoc.version>5.1</tft.UmlGraphDoc.version> <!-- the latest available at the Maven Central Repo -->
        <tft.UmlGraphDoc.additionalParam>-views -attributes -operations -types -postfixpackage -nodefontpackagesize 6 -nodefontclasssize 8 -nodefontsize 7 -edgefontsize 7 -nodesep 0.05 -ranksep 0.1 -visibility -inferdep -inferrel -inferdepinpackage -hide java.*|javax.*</tft.UmlGraphDoc.additionalParam>

        <!--==== Plugin Versions ==================================================================================-->

        <tft.maven-android-plugin.version>4.0.0</tft.maven-android-plugin.version>
        <tft.maven-antrun-plugin.version>1.7</tft.maven-antrun-plugin.version>
        <tft.maven-archetype-plugin.version>2.2</tft.maven-archetype-plugin.version>
        <tft.maven-assembly-plugin.version>2.4</tft.maven-assembly-plugin.version>
        <tft.maven-bundle-plugin.version>2.0.1</tft.maven-bundle-plugin.version> <!-- TODO 2.3.7 -->
        <tft.maven-checkstyle-plugin.version>2.10</tft.maven-checkstyle-plugin.version>
        <tft.maven-clean-plugin.version>2.5</tft.maven-clean-plugin.version>
        <tft.maven-compiler-plugin.version>3.1</tft.maven-compiler-plugin.version>
        <tft.maven-dependency-plugin.version>2.8</tft.maven-dependency-plugin.version>
        <tft.maven-deploy-plugin.version>2.7</tft.maven-deploy-plugin.version>
        <tft.maven-doap-plugin.version>1.1</tft.maven-doap-plugin.version>
        <tft.maven-enforcer-plugin.version>1.3.1</tft.maven-enforcer-plugin.version>
        <tft.maven-gpg-plugin.version>1.4</tft.maven-gpg-plugin.version>
        <tft.maven-graph-plugin.version>1.15</tft.maven-graph-plugin.version>
        <tft.maven-install-plugin.version>2.4</tft.maven-install-plugin.version>
        <tft.maven-jar-plugin.version>2.4</tft.maven-jar-plugin.version>
        <tft.maven-jarsigner-plugin.version>1.2</tft.maven-jarsigner-plugin.version>
        <tft.maven-javadoc-plugin.version>2.9.1</tft.maven-javadoc-plugin.version>
        <tft.maven-jetty-plugin.version>6.1.24</tft.maven-jetty-plugin.version> <!-- FIXME: 7.0.0.pre5 breaks current projects -->
        <tft.maven-license-plugin.version>1.9.0</tft.maven-license-plugin.version>
        <tft.maven-pmd-plugin.version>3.0.1</tft.maven-pmd-plugin.version>
        <tft.maven-release-plugin.version>2.5.1</tft.maven-release-plugin.version>
        <tft.maven-replacer-plugin.version>1.3.9</tft.maven-replacer-plugin.version> <!-- TODO: 1.5.2 -->
        <tft.maven-resources-plugin.version>2.5</tft.maven-resources-plugin.version> <!-- TODO 2.6 -->
        <tft.maven-scm-plugin.version>1.9</tft.maven-scm-plugin.version>
        <tft.maven-shade-plugin.version>2.0</tft.maven-shade-plugin.version>
        <tft.maven-site-plugin.version>3.3</tft.maven-site-plugin.version>
        <tft.maven-source-plugin.version>2.2.1</tft.maven-source-plugin.version>
        <tft.maven-surefire-plugin.version>2.16</tft.maven-surefire-plugin.version>
        <tft.maven-war-plugin.version>2.3</tft.maven-war-plugin.version>

        <tft.aspectj-maven-plugin.version>1.7</tft.aspectj-maven-plugin.version>
        <tft.build-helper-maven-plugin.version>1.8</tft.build-helper-maven-plugin.version>
        <tft.buildnumber-maven-plugin.version>1.3</tft.buildnumber-maven-plugin.version>
        <tft.clirr-maven-plugin.version>2.6.1</tft.clirr-maven-plugin.version>
        <tft.cobertura-maven-plugin.version>2.5.1</tft.cobertura-maven-plugin.version> <!-- TODO 2.5.2 -->
        <tft.exec-maven-plugin.version>1.1.1</tft.exec-maven-plugin.version>  <!-- TODO 1.2.1, but version 1.2 breaks the generation of .description -->
        <tft.findbugs-maven-plugin.version>3.0.0</tft.findbugs-maven-plugin.version>
        <tft.gmaven-plugin.version>1.0</tft.gmaven-plugin.version> <!-- TODO 1.4 -->
        <tft.gwt-maven-plugin.version>2.1.0-1</tft.gwt-maven-plugin.version>
        <tft.jacoco-maven-plugin.version>0.7.2.201409121644</tft.jacoco-maven-plugin.version>
        <tft.javancss-maven-plugin.version>2.1</tft.javancss-maven-plugin.version>
        <tft.jaxb2-maven-plugin.version>1.3</tft.jaxb2-maven-plugin.version> <!-- TODO 1.5 -->
        <tft.jaxws-maven-plugin.version>2.1</tft.jaxws-maven-plugin.version> <!-- TODO 2.2.1 -->
        <tft.license-maven-plugin.version>1.4</tft.license-maven-plugin.version>
        <tft.m2e-lifecycle-mapping.version>1.0.0</tft.m2e-lifecycle-mapping.version>
        <tft.nbm-maven-plugin.version>3.13.2</tft.nbm-maven-plugin.version>
        <tft.nexus-maven-plugin.version>1.9.2.4</tft.nexus-maven-plugin.version> <!-- TODO: plugin changed name -->
        <tft.tomcat-maven-plugin.version>1.1</tft.tomcat-maven-plugin.version> <!-- TODO 2.1 -->
        <tft.vaadin-maven-plugin.version>1.0.2</tft.vaadin-maven-plugin.version>
        <tft.versions-maven-plugin.version>2.0</tft.versions-maven-plugin.version>
        <tft.wagon-maven-plugin.version>1.0-beta-4</tft.wagon-maven-plugin.version>
        <tft.webdav-jackrabbit.version>2.4</tft.webdav-jackrabbit.version>
        <tft.xml-maven-plugin.version>1.0</tft.xml-maven-plugin.version>

        <tft.archetype-packaging.version>${tft.maven-archetype-plugin.version}</tft.archetype-packaging.version>
    </properties>

    <scm>
        <connection>scm:${tft.scm}:${scm.repo.readonly.url}</connection>
        <developerConnection>scm:${tft.scm}:${scm.repo.effective.url}</developerConnection>
        <url>${scm.repo.browse.url}</url>
        <tag>2.16</tag>
    </scm>

    <prerequisites>
        <maven>${tft.maven.requiredVersion}</maven>
    </prerequisites>

    <repositories>
        <repository>
            <id>snapshots-oss.sonatype.org</id>
            <name>Sonatype Snapshots Repository</name>
            <url>http://oss.sonatype.org/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <distributionManagement>
        <repository>
            <id>staging-oss.sonatype.org</id>
            <name>Sonatype Release Repository</name>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
        </repository>
        <snapshotRepository>
            <id>snapshots-oss.sonatype.org</id>
            <name>Sonatype Snapshot Repository</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${tft.lombok.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${tft.aspectjrt.version}</version>
            </dependency>
            <dependency>
                <groupId>it.tidalwave.netbeans.boot</groupId>
                <artifactId>base-launcher</artifactId>
                <version>${tft.capecanaveral.version}</version>
            </dependency>

            <!--==== Testing ======================================================================================-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${tft.junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>${tft.testng.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${tft.mockito.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>${tft.mockito.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${tft.hamcrest-matchers.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-library</artifactId>
                <version>${tft.hamcrest-matchers.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-all</artifactId>
                <version>${tft.hamcrest-matchers.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <defaultGoal>${tft.defaultGoal}</defaultGoal>
        
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-webdav-jackrabbit</artifactId>
                <version>${tft.webdav-jackrabbit.version}</version>
            </extension>
        </extensions>

        <!-- For changeSet to be properly evaluated by assembly:assembly, use also the validate goal -->
        <finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName>

        <!-- ***********************************************************************************************************
        *
        * We want reproducible builds, so all Maven plugins have explicit version numbers.
        *
        ************************************************************************************************************ -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${tft.maven-compiler-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${tft.maven-javadoc-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${tft.maven-assembly-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${tft.maven-surefire-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${tft.maven-jar-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>${tft.maven-pmd-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${tft.maven-checkstyle-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>${tft.maven-antrun-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${tft.maven-deploy-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${tft.maven-release-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>${tft.maven-gpg-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${tft.maven-shade-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${tft.maven-clean-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>${tft.maven-install-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${tft.maven-resources-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${tft.maven-site-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${tft.maven-dependency-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-doap-plugin</artifactId>
                    <version>${tft.maven-doap-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jarsigner-plugin</artifactId>
                    <version>${tft.maven-jarsigner-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${tft.maven-source-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-scm-plugin</artifactId>
                    <version>${tft.maven-scm-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${tft.maven-war-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>${tft.aspectj-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>${tft.buildnumber-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${tft.exec-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>nbm-maven-plugin</artifactId>
                    <version>${tft.nbm-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>${tft.cobertura-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>${tft.findbugs-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${tft.build-helper-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>clirr-maven-plugin</artifactId>
                    <version>${tft.clirr-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.groovy.maven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <version>${tft.gmaven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>gwt-maven-plugin</artifactId>
                    <version>${tft.gwt-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>javancss-maven-plugin</artifactId>
                    <version>${tft.javancss-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxb2-maven-plugin</artifactId>
                    <version>${tft.jaxb2-maven-plugin.version}</version>
                </plugin>
                <plugin>
                     <groupId>org.codehaus.mojo</groupId>
                     <artifactId>license-maven-plugin</artifactId>
                     <version>${tft.license-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>tomcat-maven-plugin</artifactId>
                    <version>${tft.tomcat-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>${tft.versions-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>wagon-maven-plugin</artifactId>
                    <version>${tft.wagon-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xml-maven-plugin</artifactId>
                    <version>${tft.xml-maven-plugin.version}</version> 
                </plugin>

                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${tft.maven-bundle-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>maven-android-plugin</artifactId>
                    <version>${tft.maven-android-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.fusesource.mvnplugins</groupId>
                    <artifactId>maven-graph-plugin</artifactId>
                    <version>${tft.maven-graph-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>com.google.code.maven-replacer-plugin</groupId>
                    <artifactId>maven-replacer-plugin</artifactId>
                    <version>${tft.maven-replacer-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>com.mycila.maven-license-plugin</groupId>
                    <artifactId>maven-license-plugin</artifactId>
                    <version>${tft.maven-license-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-maven-plugin</artifactId>
                    <version>${tft.vaadin-maven-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>maven-jetty-plugin</artifactId>
                    <version>${tft.maven-jetty-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.sonatype.plugins</groupId>
                    <artifactId>nexus-maven-plugin</artifactId>
                    <version>${tft.nexus-maven-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.jvnet.jax-ws-commons</groupId>
                    <artifactId>jaxws-maven-plugin</artifactId>
                    <version>${tft.jaxws-maven-plugin.version}</version>
                </plugin>

                <!--
                    This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the
                    Maven build itself. Note that the plugin doesn't actually exist, it's just a placeholder used to
                    store some m2e configuration.
                -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>${tft.m2e-lifecycle-mapping.version}</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>aspectj-maven-plugin</artifactId>
                                        <versionRange>${tft.aspectj-maven-plugin.version}</versionRange>
                                        <goals>
                                            <goal>compile</goal>
                                            <goal>test-compile</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>true</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-enforcer-plugin</artifactId>
                                        <versionRange>${tft.maven-enforcer-plugin.version}</versionRange>
                                        <goals>
                                            <goal>enforce</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>jaxb2-maven-plugin
                                        </artifactId>
                                        <versionRange>${tft.jaxb2-maven-plugin.version}</versionRange>
                                        <goals>
                                            <goal>xjc</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>true</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>xml-maven-plugin</artifactId>
                                        <versionRange>${tft.xml-maven-plugin.version}</versionRange> 
                                        <goals>
                                            <goal>transform</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>true</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-dependency-plugin</artifactId>
                                        <versionRange>${tft.maven-dependency-plugin.version}</versionRange>
                                        <goals>
                                            <goal>unpack</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>true</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>nbm-maven-plugin</artifactId>
                                        <versionRange>${tft.nbm-maven-plugin.version}</versionRange>
                                        <goals>
                                            <goal>manifest</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>true</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <!-- ***********************************************************************************************************
        *
        *
        *
        ************************************************************************************************************ -->
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <doCheck>false</doCheck>
                     <doUpdate>false</doUpdate>
                    <getRevisionOnlyOnce>${tft.buildNumber.getRevisionOnlyOnce}</getRevisionOnlyOnce>
                    <revisionOnScmFailure>unknown</revisionOnScmFailure>
                    <shortRevisionLength>12</shortRevisionLength>
                </configuration>
            </plugin>

            <!-- Compiler -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <debug>${tft.javac.debug}</debug>
                    <optimize>${tft.javac.optimize}</optimize>
                    <source>${tft.javac.source}</source>
                    <target>${tft.javac.target}</target>
                    <showDeprecation>${tft.javac.showDeprecation}</showDeprecation>
                    <showWarnings>${tft.javac.showWarnings}</showWarnings>
                    <fork>${tft.javac.fork}</fork>
                    <compilerArgument>
                        ${tft.javac.xlint}
                    </compilerArgument>
                </configuration>
            </plugin>

            <!-- Assembler to produce final artifacts. -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <tarLongFileMode>gnu</tarLongFileMode>
                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                    <!-- References to assembly descriptors are in profiles -->
                </configuration>
            </plugin>

            <!-- Executes tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>${tft.test.skip}</skipTests>
                    <reportsDirectory>${tft.test.reportsDirectory}</reportsDirectory>
                    <includes>
                        <include>**/*Test.java</include>
                    </includes>
                    <!-- systemProperties>
                        <property>
                        </property>
                    </systemProperties -->
                    <argLine>-Xmx${tft.test.maxMemory} ${tft.test.vmOptions}</argLine>
                    <testFailureIgnore>${tft.test.failureIgnore}</testFailureIgnore>
                    <runOrder>alphabetical</runOrder>
                    <!-- properties> FIXME: doesn't work if left empty -> crashes surefire
                        <property>
                            <name>listener</name>
                            <value>${tft.test.listeners}</value>
                        </property>
                    </properties -->
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <configuration>
                    <mainClass>${tft.mainClass}</mainClass>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <useDefaultManifestFile>true</useDefaultManifestFile> <!-- required since nbm-plugin 3.0-->
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                        </manifest>
                        <manifestEntries>
                            <Implementation-Title>${project.name}</Implementation-Title>
                            <Implementation-Version>${project.version}.${buildNumber}</Implementation-Version>
                        </manifestEntries>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>package-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>package-test-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>test-jar</goal>
                        </goals>
                        <configuration>
                            <skipIfEmpty>true</skipIfEmpty>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>${tft.disableDeploy}</skip>
                </configuration>
            </plugin>

            <!-- CheckStyle (not in a profile, to be used by NetBeans editor) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${tft.maven-checkstyle-plugin.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>it.tidalwave.thesefoolishthings</groupId>
                        <artifactId>superpom-config</artifactId>
                        <version>${tft.superpom.config.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <configLocation>it/tidalwave/checkstyle/checkstyle.xml</configLocation>
                </configuration>
            </plugin>

            <!-- Configures the release process, calling the assembly to include extra artifacts in deploy -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <localCheckout>${tft.release.localCheckout}</localCheckout>
                    <pushChanges>false</pushChanges>
                    <preparationGoals>${tft.release.preparationGoals}</preparationGoals>
                    <completionGoals>${tft.release.completionGoals}</completionGoals>
                    <goals>${tft.release.goals}</goals>
                    <arguments>-P${release.profiles} -DaltDeploymentRepository="${altDeploymentRepository}" -DdryRun=${dryRun}</arguments>
                    <tagNameFormat>@{project.version}</tagNameFormat>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>nbm-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <descriptor>src/main/nbm/module.xml</descriptor>
                    <brandingToken>${netbeans.brandingToken}</brandingToken>
                    <cluster>${netbeans.cluster}</cluster>
                    <useOSGiDependencies>${tft.netbeans.useOSGiDependencies}</useOSGiDependencies>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>${tft.maven-enforcer-plugin.version}</version>
                <executions>
                    <execution>
                        <id>enforce-maven</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>${tft.maven.requiredVersion}</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <message>To build this project JDK ${tft.maven.requiredJdk} is required. Please install it and properly set JAVA_HOME.</message>
                                    <version>${tft.maven.requiredJdk}</version>
                                </requireJavaVersion>
                                <!-- Note that this rule is currently not working with Maven 3.x -->
                                <requirePluginVersions>
                                    <message>Best Practice is to always define plugin versions!</message>
                                    <banLatest>true</banLatest>
                                    <banRelease>true</banRelease>
                                    <banSnapshots>true</banSnapshots>
                                    <phases>clean,deploy,site</phases>
                                </requirePluginVersions>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>clirr-maven-plugin</artifactId>
                <!-- Configuration must be replicated in reporting section -->
                <configuration>
                    <skip>${tft.clirr.skip}</skip>
                    <failOnError>${tft.stableAPI}</failOnError>
                    <comparisonVersion>${tft.stableAPIVersion}</comparisonVersion>
                    <logResults>true</logResults>
                    <minSeverity>info</minSeverity>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <configuration>
                    <inputEncoding>UTF-8</inputEncoding>
                    <outputEncoding>UTF-8</outputEncoding>
                </configuration>
                <!-- Works around http://jira.codehaus.org/browse/MSITE-459 TODO: issue is marked fixed, try to remove it -->
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-module-xhtml</artifactId>
                        <version>1.1.2</version>
                        <exclusions>
                            <exclusion>
                                <groupId>commons-logging</groupId>
                                <artifactId>commons-logging</artifactId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                </dependencies>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <configuration>
                    <canUpdateCopyright>true</canUpdateCopyright>
                    <canUpdateDescription>true</canUpdateDescription>
                    <licenseName>${tft.license.name}</licenseName>
                    <licenseResolver>classpath://it/tidalwave/license</licenseResolver>
                    <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
                    <verbose>false</verbose>
                    <addSvnKeyWords>true</addSvnKeyWords>
                    <descriptionTemplate>${tft.license.template}</descriptionTemplate>
                    <excludes>
                        <exclude>LICENSE.txt</exclude>
                        <exclude>**/*.form</exclude>
                        <exclude>**/*.mf</exclude>
                        <exclude>**/.description</exclude>
                        <exclude>.hgtags</exclude>
                        <exclude>.hgignore</exclude>
                        <exclude>**/.classpath</exclude>
                        <exclude>**/.settings</exclude>
                        <exclude>**/archetypes/**</exclude>
                        <exclude>**/*-profile</exclude>
                    </excludes>
                    <roots>
                        <root>src</root>
                    </roots>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>it.tidalwave.thesefoolishthings</groupId>
                        <artifactId>superpom-config</artifactId>
                        <version>${tft.superpom.config.version}</version>
                    </dependency>
                </dependencies>
            </plugin>

            <plugin> <!-- DEPRECATED in favour of license-maven-plugin -->
                <groupId>com.mycila.maven-license-plugin</groupId>
                <artifactId>maven-license-plugin</artifactId>
                <configuration>
                    <header>${basedir}/src/header/header.txt</header>
                    <strictCheck>true</strictCheck>
                    <failIfMissing>true</failIfMissing>
                    <aggregate>true</aggregate>
                    <properties>
                        <description>${project.description}</description>
                        <url>${project.url}</url>
                        <inceptionYear>${project.inceptionYear}</inceptionYear>
                        <scm>${scm.repo.readonly.url}</scm>
                    </properties>
                    <!-- includes>
                        <include>**/pom.xml</include>
                    </includes -->
                    <excludes>
                        <exclude>**/LICENSE.txt</exclude>
                        <exclude>.hgignore</exclude>
                        <exclude>.hgtags</exclude>
                        <exclude>**/*.description</exclude>
                        <exclude>**/*.mf</exclude>
                        <exclude>**/*.form</exclude>
                        <exclude>**/META-INF/**/*.*</exclude>
                        <exclude>**/*-profile</exclude>
                    </excludes>
                    <encoding>UTF-8</encoding>
                    <headerDefinitions>
                        <headerDefinition>${project.basedir}/src/header/javadoc.xml</headerDefinition>
                        <headerDefinition>${project.basedir}/src/header/xml.xml</headerDefinition>
                        <headerDefinition>${project.basedir}/src/header/script.xml</headerDefinition>
                    </headerDefinitions>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <!-- Configuration must be replicated in reporting section -->
                <configuration>
                    <tags>
                        <tag>
                            <name>stable</name>
                            <placement>t</placement>
                            <head>Status: stable API</head>
                        </tag>
                        <tag>
                            <name>it.tidalwave.javadoc.stable</name>
                            <placement>t</placement>
                            <head>Status: stable API</head>
                        </tag>
                        <tag>
                            <name>draft</name>
                            <placement>t</placement>
                            <head>Status: draft API</head>
                        </tag>
                        <tag>
                            <name>it.tidalwave.javadoc.draft</name>
                            <placement>t</placement>
                            <head>Status: draft API</head>
                        </tag>
                        <tag>
                            <name>experimental</name>
                            <placement>t</placement>
                            <head>Status: experimental API</head>
                        </tag>
                        <tag>
                            <name>it.tidalwave.javadoc.experimental</name>
                            <placement>t</placement>
                            <head>Status: experimental API</head>
                        </tag>
                    </tags>
                    <docfilessubdirs>true</docfilessubdirs>
                    <excludePackageNames>${tft.javadoc.excludePackageNames}</excludePackageNames>
                    <doclet>${tft.javadoc.doclet}</doclet>
                    <docletArtifact>
                        <groupId>org.umlgraph</groupId>
                        <artifactId>doclet</artifactId>
                        <version>${tft.UmlGraphDoc.version}</version>
                    </docletArtifact>
                    <additionalparam>${tft.UmlGraphDoc.additionalParam} ${tft.javadoc.doclint}</additionalparam>
                    <useStandardDocletOptions>true</useStandardDocletOptions>
                    <skip>${tft.disableJavaDocs}</skip>
                    <failOnError>false</failOnError>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!--================================================================================================================

    This profile is used in Continous Integration to create QA metrics data.
    THIS PROFILE IS GOING TO BE DEPRECATED BECAUSE IT USES COBERTURA.

    =================================================================================================================-->
    <profiles>
        <profile>
            <id>metrics</id>
            <properties>
                <tft.test.reportsDirectory>${project.build.directory}/surefire-reports/cobertura</tft.test.reportsDirectory>
            </properties>
            <build>
                <defaultGoal>${tft.profile.metrics.defaultGoal}</defaultGoal>
                <plugins>
                    <!-- Cobertura -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>cobertura-maven-plugin</artifactId>
                        <configuration>
                            <formats>
                                <format>xml</format>
                                <format>html</format>
                            </formats>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>cobertura</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

            <reporting>
                <plugins>
                    <!-- Cobertura -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>cobertura-maven-plugin</artifactId>
                        <!-- version must be replicated here -->
                        <version>${tft.cobertura-maven-plugin.version}</version>
                    </plugin>

                    <!-- FindBugs -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <!-- version must be replicated here -->
                        <version>${tft.findbugs-maven-plugin.version}</version>
                        <configuration>
                            <xmlOutput>true</xmlOutput>
                            <findbugsXmlOutput>true</findbugsXmlOutput>
                            <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                            <effort>Max</effort>
                            <threshold>Low</threshold>
                            <failOnError>false</failOnError>
                        </configuration>
                    </plugin>

                    <!-- PMD -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                        <!-- version must be replicated here -->
                        <version>${tft.maven-pmd-plugin.version}</version>
                        <configuration>
                            <linkXref>true</linkXref>
                            <sourceEncoding>utf-8</sourceEncoding>
                            <minimumTokens>100</minimumTokens>
                            <targetJdk>${tft.javac.source}</targetJdk>
                        </configuration>
                    </plugin>
                </plugins>
            </reporting>
        </profile>

     <!--================================================================================================================

    This profile is used in Continous Integration to create QA metrics data.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-metrics-v2</id>
            <properties>
                <tft.test.reportsDirectory>${project.build.directory}/surefire-reports/jacoco</tft.test.reportsDirectory>
            </properties>
            <build>
                <defaultGoal>${tft.profile.metrics.defaultGoal}</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <argLine>-Xmx${tft.test.maxMemory} ${tft.test.vmOptions} ${tft.test.jacoco.argLine}</argLine>
                        </configuration>
                    </plugin>

                    <!-- Jacoco -->
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>${tft.jacoco-maven-plugin.version}</version>
                        <configuration>
                            <propertyName>tft.test.jacoco.argLine</propertyName>
                            <skipTests>${tft.test.skip}</skipTests>
                            <!--<destfile>${project.build.directory}/coverage-reports/jacoco-unit.exec</destfile>-->
                            <!--<datafile>${project.build.directory}/target/coverage-reports/jacoco-unit.exec</datafile>-->
                        </configuration>
                        <executions>
                            <execution>
                                <id>prepare-agent</id>
                                <!-- This properly sets ${tft.test.jacoco.argLine} so it's later used by Surefire -->
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>report</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>report</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

            <reporting>
                <plugins>
                    <!-- Jacoco -->
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <!-- version must be replicated here -->
                        <version>${tft.jacoco-maven-plugin.version}</version>
                    </plugin>

                    <!-- FindBugs -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <!-- version must be replicated here -->
                        <version>${tft.findbugs-maven-plugin.version}</version>
                        <configuration>
                            <xmlOutput>true</xmlOutput>
                            <findbugsXmlOutput>true</findbugsXmlOutput>
                            <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                            <effort>Max</effort>
                            <threshold>Low</threshold>
                            <failOnError>false</failOnError>
                        </configuration>
                    </plugin>

                    <!-- PMD -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                        <!-- version must be replicated here -->
                        <version>${tft.maven-pmd-plugin.version}</version>
                        <configuration>
                            <linkXref>true</linkXref>
                            <sourceEncoding>utf-8</sourceEncoding>
                            <minimumTokens>100</minimumTokens>
                            <targetJdk>${tft.javac.source}</targetJdk>
                        </configuration>
                    </plugin>
                </plugins>
            </reporting>
        </profile>
        
   <!--================================================================================================================

    This profile is activated during a release.

    =================================================================================================================-->
        <profile>
            <id>release</id>

            <properties>
                <skipTests>true</skipTests>
                <dryRun>false</dryRun>
                <altDeploymentRepository>release-repo-hudson::default::${staging.mvn.repo.url}</altDeploymentRepository>
            </properties>

            <build>
                <finalName>${project.artifactId}-${project.version}</finalName>
                <plugins>
                    <!-- FIXME: this directory is created in all submodules, only the master one is needed -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>clean-release-dirs</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <delete dir="${project.build.directory}/target-maven-repo" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile signs the build artifacts. It is automatically enabled during a release; signing requires that the
    proper certificates have been locally set up with PGP. If you want to skip signing, set the property
    tft.release.sign-artifacts.skip to true.
    
    =================================================================================================================-->
        <profile>
            <id>release-sign-artifacts</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <configuration>
                            <skip>${tft.release.sign-artifacts.skip}</skip>
                        </configuration>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile stores the current build description and Java version into a local file - used for Hudson builds.

    =================================================================================================================-->
        <profile>
            <id>generate-revision-id</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>generate-and-print-build-description</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <echo file="${tft.descriptionStamp}">DESCRIPTION: ${project.version}-${buildNumber}${line.separator}</echo>
                                        <loadfile property="tft.description" srcFile="${tft.descriptionStamp}" />
                                        <echo>${tft.description}</echo>
                                        <echo>Java Version: ${java.version} -source ${tft.javac.source} -target ${tft.javac.source}</echo>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile prints the current build description and Java version - used for Hudson builds.

    =================================================================================================================-->
        <profile>
            <id>show-revision-id</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>print-build-description</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <loadfile property="tft.description" srcFile="${tft.descriptionStamp}" />
                                        <echo>${tft.description}</echo>
                                        <echo>Java Version: ${java.version} -source ${tft.javac.source} -target ${tft.javac.source}</echo>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile detects Mercurial, it's used by the release-commit profile.

    =================================================================================================================-->
        <profile>
            <id>scm-detector-hg</id>
            <activation>
                <file>
                    <exists>.hg</exists>
                </file>
            </activation>
            <properties>
                <tft.scm-detector.hg>true</tft.scm-detector.hg>
            </properties>
        </profile>
        
    <!--================================================================================================================

    This profile detects Git, it's used by the release-commit profile.

    =================================================================================================================-->
        <profile>
            <id>scm-detector-git</id>
            <activation>
                <file>
                    <exists>.git</exists>
                </file>
            </activation>
            <properties>
                <tft.scm-detector.git>true</tft.scm-detector.git>
            </properties>
        </profile>
        
    <!--================================================================================================================

    This profile deploys local artifacts to the remote repository and pushes SCM changes  after a successful staged 
    release.
    Run as mvn -N -Prelease-commit
    
    =================================================================================================================-->
        <profile>
            <id>release-commit</id>
            <build>
                <defaultGoal>initialize</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>wagon-maven-plugin</artifactId>
                        <configuration>
                            <source>${staging.mvn.repo.url}</source>
                            <target>${project.distributionManagement.repository.url}</target>
                            <targetId>${project.distributionManagement.repository.id}</targetId>
                        </configuration>
                        <executions>
                            <execution>
                                <id>publish-repo</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>copy</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>push-hg</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="push-hg" if="tft.scm-detector.hg">
                                        <exec executable="hg" dir="${project.build.directory}">
                                            <arg value="push" />
                                        </exec>
                                    </target>
                                </configuration>
                            </execution>
                            <execution>
                                <id>push-git</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="push-git" if="tft.scm-detector.git">
                                        <exec executable="git" dir="${project.build.directory}">
                                            <arg value="push" />
                                            <arg value="origin" />
                                            <arg value="master" />
                                            <arg value="--tags" />
                                        </exec>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile is executed when a staged release is canceled - it erases the local SCM repository. BEWARE: this has
    been designed to work with Hudson, not on your local workarea.

    =================================================================================================================-->
        <profile>
            <id>release-cancel</id>
            <build>
                <defaultGoal>initialize</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>strip-hg</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <!-- FIXME: would be better to strip local changes -->
                                    <target name="strip-hg" if="tft.scm-detector.hg">
                                        <delete dir="${project.build.directory}/.hg" />
                                    </target>
                                </configuration>
                            </execution>
                            <execution>
                                <id>strip-git</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <!-- FIXME: would be better to strip local changes -->
                                    <target name="strip-git" if="tft.scm-detector.git">
                                        <delete dir="${project.build.directory}/.git" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile deploys the extra artifacts that are created by the assembly plugin.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-deploy-extra-artifacts-v2</id>

            <properties>
                <staging.mvn.repo.url>file://${project.build.directory}/../../target-maven-repo</staging.mvn.repo.url>
                <altDeploymentRepository>release-repo-hudson::default::${staging.mvn.repo.url}</altDeploymentRepository>
            </properties>

            <build>
                <defaultGoal>initialize assembly:assembly build-helper:attach-artifact verify deploy:deploy</defaultGoal>
                <finalName>${project.artifactId}-${project.version}</finalName>
            </build>
        </profile>

    <!--================================================================================================================

    This profiles creates an assembly 'bin' artifact if its configuration file is present.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-assembly-bin-descriptor</id>
            <activation>
                <file>
                    <exists>src/assemble/bin.xml</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptors combine.children="append">
                                <descriptor>src/assemble/bin.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </plugin>                
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <configuration>
                            <artifacts combine.children="append">
                                <artifact>
                                    <file>${project.build.directory}/${project.build.finalName}-bin.tar.gz</file>
                                    <type>tar.gz</type>
                                    <classifier>bin</classifier>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profiles creates an assembly 'project' artifact if its configuration file is present.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-assembly-project-descriptor</id>
            <activation>
                <file>
                    <exists>src/assemble/project.xml</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptors combine.children="append">
                                <descriptor>src/assemble/project.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <configuration>
                            <artifacts combine.children="append">
                                <artifact>
                                    <file>${project.build.directory}/${project.build.finalName}-project.tar.gz</file>
                                    <type>tar.gz</type>
                                    <classifier>project</classifier>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile configures Tomcat for the build. Create an empty file in src/config/activate-tomcat-profile to
    activate it.

    =================================================================================================================-->
        <profile>
            <id>tomcat</id>
            <activation>
                <file>
                    <exists>src/config/activate-tomcat-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>tomcat-maven-plugin</artifactId>
                        <configuration>
                            <server>${tft.webapp.deployServerId}</server>
                            <url>${tft.webapp.deployServerUrl}</url>
                            <path>${tft.webapp.contextPath}</path>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile configures Jetty for the build. Create an empty file in src/config/activate-jetty-profile to activate it.

    =================================================================================================================-->
        <profile>
            <id>jetty</id>
            <activation>
                <file>
                    <exists>src/config/activate-jetty-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>maven-jetty-plugin</artifactId>
                        <configuration>
                            <connectors>
                                <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                                    <port>${tft.jetty.port}</port>
                                    <maxIdleTime>60000</maxIdleTime>
                                </connector>
                            </connectors>
                            <stopPort>${tft.jetty.stopPort}</stopPort>
                            <stopKey>${tft.jetty.stopKey}</stopKey>
                            <scanIntervalSeconds>${tft.jetty.scanIntervalSeconds}</scanIntervalSeconds>
                            <webAppConfig>
                                <contextPath>${tft.webapp.contextPath}</contextPath>
                                <baseResource implementation="org.mortbay.resource.ResourceCollection">
              <!-- Workaround for Maven/Jetty issue http://jira.codehaus.org/browse/JETTY-680 -->
              <!-- <resources>src/main/webapp,${project.build.directory}/${project.build.finalName}</resources> -->
                                    <resourcesAsCSV>src/main/webapp,${project.build.directory}/${project.build.finalName}</resourcesAsCSV>
                                </baseResource>
                            </webAppConfig>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile configures AspectJ in the build. Create an empty file in src/config/activate-aspectj-profile to
    activate it.
    THIS IS A DEPRECATED PROFILE.

    =================================================================================================================-->
        <profile>
            <id>aspectj</id>
            <activation>
                <file>
                    <exists>src/config/activate-aspectj-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                <!-- Will be no more needed when http://jira.codehaus.org/browse/MASPECTJ-9 is fixed -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <dependencies>
                            <dependency>
                                <groupId>org.aspectj</groupId>
                                <artifactId>aspectjrt</artifactId>
                                <version>${tft.aspectjrt.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.aspectj</groupId>
                                <artifactId>aspectjtools</artifactId>
                                <version>${tft.aspectjrt.version}</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>weave-classes</id>
                                <phase>process-classes</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties" classpathref="maven.plugin.classpath" />
                                        <iajc destDir="${project.build.directory}/classes" inpath="${project.build.directory}/classes" source="${tft.javac.source}" target="${tft.javac.target}" aspectPath="${org.springframework:spring-aspects:jar}" classpathRef="maven.compile.classpath" Xlint="ignore" />
                                    </target>
                                </configuration>
                            </execution>
                            <execution>
                                <id>weave-test-classes</id>
                                <phase>process-test-classes</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties" classpathref="maven.plugin.classpath" />
                                        <iajc destDir="${project.build.directory}/test-classes" inpath="${project.build.directory}/test-classes" source="${tft.javac.source}" target="${tft.javac.target}" aspectPath="${org.springframework:spring-aspects:jar}" classpathRef="maven.compile.classpath" Xlint="ignore" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile configures AspectJ for Spring in the build. Create an empty file in 
    src/config/activate-it.tidalwave.aspectj-springaop-v1-profile
    to activate it.
    This profile arranges things so that AspectJ is compatibile with other tools that manipulate the bytecode, such as
    annotation processors (e.g. Lombok). The original, unwoven classes are stored in target/unwoven-classes and 
    target/unwoven-test-classes.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-aspectj-springaop-v1</id>
            <activation>
                <file>
                    <exists>src/config/activate-it.tidalwave-aspectj-springaop-v1-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-compile</id>
                                <phase>compile</phase>
                                <configuration>
                                    <outputDirectory>${tft.project.build.unwoven-classes.directory}</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>default-testCompile</id>
                                <phase>test-compile</phase>
                                <configuration>
                                    <outputDirectory>${tft.project.build.unwoven-test-classes.directory}</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <!-- Create the target directories for unwoven classes -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-unwoven-classes-dirs</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <mkdir dir="${tft.project.build.unwoven-classes.directory}" />
                                        <mkdir dir="${tft.project.build.unwoven-test-classes.directory}" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>aspectj-maven-plugin</artifactId>
                        <configuration>
                            <Xlint>ignore</Xlint>
                            <source>${tft.javac.source}</source>
                            <complianceLevel>${tft.javac.source}</complianceLevel>
                            <target>${tft.javac.target}</target>
                            <!-- Prevent ajc from finding sources -->
                            <sources />
                            <testSources />
                            <!-- This is important because sometimes the plugin decides that there's nothing to do
                                 because sources are not specified -->
                            <forceAjcCompile>true</forceAjcCompile>
                            <showWeaveInfo>${tft.aspectj.ajc.verbose}</showWeaveInfo>
                            <verbose>${tft.aspectj.ajc.verbose}</verbose>
                            <aspectLibraries>
                                <dependency>
                                    <groupId>org.springframework</groupId>
                                    <artifactId>spring-aspects</artifactId>
                                </dependency>
                            </aspectLibraries>
                        </configuration>
                        <executions>
                            <execution>
                                <id>weave-classes</id>
                                <phase>process-classes</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <weaveDirectories>
                                        <weaveDirectory>${tft.project.build.unwoven-classes.directory}</weaveDirectory>
                                    </weaveDirectories>
                                </configuration>
                            </execution>
                            <execution>
                                <id>weave-test-classes</id>
                                <phase>process-test-classes</phase>
                                <goals>
                                    <goal>test-compile</goal>
                                </goals>
                                <configuration>
                                    <weaveDirectories>
                                        <weaveDirectory>${tft.project.build.unwoven-test-classes.directory}</weaveDirectory>
                                    </weaveDirectories>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.aspectj</groupId>
                                <artifactId>aspectjrt</artifactId>
                                <version>${tft.aspectjrt.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.aspectj</groupId>
                                <artifactId>aspectjtools</artifactId>
                                <version>${tft.aspectjrt.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile compiles custom Vaadin widgets into GWT components.

    =================================================================================================================-->
        <profile>
            <id>vaadin-compile-widgetset</id>
            <build>
                <plugins>
              <!-- Compile custom GWT components or widget dependencies with the GWT compiler -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>gwt-maven-plugin</artifactId>
                        <configuration>
                            <webappDirectory>src/main/webapp/VAADIN/widgetsets</webappDirectory>
                            <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>
                            <runTarget>${project.artifactId}</runTarget>
                            <soyc>false</soyc>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>com.google.gwt</groupId>
                                <artifactId>gwt-dev</artifactId>
                                <version>${tft.gwt.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>com.google.gwt</groupId>
                                <artifactId>gwt-user</artifactId>
                                <version>${tft.gwt.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile configures the jarbundler for the build. Create an empty file in
    src/config/it.tidalwave-netbeans-platform-appbundle-embedded-jre-profile-v2 to activate it.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-netbeans-platform-appbundle-embedded-jre-v2</id>
            <activation>
                <file>
                    <exists>src/config/activate-it.tidalwave-netbeans-platform-appbundle-embedded-jre-v2-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>unpack-embedded-jdk</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>unpack</goal>
                                </goals>
                                <configuration>
                                    <artifactItems>
                                        <artifactItem>
                                            <groupId>${tft.embedded-jdk-groupId}</groupId>
                                            <artifactId>${tft.embedded-jdk-artifactId}</artifactId>
                                            <version>${tft.embedded-jdk-version}</version>
                                            <type>tgz</type>
                                            <classifier>${tft.embedded-jdk-classifier}</classifier>
                                            <overWrite>true</overWrite>
                                            <outputDirectory>${project.basedir}/target/jdk/${tft.embedded-jdk-name}</outputDirectory>
                                        </artifactItem>
                                    </artifactItems>
                                </configuration>
                            </execution>
                            <execution>
                                <id>unpack-application</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>unpack-dependencies</goal>
                                </goals>
                                <configuration>
                                    <excludeTransitive>true</excludeTransitive>
                                    <outputDirectory>${project.build.directory}/application</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>copy-booter</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>copy</goal>
                                </goals>
                                <configuration>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/boot</outputDirectory>
                                    <artifactItems>
                                        <artifactItem>
                                            <groupId>${project.groupId}</groupId>
                                            <artifactId>it-tidalwave-${netbeans.cluster}-boot</artifactId>
                                            <destFileName>${netbeans.cluster}-boot.jar</destFileName>
                                        </artifactItem>
                                        <artifactItem>
                                            <groupId>it.tidalwave.netbeans.boot</groupId>
                                            <artifactId>base-launcher</artifactId>
                                            <version>${tft.capecanaveral.version}</version>
                                            <destFileName>base-launcher.jar</destFileName>
                                        </artifactItem>
                                    </artifactItems>
                                    <excludeTransitive>true</excludeTransitive>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-app-bundle</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="src/main/app-resources/appbundler-${tft.appbundler.version}.jar" />

                                        <!-- FIXME applicationCategory="public.app-category.developer-tools"-->
                                        <bundleapp outputdirectory="${project.build.directory}" name="${tft.appbundle.name}" displayname="${tft.appbundle.name}" icon="src/main/app-resources/${netbeans.cluster}.icns" identifier="${project.groupId}" shortversion="${project.version}" mainclassname="${tft.netbeans.main}" signature="${tft.appbundle.signature}">
                                            <runtime dir="${project.build.directory}/jdk/${tft.embedded-jdk-name}/Contents/Home" />
                                            <classpath dir="${project.basedir}" casesensitive="yes">
                                                <include name="target/application/${netbeans.cluster}/platform/lib/*.jar" />
                                                <include name="target/boot/*.jar" />
                                            </classpath>
                                            <options value="${tft.netbeans.vmargs}" />
                                            <option value="-Dnetbeans.home=$APP_ROOT/Contents/Java/${netbeans.cluster}/platform" />
                                            <option value="-Dit.tidalwave.netbeans.boot.branding=${netbeans.brandingToken}" />
                                            <option value="-Dit.tidalwave.netbeans.boot.userDirName=${tft.appbundle.name}" />
                                            <option value="-Dcom.apple.mrj.application.apple.menu.about.name=${tft.appbundle.name}" />
                                            <option value="-Xdock:name=${tft.appbundle.name}" />
                                            <option value="-Xbootclasspath/a:$APP_ROOT/Contents/PlugIns/${tft.embedded-jdk-name}/Contents/Home/jre/lib/jfxrt.jar" />
                                        </bundleapp>

                                        <copy todir="${project.build.directory}/${tft.appbundle.name}.app/Contents/Java">
                                            <fileset dir="${project.build.directory}/application">
                                                <exclude name="*/bin/**" />
                                                <exclude name="*/etc/*.conf" />
                                                <exclude name="*/platform/docs/**" />
                                                <exclude name="*/platform/lib/nbexec*" />
                                            </fileset>
                                        </copy>

                                        <exec dir="${project.build.directory}" os="Mac OS X" executable="hdiutil">
                                            <arg value="create" />
                                            <arg value="-noanyowners" />
                                            <arg value="-imagekey" />
                                            <arg value="zlib-level=1" />
                                            <arg value="-srcfolder" />
                                            <arg value="${tft.appbundle.name}.app" />
                                            <arg value="${tft.appbundle.name}.dmg" />
                                        </exec>

                                        <exec dir="${project.build.directory}" os="Linux" executable="mkisofs">
                                            <arg value="-V" />
                                            <arg value="${tft.appbundle.name}" />
                                            <arg value="-U" />
                                            <arg value="-f" />
                                            <arg value="-D" />
                                            <arg value="-l" />
                                            <arg value="-L" />
                                            <arg value="-allow-multidot" />
                                            <arg value="-max-iso9660-filenames" />
                                            <arg value="-relaxed-filenames" />
                                            <arg value="-no-iso-translate" />
                                            <arg value="-r" />
                                            <arg value="-o" />
                                            <arg value="${tft.appbundle.name}.dmg" />
                                            <arg value="-root" />
                                            <arg value="${tft.appbundle.name}.app" />
                                            <arg value="${tft.appbundle.name}.app" />
                                        </exec>

                                        <gzip src="${project.build.directory}/${tft.appbundle.name}.dmg" destfile="${project.build.directory}/${tft.appbundle.name}.dmg.gz" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-app-bundle</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>attach-artifact</goal>
                                </goals>
                                <configuration>
                                    <artifacts>
                                        <artifact>
                                            <file>${project.build.directory}/${tft.appbundle.name}.dmg.gz</file>
                                            <type>dmg.gz</type>
                                            <classifier>executable</classifier>
                                        </artifact>
                                    </artifacts>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    <!--================================================================================================================

    This profile configures the jarbundler for the build. Create an empty file in
    src/config/it.tidalwave-netbeans-platform-appbundle-profile-v2 to activate it.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-netbeans-platform-appbundle-v2</id>
            <activation>
                <file>
                    <exists>src/config/activate-it.tidalwave-netbeans-platform-appbundle-v2-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>unpack-application</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>unpack-dependencies</goal>
                                </goals>
                                <configuration>
                                    <excludeTransitive>true</excludeTransitive>
                                    <outputDirectory>${project.build.directory}/application</outputDirectory>
                                </configuration>
                            </execution>
<!-- FIXME: until we're able to put jfxrt.jar to the bootclasspath, copy it to the appbundle -->
                            <execution>
                                <id>copy-booter</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>copy</goal>
                                </goals>
                                <configuration>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/boot</outputDirectory>
                                    <artifactItems>
                                        <artifactItem>
                                            <groupId>${project.groupId}</groupId>
                                            <artifactId>it-tidalwave-${netbeans.cluster}-boot</artifactId>
                                            <destFileName>${netbeans.cluster}-boot.jar</destFileName>
                                        </artifactItem>
                                        <artifactItem>
                                            <groupId>it.tidalwave.netbeans.boot</groupId>
                                            <artifactId>base-launcher</artifactId>
                                            <version>${tft.capecanaveral.version}</version>
                                            <destFileName>base-launcher.jar</destFileName>
                                        </artifactItem>
                                    </artifactItems>
                                    <excludeTransitive>true</excludeTransitive>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-app-bundle</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="src/main/app-resources/appbundler-${tft.appbundler.version}.jar" />

                                        <!-- FIXME applicationCategory="public.app-category.developer-tools"-->
                                        <!-- FIXME: way to specify min Java version? -->
                                        <bundleapp outputdirectory="${project.build.directory}" name="${tft.appbundle.name}" displayname="${tft.appbundle.name}" icon="src/main/app-resources/${netbeans.cluster}.icns" identifier="${project.groupId}" shortversion="${project.version}" mainclassname="${tft.netbeans.main}" signature="${tft.appbundle.signature}">
                                            <classpath dir="${project.basedir}" casesensitive="yes">
                                                <include name="target/application/${netbeans.cluster}/platform/lib/*.jar" />
                                                <include name="target/boot/*.jar" />
                                            </classpath>
                                            <options value="${tft.netbeans.vmargs}" />
                                            <option value="-Dnetbeans.home=$APP_ROOT/Contents/Java/${netbeans.cluster}/platform" />
                                            <option value="-Dit.tidalwave.netbeans.boot.branding=${netbeans.brandingToken}" />
                                            <option value="-Dit.tidalwave.netbeans.boot.userDirName=${tft.appbundle.name}" />
                                            <option value="-Dcom.apple.mrj.application.apple.menu.about.name=${tft.appbundle.name}" />
                                            <option value="-Xdock:name=${tft.appbundle.name}" />
                                        </bundleapp>

                                        <copy todir="${project.build.directory}/${tft.appbundle.name}.app/Contents/Java">
                                            <fileset dir="${project.build.directory}/application">
                                                <exclude name="*/bin/**" />
                                                <exclude name="*/etc/*.conf" />
                                                <exclude name="*/platform/docs/**" />
                                                <exclude name="*/platform/lib/nbexec*" />
                                            </fileset>
                                        </copy>

                                        <exec dir="${project.build.directory}" os="Mac OS X" executable="hdiutil">
                                            <arg value="create" />
                                            <arg value="-noanyowners" />
                                            <arg value="-imagekey" />
                                            <arg value="zlib-level=1" />
                                            <arg value="-srcfolder" />
                                            <arg value="${tft.appbundle.name}.app" />
                                            <arg value="${tft.appbundle.name}.dmg" />
                                        </exec>

                                        <exec dir="${project.build.directory}" os="Linux" executable="mkisofs">
                                            <arg value="-V" />
                                            <arg value="${tft.appbundle.name}" />
                                            <arg value="-U" />
                                            <arg value="-f" />
                                            <arg value="-D" />
                                            <arg value="-l" />
                                            <arg value="-L" />
                                            <arg value="-allow-multidot" />
                                            <arg value="-max-iso9660-filenames" />
                                            <arg value="-relaxed-filenames" />
                                            <arg value="-no-iso-translate" />
                                            <arg value="-r" />
                                            <arg value="-o" />
                                            <arg value="${tft.appbundle.name}.dmg" />
                                            <arg value="-root" />
                                            <arg value="${tft.appbundle.name}.app" />
                                            <arg value="${tft.appbundle.name}.app" />
                                        </exec>

                                        <gzip src="${project.build.directory}/${tft.appbundle.name}.dmg" destfile="${project.build.directory}/${tft.appbundle.name}.dmg.gz" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-app-bundle</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>attach-artifact</goal>
                                </goals>
                                <configuration>
                                    <artifacts>
                                        <artifact>
                                            <file>${project.build.directory}/${tft.appbundle.name}.dmg.gz</file>
                                            <type>dmg.gz</type>
                                            <classifier>executable</classifier>
                                        </artifact>
                                    </artifacts>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        
    <!--================================================================================================================

    This profile configures the jarbundler for the build. Create an empty file in
    activate-it.tidalwave-javafx-embedded-appbundle-v1-profile to activate it.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-javafx-appbundle-embedded-v1</id>
            <activation>
                <file>
                    <exists>src/config/activate-it.tidalwave-javafx-appbundle-embedded-v1-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>unpack-embedded-jdk</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>unpack</goal>
                                </goals>
                                <configuration>
                                    <artifactItems>
                                        <artifactItem>
                                            <groupId>${tft.embedded-jdk-groupId}</groupId>
                                            <artifactId>${tft.embedded-jdk-artifactId}</artifactId>
                                            <version>${tft.embedded-jdk-version}</version>
                                            <type>tgz</type>
                                            <classifier>${tft.embedded-jdk-classifier}</classifier>
                                            <overWrite>true</overWrite>
                                            <outputDirectory>${project.basedir}/target/jdk/${tft.embedded-jdk-name}</outputDirectory>
                                        </artifactItem>
                                    </artifactItems>
                                </configuration>
                            </execution>
                            <execution>
                                <id>copy-application</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <excludeTransitive>false</excludeTransitive>
                                    <excludeArtifactIds>javafx-embedded</excludeArtifactIds>
                                    <includeScope>runtime</includeScope>
                                    <outputDirectory>${project.build.directory}/application</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-app-bundle</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="src/main/app-resources/appbundler-${tft.appbundler.version}.jar" />

                                        <!-- FIXME applicationCategory="public.app-category.developer-tools"-->
                                        <!-- FIXME: way to specify min Java version? -->
                                        <bundleapp outputdirectory="${project.build.directory}" name="${tft.appbundle.name}" displayname="${tft.appbundle.name}" icon="src/main/app-resources/${tft.appbundle.name}.icns" identifier="${project.groupId}" shortversion="${project.version}" mainclassname="${tft.mainClass}" signature="${tft.appbundle.signature}">
                                            <runtime dir="${project.build.directory}/jdk/${tft.embedded-jdk-name}/Contents/Home" />
                                            <classpath dir="${project.basedir}" casesensitive="yes">
                                                <include name="target/application/*.jar" />
                                            </classpath>
                                            <options value="${tft.javafx.vmargs}" />
                                            <option value="-Dcom.apple.mrj.application.apple.menu.about.name=${tft.appbundle.name}" />
                                            <option value="-Xdock:name=${tft.appbundle.name}" />
                                            <option value="-Xbootclasspath/a:$APP_ROOT/Contents/PlugIns/${tft.embedded-jdk-name}/Contents/Home/jre/lib/jfxrt.jar" />
                                        </bundleapp>

                                        <exec dir="${project.build.directory}" os="Mac OS X" executable="hdiutil">
                                            <arg value="create" />
                                            <arg value="-noanyowners" />
                                            <arg value="-imagekey" />
                                            <arg value="zlib-level=1" />
                                            <arg value="-srcfolder" />
                                            <arg value="${tft.appbundle.name}.app" />
                                            <arg value="${tft.appbundle.name}.dmg" />
                                        </exec>

                                        <exec dir="${project.build.directory}" os="Linux" executable="mkisofs">
                                            <arg value="-V" />
                                            <arg value="${tft.appbundle.name}" />
                                            <arg value="-U" />
                                            <arg value="-f" />
                                            <arg value="-D" />
                                            <arg value="-l" />
                                            <arg value="-L" />
                                            <arg value="-allow-multidot" />
                                            <arg value="-max-iso9660-filenames" />
                                            <arg value="-relaxed-filenames" />
                                            <arg value="-no-iso-translate" />
                                            <arg value="-r" />
                                            <arg value="-o" />
                                            <arg value="${tft.appbundle.name}.dmg" />
                                            <arg value="-root" />
                                            <arg value="${tft.appbundle.name}.app" />
                                            <arg value="${tft.appbundle.name}.app" />
                                        </exec>

                                        <gzip src="${project.build.directory}/${tft.appbundle.name}.dmg" destfile="${project.build.directory}/${tft.appbundle.name}.dmg.gz" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-app-bundle</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>attach-artifact</goal>
                                </goals>
                                <configuration>
                                    <artifacts>
                                        <artifact>
                                            <file>${project.build.directory}/${tft.appbundle.name}.dmg.gz</file>
                                            <type>dmg.gz</type>
                                            <classifier>executable</classifier>
                                        </artifact>
                                    </artifacts>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        
    <!--================================================================================================================

    This profile configures the jarbundler for the build. Create an empty file in
    src/config/activate-it.tidalwave-javafx-appbundle-v1-profile to activate it.

    =================================================================================================================-->
        <profile>
            <id>it.tidalwave-javafx-appbundle-v1</id>
            <activation>
                <file>
                    <exists>src/config/activate-it.tidalwave-javafx-appbundle-v1-profile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-application</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <excludeTransitive>false</excludeTransitive>
                                    <includeScope>runtime</includeScope>
                                   <!-- FIXME: workaround until we're able to put it in bootclasspath -->
                                    <!--<excludeArtifactIds>javafx-embedded</excludeArtifactIds>-->
                                    <outputDirectory>${project.build.directory}/application</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-app-bundle</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="src/main/app-resources/appbundler-${tft.appbundler.version}.jar" />

                                        <!-- FIXME applicationCategory="public.app-category.developer-tools"-->
                                        <!-- FIXME: way to specify min Java version? -->
way to specify min Java version? -->
<bundleapp outputdirectory="${project.build.directory}" name="${tft.appbundle.name}" displayname="${tft.appbundle.name}" icon="src/main/app-resources/${tft.appbundle.name}.icns" identifier="${project.groupId}" shortversion="${project.version}" mainclassname="${tft.mainClass}" signature="${tft.appbundle.signature}"> <classpath dir="${project.basedir}" casesensitive="yes"> <include name="target/application/*.jar" /> </classpath> <options value="${tft.javafx.vmargs}" /> <option value="-Dcom.apple.mrj.application.apple.menu.about.name=${tft.appbundle.name}" /> <option value="-Xdock:name=${tft.appbundle.name}" /> </bundleapp> <exec dir="${project.build.directory}" os="Mac OS X" executable="hdiutil"> <arg value="create" /> <arg value="-noanyowners" /> <arg value="-imagekey" /> <arg value="zlib-level=1" /> <arg value="-srcfolder" /> <arg value="${tft.appbundle.name}.app" /> <arg value="${tft.appbundle.name}.dmg" /> </exec> <exec dir="${project.build.directory}" os="Linux" executable="mkisofs"> <arg value="-V" /> <arg value="${tft.appbundle.name}" /> <arg value="-U" /> <arg value="-f" /> <arg value="-D" /> <arg value="-l" /> <arg value="-L" /> <arg value="-allow-multidot" /> <arg value="-max-iso9660-filenames" /> <arg value="-relaxed-filenames" /> <arg value="-no-iso-translate" /> <arg value="-r" /> <arg value="-o" /> <arg value="${tft.appbundle.name}.dmg" /> <arg value="-root" /> <arg value="${tft.appbundle.name}.app" /> <arg value="${tft.appbundle.name}.app" /> </exec> <gzip src="${project.build.directory}/${tft.appbundle.name}.dmg" destfile="${project.build.directory}/${tft.appbundle.name}.dmg.gz" /> </target> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>attach-app-bundle</id> <phase>pre-integration-test</phase> <goals> <goal>attach-artifact</goal> </goals> <configuration> <artifacts> <artifact> <file>${project.build.directory}/${tft.appbundle.name}.dmg.gz</file> <type>dmg.gz</type> <classifier>executable</classifier> </artifact> </artifacts> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!--================================================================================================================ =================================================================================================================--> <profile> <id>it.tidalwave.use-local-artifact-target-repo-v1</id> <properties> <altDeploymentRepository>local-repo::default::${staging.mvn.repo.url}</altDeploymentRepository> </properties> </profile> <!--================================================================================================================ Deploys to a public repo those artifacts that have been generated during a release process and stored in a local repository. Run as: mvn -N -Pit.tidalwave.publish-artifacts-v1 Note: on Mac OS X you need to run this with -Djava.io.tmpdir=/tmp (or other directory). =================================================================================================================--> <profile> <id>it.tidalwave.publish-artifacts-v1</id> <properties> <wagon.source>${staging.mvn.repo.url}</wagon.source> <wagon.target>https://oss.sonatype.org/content/repositories/snapshots</wagon.target> <wagon.targetId>snapshots-oss.sonatype.org</wagon.targetId> </properties> <build> <defaultGoal>initialize org.codehaus.mojo:wagon-maven-plugin:copy</defaultGoal> </build> </profile> <!--================================================================================================================ This profile updates all the dependencies to their latest release. The project must be structured in the standard TheseFoolishThings layout. Run as: mvn -N -Pit.tidalwave-update-releases-v1 =================================================================================================================--> <profile> <id>it.tidalwave-update-releases-v1</id> <build> <defaultGoal>initialize</defaultGoal> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>update-properties</goal> </goals> <configuration> <allowSnapshots>false</allowSnapshots> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!--================================================================================================================ This profile updates all the dependencies to their latest snapshots. The project must be structured in the standard TheseFoolishThings layout. Run as: mvn -N -Pit.tidalwave-update-snapshots-v1 =================================================================================================================--> <profile> <id>it.tidalwave-update-snapshots-v1</id> <build> <defaultGoal>initialize</defaultGoal> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>update-properties</goal> </goals> <configuration> <allowSnapshots>true</allowSnapshots> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!--================================================================================================================ This profile updates the headers of files. =================================================================================================================--> <profile> <id>it.tidalwave-update-headers</id> <properties> <tft.license.template>${basedir}/target/it/tidalwave/license/filtered/tidalwave-header-description.ftl</tft.license.template> </properties> <build> <defaultGoal>initialize</defaultGoal> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>it.tidalwave.thesefoolishthings</groupId> <artifactId>superpom-config</artifactId> <version>${tft.superpom.config.version}</version> <overWrite>true</overWrite> <outputDirectory>${basedir}/target/superpom-config</outputDirectory> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/it/tidalwave/license/filtered</outputDirectory> <resources> <resource> <directory>${basedir}/target/superpom-config/it/tidalwave/license</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>update-file-header</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!--================================================================================================================ This profile checks the headers of files. =================================================================================================================--> <profile> <id>it.tidalwave-check-headers</id> <properties> <tft.license.template>${basedir}/target/it/tidalwave/license/filtered/tidalwave-header-description.ftl</tft.license.template> </properties> <build> <defaultGoal>initialize</defaultGoal> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>it.tidalwave.thesefoolishthings</groupId> <artifactId>superpom-config</artifactId> <version>${tft.superpom.config.version}</version> <overWrite>true</overWrite> <outputDirectory>${basedir}/target/superpom-config</outputDirectory> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/it/tidalwave/license/filtered</outputDirectory> <resources> <resource> <directory>${basedir}/target/superpom-config/it/tidalwave/license</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>check-file-header</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <!-- Version must be copied here because of http://jira.codehaus.org/browse/MSITE-443 --> <version>${tft.maven-javadoc-plugin.version}</version> <!-- Configuration must be replicated in build section --> <configuration> <tags> <tag> <name>stable</name> <placement>t</placement> <head>Status: stable API</head> </tag> <tag> <name>it.tidalwave.javadoc.stable</name> <placement>t</placement> <head>Status: stable API</head> </tag> <tag> <name>draft</name> <placement>t</placement> <head>Status: draft API</head> </tag> <tag> <name>it.tidalwave.javadoc.draft</name> <placement>t</placement> <head>Status: draft API</head> </tag> <tag> <name>experimental</name> <placement>t</placement> <head>Status: experimental API</head> </tag> <tag> <name>it.tidalwave.javadoc.experimental</name> <placement>t</placement> <head>Status: experimental API</head> </tag> </tags> <docfilessubdirs>true</docfilessubdirs> <excludePackageNames>${tft.javadoc.excludePackageNames}</excludePackageNames> <doclet>${tft.javadoc.doclet}</doclet> <docletArtifact> <groupId>org.umlgraph</groupId> <artifactId>doclet</artifactId> <version>${tft.UmlGraphDoc.version}</version> </docletArtifact> <additionalparam>${tft.UmlGraphDoc.additionalParam} ${tft.javadoc.doclint}</additionalparam> <useStandardDocletOptions>true</useStandardDocletOptions> <skip>${tft.disableJavaDocs}</skip> <failOnError>false</failOnError> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>clirr-maven-plugin</artifactId> <!-- Version must be copied here because of http://jira.codehaus.org/browse/MSITE-443 --> <version>${tft.clirr-maven-plugin.version}</version> <!-- Configuration must be replicated in build section --> <configuration> <skip>${tft.clirr.skip}</skip> <failOnError>${tft.stableAPI}</failOnError> <comparisonVersion>${tft.stableAPIVersion}</comparisonVersion> <logResults>true</logResults> <minSeverity>info</minSeverity> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> <!-- Version must be copied here because of http://jira.codehaus.org/browse/MSITE-443 --> <version>${tft.javancss-maven-plugin.version}</version> <!-- Configuration must be replicated in build section --> </plugin> </plugins> </reporting> </project>