Repository: commons-release-plugin Updated Branches: refs/heads/master 4912e3d41 -> d92c25ac6
COMMONSSITE-108: prep for velocity templates Project: http://git-wip-us.apache.org/repos/asf/commons-release-plugin/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-release-plugin/commit/0cbef206 Tree: http://git-wip-us.apache.org/repos/asf/commons-release-plugin/tree/0cbef206 Diff: http://git-wip-us.apache.org/repos/asf/commons-release-plugin/diff/0cbef206 Branch: refs/heads/master Commit: 0cbef20602226e8591e5d6aa39b6ac5a5a6daa1b Parents: 4912e3d Author: Rob Tompkins <[email protected]> Authored: Mon May 21 08:18:11 2018 -0400 Committer: Rob Tompkins <[email protected]> Committed: Mon May 21 08:18:11 2018 -0400 ---------------------------------------------------------------------- checkstyle-suppressions.xml | 2 + pom.xml | 1313 +++++++++--------- .../velocity/HeaderHtmlVelocityDelegate.java | 82 ++ .../velocity/ReadmeHtmlVelocityDelegate.java | 149 ++ .../release/plugin/velocity/package-info.java | 28 + .../resources/META-INF/plexus/components.xml | 42 + .../commons/release/plugin/velocity/HEADER.vm | 15 + .../commons/release/plugin/velocity/README.vm | 50 + .../ReadmeHtmlVelocityDelegateTest.java | 45 + .../release/plugin/velocity/package-info.java | 21 + .../compress-site/compress-site-disabled.xml | 2 +- .../compress-site/compress-site-failure.xml | 2 +- .../mojos/compress-site/compress-site.xml | 2 +- .../detach-distributions-disabled.xml | 2 +- .../detach-distributions.xml | 2 +- .../stage-distributions-disabled.xml | 2 +- .../stage-distributions/stage-distributions.xml | 2 +- 17 files changed, 1111 insertions(+), 650 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/checkstyle-suppressions.xml ---------------------------------------------------------------------- diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml index 4f31b9e..dcf3176 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml @@ -27,4 +27,6 @@ <suppress checks="MagicNumber" files=".*[/\\]test[/\\].*" /> <suppress checks="MethodName" files=".*[/\\]test[/\\].*" /> <suppress checks="Javadoc" files=".*[/\\]test[/\\].*" /> + + <suppress checks="FinalClassCheck" files=".*Delegate.java" /> </suppressions> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index fb516b7..c6e5677 100644 --- a/pom.xml +++ b/pom.xml @@ -17,213 +17,239 @@ --> <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> - <parent> - <groupId>org.apache.commons</groupId> - <artifactId>commons-parent</artifactId> - <version>46</version> - </parent> - <artifactId>commons-release-plugin</artifactId> - <packaging>maven-plugin</packaging> - <version>1.3-SNAPSHOT</version> - <name>Apache Commons Release Plugin</name> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.commons</groupId> + <artifactId>commons-parent</artifactId> + <version>46</version> + </parent> + <artifactId>commons-release-plugin</artifactId> + <packaging>maven-plugin</packaging> + <version>1.3-SNAPSHOT</version> + <name>Apache Commons Release Plugin</name> - <description> - Apache Maven Mojo for Apache Commons Release tasks. - </description> + <description> + Apache Maven Mojo for Apache Commons Release tasks. + </description> - <url>http://commons.apache.org/proper/commons-release-plugin/</url> + <url>http://commons.apache.org/proper/commons-release-plugin/</url> - <issueManagement> - <system>jira</system> - <url>http://issues.apache.org/jira/browse/COMMONSSITE</url> - </issueManagement> + <issueManagement> + <system>jira</system> + <url>http://issues.apache.org/jira/browse/COMMONSSITE</url> + </issueManagement> - <inceptionYear>2018</inceptionYear> + <inceptionYear>2018</inceptionYear> - <scm> - <connection>scm:git:http://git-wip-us.apache.org/repos/asf/commons-release-plugin.git</connection> - <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/commons-release-plugin.git - </developerConnection> - <url>https://git-wip-us.apache.org/repos/asf?p=commons-release-plugin.git</url> - </scm> + <scm> + <connection>scm:git:http://git-wip-us.apache.org/repos/asf/commons-release-plugin.git</connection> + <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/commons-release-plugin.git + </developerConnection> + <url>https://git-wip-us.apache.org/repos/asf?p=commons-release-plugin.git</url> + </scm> - <distributionManagement> - <site> - <id>commons.site</id> - <name>Apache Commons Site SVN</name> - <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-release-plugin</url> - </site> - </distributionManagement> + <distributionManagement> + <site> + <id>commons.site</id> + <name>Apache Commons Site SVN</name> + <url> + scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-release-plugin + </url> + </site> + </distributionManagement> - <developers> - <developer> - <name>Rob Tompkins</name> - <id>chtompki</id> - <email>[email protected]</email> - <timezone>-5</timezone> - </developer> - <developer> - <name>Gary Gregory</name> - <id>ggregory</id> - <email>[email protected]</email> - <timezone>-6</timezone> - </developer> - </developers> + <developers> + <developer> + <name>Rob Tompkins</name> + <id>chtompki</id> + <email>[email protected]</email> + <timezone>-5</timezone> + </developer> + <developer> + <name>Gary Gregory</name> + <id>ggregory</id> + <email>[email protected]</email> + <timezone>-6</timezone> + </developer> + </developers> - <properties> - <maven.compiler.source>1.7</maven.compiler.source> - <maven.compiler.target>1.7</maven.compiler.target> - <maven.dependency.version>3.5.3</maven.dependency.version> - <commons.componentid>commons-release-plugin</commons.componentid> - <commons.jira.id>COMMONSSITE</commons.jira.id> - <commons.jira.pid>12310466&amp;component=12312401</commons.jira.pid> - <commons.release.version>${project.version}</commons.release.version> - <commons.rc.version>RC1</commons.rc.version> - <commons.site.path>commons-release-plugin</commons.site.path> - <commons.manifestfile/> - <commons.scmPubUrl> - https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${commons.site.path} - </commons.scmPubUrl> - <commons.scmPubCheckoutDirectory>site-content</commons.scmPubCheckoutDirectory> - <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version> - <checkstyle.version>6.19</checkstyle.version> - <maven-scm.version>1.9.5</maven-scm.version> - <commons.jacoco.version>0.8.0</commons.jacoco.version> - <commons.jacoco.classRatio>0.1</commons.jacoco.classRatio> - <commons.jacoco.instructionRatio>0.1</commons.jacoco.instructionRatio> - <commons.jacoco.methodRatio>0.1</commons.jacoco.methodRatio> - <commons.jacoco.branchRatio>0.1</commons.jacoco.branchRatio> - <commons.jacoco.lineRatio>0.1</commons.jacoco.lineRatio> - <commons.jacoco.complexityRatio>0.1</commons.jacoco.complexityRatio> - <commons.jacoco.haltOnFailure>true</commons.jacoco.haltOnFailure> - <commons.encoding>iso-8859-1</commons.encoding> - <!-- Provide the Javadoc HTML file encoding --> - <commons.docEncoding>${commons.encoding}</commons.docEncoding> - <!-- Define source encoding for filtering; used by general plugins --> - <project.build.sourceEncoding>${commons.encoding}</project.build.sourceEncoding> - <!-- This is used by reporting plugins --> - <project.reporting.outputEncoding>${commons.encoding}</project.reporting.outputEncoding> - </properties> + <properties> + <maven.compiler.source>1.7</maven.compiler.source> + <maven.compiler.target>1.7</maven.compiler.target> + <maven.dependency.version>3.5.3</maven.dependency.version> + <commons.componentid>commons-release-plugin</commons.componentid> + <commons.jira.id>COMMONSSITE</commons.jira.id> + <commons.jira.pid>12310466&amp;component=12312401</commons.jira.pid> + <commons.release.version>${project.version}</commons.release.version> + <commons.rc.version>RC1</commons.rc.version> + <commons.site.path>commons-release-plugin</commons.site.path> + <commons.manifestfile/> + <commons.scmPubUrl> + https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${commons.site.path} + </commons.scmPubUrl> + <commons.scmPubCheckoutDirectory>site-content</commons.scmPubCheckoutDirectory> + <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version> + <checkstyle.version>6.19</checkstyle.version> + <maven-scm.version>1.9.5</maven-scm.version> + <commons.jacoco.version>0.8.0</commons.jacoco.version> + <commons.jacoco.classRatio>0.1</commons.jacoco.classRatio> + <commons.jacoco.instructionRatio>0.1</commons.jacoco.instructionRatio> + <commons.jacoco.methodRatio>0.1</commons.jacoco.methodRatio> + <commons.jacoco.branchRatio>0.1</commons.jacoco.branchRatio> + <commons.jacoco.lineRatio>0.1</commons.jacoco.lineRatio> + <commons.jacoco.complexityRatio>0.1</commons.jacoco.complexityRatio> + <commons.jacoco.haltOnFailure>true</commons.jacoco.haltOnFailure> + <commons.encoding>iso-8859-1</commons.encoding> + <!-- Provide the Javadoc HTML file encoding --> + <commons.docEncoding>${commons.encoding}</commons.docEncoding> + <!-- Define source encoding for filtering; used by general plugins --> + <project.build.sourceEncoding>${commons.encoding}</project.build.sourceEncoding> + <!-- This is used by reporting plugins --> + <project.reporting.outputEncoding>${commons.encoding}</project.reporting.outputEncoding> + </properties> - <dependencies> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>2.6</version> - </dependency> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-core</artifactId> - <version>${maven.dependency.version}</version> - </dependency> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-plugin-api</artifactId> - <version>${maven.dependency.version}</version> - </dependency> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-artifact</artifactId> - <version>${maven.dependency.version}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.apache.maven.plugin-tools</groupId> - <artifactId>maven-plugin-annotations</artifactId> - <version>3.5.1</version> - </dependency> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-artifact</artifactId> - <version>${maven.dependency.version}</version> - </dependency> - <dependency> - <groupId>org.apache.maven.scm</groupId> - <artifactId>maven-scm-api</artifactId> - <version>${maven-scm.version}</version> - </dependency> - <dependency> - <groupId>org.apache.maven.scm</groupId> - <artifactId>maven-scm-provider-svnexe</artifactId> - <version>${maven-scm.version}</version> - </dependency> - <dependency> - <groupId>org.apache.maven.scm</groupId> - <artifactId>maven-scm-provider-svn-commons</artifactId> - <version>${maven-scm.version}</version> - </dependency> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - <version>1.11</version> - </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-compress</artifactId> - <version>1.16.1</version> - </dependency> - <dependency> - <groupId>org.apache.maven.plugin-testing</groupId> - <artifactId>maven-plugin-testing-harness</artifactId> - <version>3.3.0</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-compat</artifactId> - <version>${maven.dependency.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.12</version> - <scope>test</scope> - </dependency> - <!-- A bit of jar-hell requires this to come last. --> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-script-ant</artifactId> - <version>2.2.1</version> - </dependency> - </dependencies> + <dependencies> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>2.6</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-core</artifactId> + <version>${maven.dependency.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-api</artifactId> + <version>${maven.dependency.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>${maven.dependency.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.plugin-tools</groupId> + <artifactId>maven-plugin-annotations</artifactId> + <version>3.5.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>${maven.dependency.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.scm</groupId> + <artifactId>maven-scm-api</artifactId> + <version>${maven-scm.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.scm</groupId> + <artifactId>maven-scm-provider-svnexe</artifactId> + <version>${maven-scm.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.scm</groupId> + <artifactId>maven-scm-provider-svn-commons</artifactId> + <version>${maven-scm.version}</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.11</version> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-compress</artifactId> + <version>1.16.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven.plugin-testing</groupId> + <artifactId>maven-plugin-testing-harness</artifactId> + <version>3.3.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-compat</artifactId> + <version>${maven.dependency.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + <!-- A bit of jar-hell requires this to come last. --> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-script-ant</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.velocity</groupId> + <artifactId>velocity-engine-core</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-velocity</artifactId> + <version>1.1.8</version> + <exclusions> + <exclusion> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </exclusion> + <exclusion> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </exclusion> + <exclusion> + <groupId>velocity</groupId> + <artifactId>velocity</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + + <build> + <defaultGoal>clean verify apache-rat:check clirr:check checkstyle:check findbugs:check javadoc:javadoc + </defaultGoal> + <resources> + <resource> + <directory>src/main/resources</directory> + <targetPath>resources</targetPath> + </resource> + <resource> + <directory>${basedir}</directory> + <targetPath>META-INF</targetPath> + <includes> + <include>NOTICE.txt</include> + <include>LICENSE.txt</include> + </includes> + </resource> + </resources> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <configuration> + <excludes> + <exclude>site-content/**</exclude> + <exclude>src/site/resources/download_lang.cgi</exclude> + <exclude>src/test/resources/stringEscapeUtilsTestData.txt</exclude> + <exclude>src/site/resources/release-notes/RELEASE-NOTES-*.txt</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </pluginManagement> + <plugins> - <build> - <defaultGoal>clean verify apache-rat:check clirr:check checkstyle:check findbugs:check javadoc:javadoc - </defaultGoal> - <resources> - <resource> - <directory>src/main/resources</directory> - <targetPath>resources</targetPath> - </resource> - <resource> - <directory>${basedir}</directory> - <targetPath>META-INF</targetPath> - <includes> - <include>NOTICE.txt</include> - <include>LICENSE.txt</include> - </includes> - </resource> - </resources> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.rat</groupId> - <artifactId>apache-rat-plugin</artifactId> - <configuration> - <excludes> - <exclude>site-content/**</exclude> - <exclude>src/site/resources/download_lang.cgi</exclude> - <exclude>src/test/resources/stringEscapeUtilsTestData.txt</exclude> - <exclude>src/site/resources/release-notes/RELEASE-NOTES-*.txt</exclude> - </excludes> - </configuration> - </plugin> - </plugins> - </pluginManagement> - <plugins> - <plugin> <artifactId>maven-plugin-plugin</artifactId> <version>3.5.1</version> @@ -239,456 +265,457 @@ <configuration> <goalPrefix>commons-release</goalPrefix> </configuration> - + </plugin> - - <plugin> - <groupId>org.apache.commons</groupId> - <artifactId>commons-build-plugin</artifactId> - <version>1.8</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>${commons.javadoc.version}</version> - <configuration> - <!-- keep only errors and warnings --> - <show>private</show> - <quiet>true</quiet> - <encoding>${commons.encoding}</encoding> - <notimestamp>true</notimestamp> - <links> - <link>${commons.javadoc.java.link}</link> - <link>${commons.javadoc.javaee.link}</link> - </links> - <archive> - <manifest> - <addDefaultImplementationEntries>true</addDefaultImplementationEntries> - <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> - </manifest> - </archive> - </configuration> - </plugin> - <plugin> - <artifactId>maven-checkstyle-plugin</artifactId> - <version>${checkstyle.plugin.version}</version> - <configuration> - <configLocation>${basedir}/checkstyle.xml</configLocation> - <headerLocation>${basedir}/license-header.txt</headerLocation> - <suppressionsLocation>${basedir}/checkstyle-suppressions.xml</suppressionsLocation> - <suppressionsFileExpression>${basedir}/checkstyle-suppressions.xml</suppressionsFileExpression> - <includeTestSourceDirectory>true</includeTestSourceDirectory> - </configuration> - <executions> - <execution> - <id>validate</id> - <phase>validate</phase> - <goals> - <goal>check</goal> - </goals> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>com.puppycrawl.tools</groupId> - <artifactId>checkstyle</artifactId> - <version>${checkstyle.version}</version> - </dependency> - </dependencies> - </plugin> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <configuration> - <descriptors> - <descriptor>src/assembly/bin.xml</descriptor> - <descriptor>src/assembly/src.xml</descriptor> - </descriptors> - <tarLongFileMode>gnu</tarLongFileMode> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>findbugs-maven-plugin</artifactId> - <!-- Use version from parent pom as that is adjusted according to the Java version used to run Maven --> - <version>${commons.findbugs.version}</version> - <configuration> - <excludeFilterFile>${basedir}/fb-excludes.xml</excludeFilterFile> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-scm-publish-plugin</artifactId> - <configuration> - <ignorePathsToDelete> - <ignorePathToDelete>javadocs</ignorePathToDelete> - </ignorePathsToDelete> - </configuration> - </plugin> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${commons.jacoco.version}</version> - <!-- Note that since JaCoCo relies on an agent to perform tests, - it changes the surefire arguments line. If a component also - needs to change the argument line of maven-surefire-plugin, - then it must add ${argLine} property (which is set by JaCoCo) - in the argLine configuration element of maven-surefire-plugin - to preserve JaCoCo settings. --> - <executions> - <execution> - <id>prepare-agent</id> - <phase>process-test-classes</phase> - <goals> - <goal>prepare-agent</goal> - </goals> - </execution> - <execution> - <id>report</id> - <phase>site</phase> - <goals> - <goal>report</goal> - </goals> - </execution> - <execution> - <id>check</id> - <goals> - <goal>check</goal> - </goals> - <configuration> - <rules> - <rule> - <element>BUNDLE</element> - <limits> - <limit> - <counter>CLASS</counter> - <value>COVEREDRATIO</value> - <minimum>${commons.jacoco.classRatio}</minimum> - </limit> - <limit> - <counter>INSTRUCTION</counter> - <value>COVEREDRATIO</value> - <minimum>${commons.jacoco.instructionRatio}</minimum> - </limit> - <limit> - <counter>METHOD</counter> - <value>COVEREDRATIO</value> - <minimum>${commons.jacoco.methodRatio}</minimum> - </limit> - <limit> - <counter>BRANCH</counter> - <value>COVEREDRATIO</value> - <minimum>${commons.jacoco.branchRatio}</minimum> - </limit> - <limit> - <counter>LINE</counter> - <value>COVEREDRATIO</value> - <minimum>${commons.jacoco.lineRatio}</minimum> - </limit> - <limit> - <counter>COMPLEXITY</counter> - <value>COVEREDRATIO</value> - <minimum>${commons.jacoco.complexityRatio}</minimum> - </limit> - </limits> - </rule> - </rules> - <haltOnFailure>${commons.jacoco.haltOnFailure}</haltOnFailure> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.commons</groupId> - <artifactId>commons-release-plugin</artifactId> - <version>1.1</version> + + <plugin> + <groupId>org.apache.commons</groupId> + <artifactId>commons-build-plugin</artifactId> + <version>1.8</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${commons.javadoc.version}</version> + <configuration> + <!-- keep only errors and warnings --> + <show>private</show> + <quiet>true</quiet> + <encoding>${commons.encoding}</encoding> + <notimestamp>true</notimestamp> + <links> + <link>${commons.javadoc.java.link}</link> + <link>${commons.javadoc.javaee.link}</link> + </links> + <archive> + <manifest> + <addDefaultImplementationEntries>true</addDefaultImplementationEntries> + <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> + </manifest> + </archive> + </configuration> + </plugin> + <plugin> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>${checkstyle.plugin.version}</version> + <configuration> + <configLocation>${basedir}/checkstyle.xml</configLocation> + <headerLocation>${basedir}/license-header.txt</headerLocation> + <suppressionsLocation>${basedir}/checkstyle-suppressions.xml</suppressionsLocation> + <suppressionsFileExpression>${basedir}/checkstyle-suppressions.xml</suppressionsFileExpression> + <includeTestSourceDirectory>true</includeTestSourceDirectory> + </configuration> + <executions> + <execution> + <id>validate</id> + <phase>validate</phase> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>com.puppycrawl.tools</groupId> + <artifactId>checkstyle</artifactId> + <version>${checkstyle.version}</version> + </dependency> + </dependencies> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <descriptors> + <descriptor>src/assembly/bin.xml</descriptor> + <descriptor>src/assembly/src.xml</descriptor> + </descriptors> + <tarLongFileMode>gnu</tarLongFileMode> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <!-- Use version from parent pom as that is adjusted according to the Java version used to run Maven --> + <version>${commons.findbugs.version}</version> + <configuration> + <excludeFilterFile>${basedir}/fb-excludes.xml</excludeFilterFile> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-scm-publish-plugin</artifactId> + <configuration> + <ignorePathsToDelete> + <ignorePathToDelete>javadocs</ignorePathToDelete> + </ignorePathsToDelete> + </configuration> + </plugin> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${commons.jacoco.version}</version> + <!-- Note that since JaCoCo relies on an agent to perform tests, + it changes the surefire arguments line. If a component also + needs to change the argument line of maven-surefire-plugin, + then it must add ${argLine} property (which is set by JaCoCo) + in the argLine configuration element of maven-surefire-plugin + to preserve JaCoCo settings. --> + <executions> + <execution> + <id>prepare-agent</id> + <phase>process-test-classes</phase> + <goals> + <goal>prepare-agent</goal> + </goals> + </execution> + <execution> + <id>report</id> + <phase>site</phase> + <goals> + <goal>report</goal> + </goals> + </execution> + <execution> + <id>check</id> + <goals> + <goal>check</goal> + </goals> + <configuration> + <rules> + <rule> + <element>BUNDLE</element> + <limits> + <limit> + <counter>CLASS</counter> + <value>COVEREDRATIO</value> + <minimum>${commons.jacoco.classRatio}</minimum> + </limit> + <limit> + <counter>INSTRUCTION</counter> + <value>COVEREDRATIO</value> + <minimum>${commons.jacoco.instructionRatio}</minimum> + </limit> + <limit> + <counter>METHOD</counter> + <value>COVEREDRATIO</value> + <minimum>${commons.jacoco.methodRatio}</minimum> + </limit> + <limit> + <counter>BRANCH</counter> + <value>COVEREDRATIO</value> + <minimum>${commons.jacoco.branchRatio}</minimum> + </limit> + <limit> + <counter>LINE</counter> + <value>COVEREDRATIO</value> + <minimum>${commons.jacoco.lineRatio}</minimum> + </limit> + <limit> + <counter>COMPLEXITY</counter> + <value>COVEREDRATIO</value> + <minimum>${commons.jacoco.complexityRatio}</minimum> + </limit> + </limits> + </rule> + </rules> + <haltOnFailure>${commons.jacoco.haltOnFailure}</haltOnFailure> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.commons</groupId> + <artifactId>commons-release-plugin</artifactId> + <version>1.1</version> + <configuration> + <distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/commons-release-plugin + </distSvnStagingUrl> + </configuration> + <executions> + <execution> + <id>detatch-distributions</id> + <phase>verify</phase> + <goals> + <goal>detach-distributions</goal> + </goals> + </execution> + <execution> + <id>compress-site</id> + <phase>site</phase> + <goals> + <goal>compress-site</goal> + </goals> + </execution> + <execution> + <id>stage-distributions</id> + <phase>deploy</phase> + <goals> + <goal>stage-distributions</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + <reporting> + <plugins> + <!-- exclude surefire report --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + <reportSets> + <reportSet/> + </reportSets> + </plugin> + + <!-- exclude jdepend report --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>jdepend-maven-plugin</artifactId> + <reportSets> + <reportSet/> + </reportSets> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${commons.javadoc.version}</version> + <configuration> + <!-- keep only errors and warnings --> + <show>private</show> + <quiet>true</quiet> + <encoding>${commons.encoding}</encoding> + <notimestamp>true</notimestamp> + <links> + <link>${commons.javadoc.java.link}</link> + <link>${commons.javadoc.javaee.link}</link> + </links> + <archive> + <manifest> + <addDefaultImplementationEntries>true</addDefaultImplementationEntries> + <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> + </manifest> + </archive> + </configuration> + </plugin> + <plugin> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>${checkstyle.plugin.version}</version> + <configuration> + <enableRulesSummary>false</enableRulesSummary> + <configLocation>${basedir}/checkstyle.xml</configLocation> + <headerLocation>${basedir}/license-header.txt</headerLocation> + <suppressionsLocation>${basedir}/checkstyle-suppressions.xml</suppressionsLocation> + <suppressionsFileExpression>${basedir}/checkstyle-suppressions.xml</suppressionsFileExpression> + <includeTestSourceDirectory>true</includeTestSourceDirectory> + </configuration> + <reportSets> + <reportSet> + <reports> + <report>checkstyle</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <!-- Requires setting 'export MAVEN_OPTS="-Xmx512m" ' --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <!-- Use version from parent pom as that is adjusted according to the Java version used to run Maven --> + <version>${commons.findbugs.version}</version> + <configuration> + <excludeFilterFile>${basedir}/fb-excludes.xml</excludeFilterFile> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>clirr-maven-plugin</artifactId> + <configuration> + <minSeverity>info</minSeverity> + </configuration> + </plugin> + <plugin> + <artifactId>maven-pmd-plugin</artifactId> + <version>3.9.0</version> + <configuration> + <targetJdk>${maven.compiler.target}</targetJdk> + </configuration> + <reportSets> + <reportSet> + <reports> + <report>pmd</report> + <report>cpd</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>taglist-maven-plugin</artifactId> + <version>2.4</version> + <configuration> + <tagListOptions> + <tagClasses> + <tagClass> + <displayName>Needs Work</displayName> + <tags> + <tag> + <matchString>TODO</matchString> + <matchType>exact</matchType> + </tag> + <tag> + <matchString>FIXME</matchString> + <matchType>exact</matchType> + </tag> + <tag> + <matchString>XXX</matchString> + <matchType>exact</matchType> + </tag> + </tags> + </tagClass> + <tagClass> + <displayName>Noteable Markers</displayName> + <tags> + <tag> + <matchString>NOTE</matchString> + <matchType>exact</matchType> + </tag> + <tag> + <matchString>NOPMD</matchString> + <matchType>exact</matchType> + </tag> + <tag> + <matchString>NOSONAR</matchString> + <matchType>exact</matchType> + </tag> + </tags> + </tagClass> + </tagClasses> + </tagListOptions> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>javancss-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${commons.jacoco.version}</version> + </plugin> + </plugins> + </reporting> + + <profiles> + <profile> + <id>setup-checkout</id> + <activation> + <file> + <missing>site-content</missing> + </file> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>prepare-checkout</id> + <goals> + <goal>run</goal> + </goals> + <phase>pre-site</phase> <configuration> - <distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/commons-release-plugin</distSvnStagingUrl> + <tasks> + <exec executable="svn"> + <arg line="checkout --depth immediates ${commons.scmPubUrl} ${commons.scmPubCheckoutDirectory}"/> + </exec> + + <exec executable="svn"> + <arg line="update --set-depth exclude ${commons.scmPubCheckoutDirectory}/javadocs"/> + </exec> + + <pathconvert pathsep=" " property="dirs"> + <dirset dir="${commons.scmPubCheckoutDirectory}" includes="*"/> + </pathconvert> + <exec executable="svn"> + <arg line="update --set-depth infinity ${dirs}"/> + </exec> + </tasks> </configuration> - <executions> - <execution> - <id>detatch-distributions</id> - <phase>verify</phase> - <goals> - <goal>detach-distributions</goal> - </goals> - </execution> - <execution> - <id>compress-site</id> - <phase>site</phase> - <goals> - <goal>compress-site</goal> - </goals> - </execution> - <execution> - <id>stage-distributions</id> - <phase>deploy</phase> - <goals> - <goal>stage-distributions</goal> - </goals> - </execution> - </executions> - </plugin> + </execution> + </executions> + </plugin> </plugins> - </build> - <reporting> + </build> + </profile> + <profile> + <id>release</id> + <build> <plugins> - <!-- exclude surefire report --> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - <reportSets> - <reportSet/> - </reportSets> - </plugin> - - <!-- exclude jdepend report --> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>jdepend-maven-plugin</artifactId> - <reportSets> - <reportSet/> - </reportSets> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>${commons.javadoc.version}</version> - <configuration> - <!-- keep only errors and warnings --> - <show>private</show> - <quiet>true</quiet> - <encoding>${commons.encoding}</encoding> - <notimestamp>true</notimestamp> - <links> - <link>${commons.javadoc.java.link}</link> - <link>${commons.javadoc.javaee.link}</link> - </links> - <archive> - <manifest> - <addDefaultImplementationEntries>true</addDefaultImplementationEntries> - <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> - </manifest> - </archive> - </configuration> - </plugin> - <plugin> - <artifactId>maven-checkstyle-plugin</artifactId> - <version>${checkstyle.plugin.version}</version> - <configuration> - <enableRulesSummary>false</enableRulesSummary> - <configLocation>${basedir}/checkstyle.xml</configLocation> - <headerLocation>${basedir}/license-header.txt</headerLocation> - <suppressionsLocation>${basedir}/checkstyle-suppressions.xml</suppressionsLocation> - <suppressionsFileExpression>${basedir}/checkstyle-suppressions.xml</suppressionsFileExpression> - <includeTestSourceDirectory>true</includeTestSourceDirectory> - </configuration> - <reportSets> - <reportSet> - <reports> - <report>checkstyle</report> - </reports> - </reportSet> - </reportSets> - </plugin> - <!-- Requires setting 'export MAVEN_OPTS="-Xmx512m" ' --> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>findbugs-maven-plugin</artifactId> - <!-- Use version from parent pom as that is adjusted according to the Java version used to run Maven --> - <version>${commons.findbugs.version}</version> - <configuration> - <excludeFilterFile>${basedir}/fb-excludes.xml</excludeFilterFile> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>clirr-maven-plugin</artifactId> - <configuration> - <minSeverity>info</minSeverity> - </configuration> - </plugin> - <plugin> - <artifactId>maven-pmd-plugin</artifactId> - <version>3.9.0</version> - <configuration> - <targetJdk>${maven.compiler.target}</targetJdk> - </configuration> - <reportSets> - <reportSet> - <reports> - <report>pmd</report> - <report>cpd</report> - </reports> - </reportSet> - </reportSets> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>taglist-maven-plugin</artifactId> - <version>2.4</version> - <configuration> - <tagListOptions> - <tagClasses> - <tagClass> - <displayName>Needs Work</displayName> - <tags> - <tag> - <matchString>TODO</matchString> - <matchType>exact</matchType> - </tag> - <tag> - <matchString>FIXME</matchString> - <matchType>exact</matchType> - </tag> - <tag> - <matchString>XXX</matchString> - <matchType>exact</matchType> - </tag> - </tags> - </tagClass> - <tagClass> - <displayName>Noteable Markers</displayName> - <tags> - <tag> - <matchString>NOTE</matchString> - <matchType>exact</matchType> - </tag> - <tag> - <matchString>NOPMD</matchString> - <matchType>exact</matchType> - </tag> - <tag> - <matchString>NOSONAR</matchString> - <matchType>exact</matchType> - </tag> - </tags> - </tagClass> - </tagClasses> - </tagListOptions> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>javancss-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${commons.jacoco.version}</version> - </plugin> + <!-- We want to sign the artifact, the POM, and all attached artifacts --> + <plugin> + <artifactId>maven-gpg-plugin</artifactId> + <executions> + <execution> + <id>sign-artifacts</id> + <phase>verify</phase> + <goals> + <goal>sign</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-install-plugin</artifactId> + <configuration> + <createChecksum>true</createChecksum> + </configuration> + </plugin> + <plugin> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <!-- Pass these arguments to the deploy plugin. --> + <arguments>-Prelease</arguments> + </configuration> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>create-javadoc-jar</id> + <goals> + <goal>javadoc</goal> + </goals> + <phase>package</phase> + </execution> + </executions> + <configuration> + <source>${maven.compiler.source}</source> + </configuration> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <inherited>true</inherited> + <executions> + <execution> + <goals> + <goal>single</goal> + </goals> + <!-- COMMONSSITE-87 Ensure this runs after all package phase plugins --> + <phase>verify</phase> + </execution> + </executions> + </plugin> </plugins> - </reporting> - - <profiles> - <profile> - <id>setup-checkout</id> - <activation> - <file> - <missing>site-content</missing> - </file> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>prepare-checkout</id> - <goals> - <goal>run</goal> - </goals> - <phase>pre-site</phase> - <configuration> - <tasks> - <exec executable="svn"> - <arg line="checkout --depth immediates ${commons.scmPubUrl} ${commons.scmPubCheckoutDirectory}"/> - </exec> - - <exec executable="svn"> - <arg line="update --set-depth exclude ${commons.scmPubCheckoutDirectory}/javadocs"/> - </exec> - - <pathconvert pathsep=" " property="dirs"> - <dirset dir="${commons.scmPubCheckoutDirectory}" includes="*"/> - </pathconvert> - <exec executable="svn"> - <arg line="update --set-depth infinity ${dirs}"/> - </exec> - </tasks> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>release</id> - <build> - <plugins> - <!-- We want to sign the artifact, the POM, and all attached artifacts --> - <plugin> - <artifactId>maven-gpg-plugin</artifactId> - <executions> - <execution> - <id>sign-artifacts</id> - <phase>verify</phase> - <goals> - <goal>sign</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <artifactId>maven-install-plugin</artifactId> - <configuration> - <createChecksum>true</createChecksum> - </configuration> - </plugin> - <plugin> - <artifactId>maven-release-plugin</artifactId> - <configuration> - <!-- Pass these arguments to the deploy plugin. --> - <arguments>-Prelease</arguments> - </configuration> - </plugin> - <plugin> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>create-javadoc-jar</id> - <goals> - <goal>javadoc</goal> - </goals> - <phase>package</phase> - </execution> - </executions> - <configuration> - <source>${maven.compiler.source}</source> - </configuration> - </plugin> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <inherited>true</inherited> - <executions> - <execution> - <goals> - <goal>single</goal> - </goals> - <!-- COMMONSSITE-87 Ensure this runs after all package phase plugins --> - <phase>verify</phase> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>test-deploy</id> - <properties> - <altDeploymentRepository>id::default::file:target/deploy</altDeploymentRepository> - </properties> - </profile> - </profiles> + </build> + </profile> + <profile> + <id>test-deploy</id> + <properties> + <altDeploymentRepository>id::default::file:target/deploy</altDeploymentRepository> + </properties> + </profile> + </profiles> </project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/main/java/org/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate.java b/src/main/java/org/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate.java new file mode 100644 index 0000000..acdad16 --- /dev/null +++ b/src/main/java/org/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate.java @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.release.plugin.velocity; + +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; + +import java.io.Writer; + +/** + * This class' purpose is to generate the <code>HEADER.html</code> that moves along with the + * release for the sake of downloading the release from the distribution area. + * + * @author chtompki + * @since 1.3 + */ +public class HeaderHtmlVelocityDelegate { + + /** + * The location of the velocity tempate for this class. + */ + private static final String TEMPLATE = "HEADER.vm"; + + /** + * The private constructor to be used by the {@link HeaderHtmlVelocityDelegateBuilder}. + */ + private HeaderHtmlVelocityDelegate() { + super(); + } + + /** + * For instantiating our {@link HeaderHtmlVelocityDelegate} using the {@link HeaderHtmlVelocityDelegateBuilder}. + * + * @return a {@link HeaderHtmlVelocityDelegateBuilder}. + */ + public static HeaderHtmlVelocityDelegateBuilder builder() { + return new HeaderHtmlVelocityDelegateBuilder(); + } + + /** + * Builds the HEADER.vm velocity template to the writer passed in. + * + * @param writer any {@link Writer} that we wish to have the filled velocity template written to. + * @return the {@link Writer} that we've filled out the template into. + */ + public Writer render(Writer writer) { + Velocity.init(); + Template template = Velocity.getTemplate(TEMPLATE); + VelocityContext context = new VelocityContext(); + template.merge(context, writer); + return writer; + } + + /** + * A builder class for instantiation of the {@link HeaderHtmlVelocityDelegate}. + */ + private static class HeaderHtmlVelocityDelegateBuilder { + + /** + * Builds up the {@link ReadmeHtmlVelocityDelegate} from the previously set parameters. + * @return a new {@link ReadmeHtmlVelocityDelegate}. + */ + public HeaderHtmlVelocityDelegate build() { + return new HeaderHtmlVelocityDelegate(); + } + } +} http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/main/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate.java b/src/main/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate.java new file mode 100644 index 0000000..6910323 --- /dev/null +++ b/src/main/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate.java @@ -0,0 +1,149 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.release.plugin.velocity; + +import org.apache.commons.lang3.StringUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; + +import java.io.Writer; + +/** + * This class' purpose is to generate the <code>README.html</code> that moves along with the + * release for the sake of downloading the release from the distribution area. + * + * @author chtompki + * @since 1.3 + */ +public class ReadmeHtmlVelocityDelegate { + /** The location of the velocity template for this class. */ + private static final String TEMPLATE = "README.vm"; + /** This is supposed to represent the maven artifactId. */ + private String artifactId; + /** This is supposed to represent the maven version of the release. */ + private String version; + /** The url of the site that gets set into the <code>README.html</code>. */ + private String siteUrl; + + /** + * The private constructor to be used by the {@link ReadmeHtmlVelocityDelegateBuilder}. + * + * @param artifactId sets the {@link ReadmeHtmlVelocityDelegate#artifactId}. + * @param version sets the {@link ReadmeHtmlVelocityDelegate#version}. + * @param siteUrl sets the {@link ReadmeHtmlVelocityDelegate#siteUrl}. + */ + private ReadmeHtmlVelocityDelegate(String artifactId, String version, String siteUrl) { + this.artifactId = artifactId; + this.version = version; + this.siteUrl = siteUrl; + } + + /** + * Gets the {@link ReadmeHtmlVelocityDelegateBuilder} for constructing the {@link ReadmeHtmlVelocityDelegate}. + * + * @return the {@link ReadmeHtmlVelocityDelegateBuilder}. + */ + public static ReadmeHtmlVelocityDelegateBuilder builder() { + return new ReadmeHtmlVelocityDelegateBuilder(); + } + + /** + * Renders the <code>README.vm</code> velocity template with the variables constructed with the + * {@link ReadmeHtmlVelocityDelegateBuilder}. + * + * @param writer is the {@link Writer} to which we wish to render the <code>README.vm</code> template. + * @return a reference to the {@link Writer} passed in. + */ + public Writer render(Writer writer) { + String[] splitArtifactId = artifactId.split("-"); + String wordCommons = splitArtifactId[0]; + String artifactShortName = splitArtifactId[1]; + String artifactIdWithFirstLetterscapitalized = + StringUtils.capitalize(wordCommons) + + "-" + + artifactShortName.toUpperCase(); + Velocity.init(); + Template template = Velocity.getTemplate(TEMPLATE); + VelocityContext context = new VelocityContext(); + context.internalPut("artifactIdWithFirstLetterscapitalized", artifactIdWithFirstLetterscapitalized); + context.internalPut("artifactShortName", artifactShortName.toUpperCase()); + context.internalPut("artifactId", artifactId); + context.internalPut("version", version); + context.internalPut("siteUrl", siteUrl); + template.merge(context, writer); + return writer; + } + + /** + * A builder class for instantiation of the {@link ReadmeHtmlVelocityDelegate}. + */ + public static class ReadmeHtmlVelocityDelegateBuilder { + /** The maven artifactId to use in the <code>README.vm</code> template. */ + private String artifactId; + /** The maven version to use in the <code>README.vm</code> template. */ + private String version; + /** The site url to use in the <code>README.vm</code> template. */ + private String siteUrl; + + /** + * Private constructor for using the builder through the {@link ReadmeHtmlVelocityDelegate#builder()} + * method. + */ + private ReadmeHtmlVelocityDelegateBuilder() { + super(); + } + + /** + * Adds the artifactId to the {@link ReadmeHtmlVelocityDelegate}. + * @param artifactId the {@link String} representing the maven artifactId. + * @return the builder to continue building. + */ + public ReadmeHtmlVelocityDelegateBuilder withArtifactId(String artifactId) { + this.artifactId = artifactId; + return this; + } + + /** + * Adds the version to the {@link ReadmeHtmlVelocityDelegate}. + * @param version the maven version. + * @return the builder to continue building. + */ + public ReadmeHtmlVelocityDelegateBuilder withVersion(String version) { + this.version = version; + return this; + } + + /** + * Adds the siteUrl to the {@link ReadmeHtmlVelocityDelegate}. + * @param siteUrl the site url to be used in the <code>README.html</code> + * @return the builder to continue building. + */ + public ReadmeHtmlVelocityDelegateBuilder withSiteUrl(String siteUrl) { + this.siteUrl = siteUrl; + return this; + } + + /** + * Builds up the {@link ReadmeHtmlVelocityDelegate} from the previously set parameters. + * @return a new {@link ReadmeHtmlVelocityDelegate}. + */ + public ReadmeHtmlVelocityDelegate build() { + return new ReadmeHtmlVelocityDelegate(this.artifactId, this.version, this.siteUrl); + } + } +} http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/main/java/org/apache/commons/release/plugin/velocity/package-info.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/release/plugin/velocity/package-info.java b/src/main/java/org/apache/commons/release/plugin/velocity/package-info.java new file mode 100644 index 0000000..6983ad6 --- /dev/null +++ b/src/main/java/org/apache/commons/release/plugin/velocity/package-info.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Contains classes that take our velocity templates and render's them to a {@link java.io.Writer} + * class. + * + * The main reason for velocity tempates are to fill out the + * <ul> + * <li><code>HEADER.html</code></li> + * <li><code>README.html</code></li> + * </ul> + * That get deployed along side + */ +package org.apache.commons.release.plugin.velocity; http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/main/resources/META-INF/plexus/components.xml ---------------------------------------------------------------------- diff --git a/src/main/resources/META-INF/plexus/components.xml b/src/main/resources/META-INF/plexus/components.xml new file mode 100644 index 0000000..e58557c --- /dev/null +++ b/src/main/resources/META-INF/plexus/components.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<component-set> + <components> + <component> + <role>org.codehaus.plexus.velocity.VelocityComponent</role> + <role-hint>maven-changes-plugin</role-hint> + <implementation>org.codehaus.plexus.velocity.DefaultVelocityComponent</implementation> + <configuration> + <properties> + <property> + <name>resource.loader</name> + <value>file,class</value> + </property> + <property> + <name>class.resource.loader.class</name> + <value>org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</value> + </property> + <property> + <name>file.resource.loader.class</name> + <value>org.apache.maven.plugins.resource.loader.ProjectResourceLoader</value> + </property> + </properties> + </configuration> + </component> + </components> +</component-set> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/main/resources/org/apache/commons/release/plugin/velocity/HEADER.vm ---------------------------------------------------------------------- diff --git a/src/main/resources/org/apache/commons/release/plugin/velocity/HEADER.vm b/src/main/resources/org/apache/commons/release/plugin/velocity/HEADER.vm new file mode 100644 index 0000000..a470914 --- /dev/null +++ b/src/main/resources/org/apache/commons/release/plugin/velocity/HEADER.vm @@ -0,0 +1,15 @@ +<h2>Apache Commons Project Distributions</h2> + +<p> + The most recent source and binary releases for the Apache Commons project are available from this + directory listing. For older releases, please use the + <a href="http://archive.apache.org/dist/commons/">archives</a>. +</p> + +<h2>Important Notices</h2> + +<ul> + <li><a href="#mirrors">Download from your nearest mirror site!</a></li> + <li><a href="#sig">PGP/GPG Signatures</a></li> +</ul> + http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/main/resources/org/apache/commons/release/plugin/velocity/README.vm ---------------------------------------------------------------------- diff --git a/src/main/resources/org/apache/commons/release/plugin/velocity/README.vm b/src/main/resources/org/apache/commons/release/plugin/velocity/README.vm new file mode 100644 index 0000000..517cd7c --- /dev/null +++ b/src/main/resources/org/apache/commons/release/plugin/velocity/README.vm @@ -0,0 +1,50 @@ +<h1>${artifactIdWithFirstLetterscapitalized} v${version}.</h1> + +<p>This is the 1.3 version of commons-text. It is available in both binary and source distributions.</p> + + +<p><font color="red" size="+2">Note:</font> + The tar files in the distribution use GNU tar extensions + and must be untarred with a GNU compatible version of tar. The version + of tar on Solaris and Mac OS X will not work with these files</p> + +<a name="changes"><h2>Changes</h2></a> + +<p>The changes in this release are detailed in the release notes.</p> + +<p>Thank you for using <a href="${siteUrl}">${artifactShortName}</a>.</p> + +<p>From the Apache Commons Project<br><a href="http://commons.apache.org/">http://commons.apache.org/</a></p> + +<h2><a name="mirrors">Download from your + <a href="http://www.apache.org/dyn/closer.cgi/commons/">nearest mirror site!</a></a></h2> + +<p> + Do not download from www.apache.org. Please use a mirror site + to help us save apache.org bandwidth. + <a href="http://www.apache.org/dyn/closer.cgi/commons/">Go + here to find your nearest mirror.</a> +</p> + +<a name="sig"><h2>Signatures</h2></a> + +<p>Many of the files have been digitally signed using GnuPG. If so, + there will be an accompanying <samp><em>file</em>.asc</samp> signature + file in the same directory as the file (binaries/ or source/). The + signing keys can be found in the distribution directory at <<a + HREF="http://www.apache.org/dist/commons/KEYS"><samp>http://www.apache.org/dist/commons/KEYS</samp></a>>.</p> + +<p><b>Always download the KEYS file directly from the Apache site, never from a mirror site.</b></p> + + +<pre>Always test available signatures, <i>e.g.</i>, +$ pgpk -a KEYS +$ pgpv ${artifactId}-${version}-bin.tar.gz.asc +or, +$ pgp -ka KEYS +$ pgp ${artifactId}-${version}-bin.tar.gz.asc +or, +$ gpg --import KEYS +$ gpg --verify ${artifactId}-${version}-bin.tar.gz.asc +</pre> +<p> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegateTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegateTest.java b/src/test/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegateTest.java new file mode 100644 index 0000000..0e7c15f --- /dev/null +++ b/src/test/java/org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegateTest.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.release.plugin.velocity; + +import org.junit.Test; + +import java.io.StringWriter; +import java.io.Writer; + +import static junit.framework.TestCase.assertTrue; + +/** + * Unit tests for {@link ReadmeHtmlVelocityDelegate}. + * + * @author chtompki + */ +public class ReadmeHtmlVelocityDelegateTest { + + @Test + public void testSuccessfulRun() { + ReadmeHtmlVelocityDelegate delegate = ReadmeHtmlVelocityDelegate.builder() + .withArtifactId("commons-text") + .withVersion("1.4") + .withSiteUrl("http://commons.apache.org/text") + .build(); + Writer writer = new StringWriter(); + writer = delegate.render(writer); + String filledOutTemplate = writer.toString(); + assertTrue(filledOutTemplate.contains("")); + } +} http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/java/org/apache/commons/release/plugin/velocity/package-info.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/release/plugin/velocity/package-info.java b/src/test/java/org/apache/commons/release/plugin/velocity/package-info.java new file mode 100644 index 0000000..0825022 --- /dev/null +++ b/src/test/java/org/apache/commons/release/plugin/velocity/package-info.java @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Contains the tests for the {@link org.apache.commons.release.plugin.velocity} + * package. + */ +package org.apache.commons.release.plugin.velocity; http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/resources/mojos/compress-site/compress-site-disabled.xml ---------------------------------------------------------------------- diff --git a/src/test/resources/mojos/compress-site/compress-site-disabled.xml b/src/test/resources/mojos/compress-site/compress-site-disabled.xml index 9bd1221..3fa070f 100644 --- a/src/test/resources/mojos/compress-site/compress-site-disabled.xml +++ b/src/test/resources/mojos/compress-site/compress-site-disabled.xml @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons.plugin.my.unit</groupId> - <artifactId>compress-site-disabled-test</artifactId> + <artifactId>commons-compresssitedisabledtest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Test MyMojo</name> http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/resources/mojos/compress-site/compress-site-failure.xml ---------------------------------------------------------------------- diff --git a/src/test/resources/mojos/compress-site/compress-site-failure.xml b/src/test/resources/mojos/compress-site/compress-site-failure.xml index ddfeee4..63b3fa5 100644 --- a/src/test/resources/mojos/compress-site/compress-site-failure.xml +++ b/src/test/resources/mojos/compress-site/compress-site-failure.xml @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons.plugin.my.unit</groupId> - <artifactId>compress-site-test-failure</artifactId> + <artifactId>commons-compresssitetestfailure</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Test MyMojo</name> http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/resources/mojos/compress-site/compress-site.xml ---------------------------------------------------------------------- diff --git a/src/test/resources/mojos/compress-site/compress-site.xml b/src/test/resources/mojos/compress-site/compress-site.xml index 065832e..815799d 100644 --- a/src/test/resources/mojos/compress-site/compress-site.xml +++ b/src/test/resources/mojos/compress-site/compress-site.xml @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons.plugin.my.unit</groupId> - <artifactId>compress-site-test</artifactId> + <artifactId>commons-compresssitetest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Test MyMojo</name> http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/resources/mojos/detach-distributions/detach-distributions-disabled.xml ---------------------------------------------------------------------- diff --git a/src/test/resources/mojos/detach-distributions/detach-distributions-disabled.xml b/src/test/resources/mojos/detach-distributions/detach-distributions-disabled.xml index a825e52..007703f 100644 --- a/src/test/resources/mojos/detach-distributions/detach-distributions-disabled.xml +++ b/src/test/resources/mojos/detach-distributions/detach-distributions-disabled.xml @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons.release.plugin.unit</groupId> - <artifactId>detach-distributions-test</artifactId> + <artifactId>commons-detachdistributionstest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Mock Pom For Testing CommonsDistributionDetachmentMojo</name> http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/resources/mojos/detach-distributions/detach-distributions.xml ---------------------------------------------------------------------- diff --git a/src/test/resources/mojos/detach-distributions/detach-distributions.xml b/src/test/resources/mojos/detach-distributions/detach-distributions.xml index a00ac0a..2a82582 100644 --- a/src/test/resources/mojos/detach-distributions/detach-distributions.xml +++ b/src/test/resources/mojos/detach-distributions/detach-distributions.xml @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons.release.plugin.unit</groupId> - <artifactId>detach-distributions-test</artifactId> + <artifactId>commons-detachdistributionstest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Mock Pom For Testing CommonsDistributionDetachmentMojo</name> http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml ---------------------------------------------------------------------- diff --git a/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml b/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml index eedc2be..0ca4ed8 100644 --- a/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml +++ b/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons.release.plugin.unit</groupId> - <artifactId>stage-distributions-test</artifactId> + <artifactId>commons-stagedistributionstest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Mock Pom For Testing CommonsDistributionStagingMojo</name> http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/0cbef206/src/test/resources/mojos/stage-distributions/stage-distributions.xml ---------------------------------------------------------------------- diff --git a/src/test/resources/mojos/stage-distributions/stage-distributions.xml b/src/test/resources/mojos/stage-distributions/stage-distributions.xml index b37c7ec..8e63d67 100644 --- a/src/test/resources/mojos/stage-distributions/stage-distributions.xml +++ b/src/test/resources/mojos/stage-distributions/stage-distributions.xml @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons.release.plugin.unit</groupId> - <artifactId>stage-distributions-test</artifactId> + <artifactId>commons-stagedistributionstest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Mock Pom For Testing CommonsDistributionStagingMojo</name>
