Author: schor Date: Mon Oct 15 20:37:32 2018 New Revision: 1843952 URL: http://svn.apache.org/viewvc?rev=1843952&view=rev Log: [UIMA-5876][UIMA-5753] updates for signatures/checksums and Java 11 enablement, details in the Jira comments. Includes patched jars and patches for two maven plugins
Added: uima/build/trunk/parent-pom/plugin-patches/ uima/build/trunk/parent-pom/plugin-patches/checksum-maven-plugin-1.8-issue-63.patch.txt uima/build/trunk/parent-pom/plugin-patches/maven-gpg-plugin-MGPG-66.patch.txt uima/build/trunk/parent-pom/src/ uima/build/trunk/parent-pom/src/resources/ uima/build/trunk/parent-pom/src/resources/checksum-maven-plugin-1.8.jar (with props) uima/build/trunk/parent-pom/src/resources/maven-gpg-plugin-1.6.jar (with props) Added: uima/build/trunk/parent-pom/plugin-patches/checksum-maven-plugin-1.8-issue-63.patch.txt URL: http://svn.apache.org/viewvc/uima/build/trunk/parent-pom/plugin-patches/checksum-maven-plugin-1.8-issue-63.patch.txt?rev=1843952&view=auto ============================================================================== --- uima/build/trunk/parent-pom/plugin-patches/checksum-maven-plugin-1.8-issue-63.patch.txt (added) +++ uima/build/trunk/parent-pom/plugin-patches/checksum-maven-plugin-1.8-issue-63.patch.txt Mon Oct 15 20:37:32 2018 @@ -0,0 +1,652 @@ +diff --git a/src/main/java/net/nicoulaj/maven/plugins/checksum/artifacts/ArtifactAttacher.java b/src/main/java/net/nicoulaj/maven/plugins/checksum/artifacts/ArtifactAttacher.java +index 1da2b10..e838514 100644 +--- a/src/main/java/net/nicoulaj/maven/plugins/checksum/artifacts/ArtifactAttacher.java ++++ b/src/main/java/net/nicoulaj/maven/plugins/checksum/artifacts/ArtifactAttacher.java +@@ -1,44 +1,53 @@ +-/* +- * checksum-maven-plugin - http://checksum-maven-plugin.nicoulaj.net +- * Copyright © 2010-2018 checksum-maven-plugin contributors +- * +- * Licensed 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 net.nicoulaj.maven.plugins.checksum.artifacts; +- +-import org.apache.maven.project.MavenProject; +-import org.apache.maven.project.MavenProjectHelper; +- +-import java.io.File; +- +-public class ArtifactAttacher implements ArtifactListener { +- private final MavenProject project; +- private final MavenProjectHelper projectHelper; +- +- public ArtifactAttacher(MavenProject project, MavenProjectHelper projectHelper) { +- this.project = project; +- this.projectHelper = projectHelper; +- } +- +- @Override +- public void artifactCreated(File artifact, String checksumType, String artifactType, String artifactClassifier) { +- if (checksumType.startsWith(".")) { +- // Project helper expects a type without leading dot (e.g. turn ".md5" into "md5"). +- checksumType = checksumType.substring(1); +- } +- +- String attachmentType = artifactType == null ? checksumType : artifactType + "." + checksumType; +- +- projectHelper.attachArtifact(project, attachmentType, artifactClassifier, artifact); +- } +-} ++/* ++ * checksum-maven-plugin - http://checksum-maven-plugin.nicoulaj.net ++ * Copyright © 2010-2018 checksum-maven-plugin contributors ++ * ++ * Licensed 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 net.nicoulaj.maven.plugins.checksum.artifacts; ++ ++import org.apache.maven.project.MavenProject; ++import org.apache.maven.project.MavenProjectHelper; ++ ++import java.io.File; ++ ++public class ArtifactAttacher implements ArtifactListener { ++ private final MavenProject project; ++ private final MavenProjectHelper projectHelper; ++ ++ public ArtifactAttacher(MavenProject project, MavenProjectHelper projectHelper) { ++ this.project = project; ++ this.projectHelper = projectHelper; ++ } ++ ++ @Override ++ public void artifactCreated(File artifact, String checksumType, String artifactType, String artifactClassifier) { ++ if (checksumType.startsWith(".")) { ++ // Project helper expects a type without leading dot (e.g. turn ".md5" into "md5"). ++ checksumType = checksumType.substring(1); ++ } ++ ++ String fileName = artifact.getName(); ++ int period1 = fileName.lastIndexOf('.'); // finds xxx.yyy.sha512 period in front of sha512 ++ int period2 = fileName.lastIndexOf('.', period1 - 1); ++ String attachmentType = fileName.substring(period2 + 1); // yyy.sha512 ++// String attachmentType = fileType + "." + checksumType; ++// System.out.println("debug artifactType: " + ((artifactType == null) ? "null" : artifactType)); ++// System.out.println("debug artifactClassifier: " + artifactClassifier); ++// System.out.println("debug checksumType: " + ((checksumType == null) ? "null" : checksumType)); ++// System.out.println("debug derived attachmentType: " + attachmentType); ++// System.out.println("debug artifact: " + artifact.getAbsolutePath()); ++ ++ projectHelper.attachArtifact(project, attachmentType, artifactClassifier, artifact); ++ } ++} +diff --git a/src/main/java/net/nicoulaj/maven/plugins/checksum/mojo/ArtifactsMojo.java b/src/main/java/net/nicoulaj/maven/plugins/checksum/mojo/ArtifactsMojo.java +index e70347e..d654ae1 100644 +--- a/src/main/java/net/nicoulaj/maven/plugins/checksum/mojo/ArtifactsMojo.java ++++ b/src/main/java/net/nicoulaj/maven/plugins/checksum/mojo/ArtifactsMojo.java +@@ -1,266 +1,285 @@ +-/* +- * checksum-maven-plugin - http://checksum-maven-plugin.nicoulaj.net +- * Copyright © 2010-2018 checksum-maven-plugin contributors +- * +- * Licensed 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 net.nicoulaj.maven.plugins.checksum.mojo; ++/* ++ * checksum-maven-plugin - http://checksum-maven-plugin.nicoulaj.net ++ * Copyright © 2010-2018 checksum-maven-plugin contributors ++ * ++ * Licensed 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 net.nicoulaj.maven.plugins.checksum.mojo; ++ ++import org.apache.maven.artifact.Artifact; ++import org.apache.maven.plugin.MojoExecutionException; ++import org.apache.maven.plugins.annotations.LifecyclePhase; ++import org.apache.maven.plugins.annotations.Mojo; ++import org.apache.maven.plugins.annotations.Parameter; ++import org.codehaus.plexus.util.FileUtils; ++ ++import java.io.File; ++import java.io.IOException; ++import java.util.LinkedList; ++import java.util.List; ++ ++/** ++ * Compute project artifacts checksum digests and store them in individual files and/or a summary file. ++ * ++ * @author <a href="mailto:julien.nicoul...@gmail.com">Julien Nicoulaud</a> ++ * @since 1.0 ++ */ ++@Mojo( ++ name = ArtifactsMojo.NAME, ++ defaultPhase = LifecyclePhase.VERIFY, ++ requiresProject = true, ++ inheritByDefault = false, ++ threadSafe = true ) ++public class ArtifactsMojo ++ extends AbstractChecksumMojo ++{ ++ ++ /** ++ * The mojo name. ++ */ ++ public static final String NAME = "artifacts"; ++ ++ /** ++ * Indicates whether the build will store checksums in separate files (one file per algorithm per artifact). ++ * ++ * @since 1.0 ++ */ ++ @Parameter( defaultValue = "true" ) ++ protected boolean individualFiles; ++ ++ /** ++ * The directory where output files will be stored. Leave unset to have each file next to the source file. ++ * ++ * @since 1.0 ++ */ ++ @Parameter ++ protected String individualFilesOutputDirectory; ++ ++ /** ++ * Indicates whether the build will store checksums to a single CSV summary file. ++ * ++ * @since 1.0 ++ */ ++ @Parameter( defaultValue = "false" ) ++ protected boolean csvSummary; ++ ++ /** ++ * The name of the summary file created if the option is activated. ++ * ++ * @see #csvSummary ++ * @since 1.0 ++ */ ++ @Parameter( defaultValue = "artifacts-checksums.csv" ) ++ protected String csvSummaryFile; ++ ++ /** ++ * Indicates whether the build will store checksums to a single XML summary file. ++ * ++ * @since 1.0 ++ */ ++ @Parameter( defaultValue = "false" ) ++ protected boolean xmlSummary; ++ ++ /** ++ * The name of the summary file created if the option is activated. ++ * ++ * @see #xmlSummary ++ * @since 1.0 ++ */ ++ @Parameter( defaultValue = "artifacts-checksums.xml" ) ++ protected String xmlSummaryFile; ++ ++ /** ++ * Indicates whether the build will store checksums to a single shasum summary file. ++ * ++ * @since 1.3 ++ */ ++ @Parameter( defaultValue = "false" ) ++ protected boolean shasumSummary; ++ ++ /** ++ * The name of the summary file created if the option is activated. ++ * ++ * @see #shasumSummary ++ * @since 1.3 ++ */ ++ @Parameter( defaultValue = "artifacts-checksums.sha" ) ++ protected String shasumSummaryFile; ++ ++ /** ++ * Append the artifact filename in the generated checksum file. ++ * This parameter require the parameter individualFiles be equal to true. ++ * ++ * @see #individualFiles ++ * @since 1.4 ++ */ ++ @Parameter (defaultValue = "false") ++ protected boolean appendFilename; ++ ++ /** ++ * Constructor. ++ */ ++ public ArtifactsMojo() { ++ super(false, true, true); ++ } ++ ++ /** ++ * Build the list of files from which digests should be generated. ++ * ++ * <p>The list is composed of the project main and attached artifacts.</p> ++ * ++ * @return the list of files that should be processed. ++ * @see #hasValidFile(org.apache.maven.artifact.Artifact) ++ */ ++ @Override ++ protected List<ChecksumFile> getFilesToProcess() ++ { ++ List<ChecksumFile> files = new LinkedList<ChecksumFile>(); ++ ++ // add pom (copy to target) ++ File pomToSign = new File( project.getBuild().getDirectory(), project.getBuild().getFinalName() + ".pom" ); + +-import org.apache.maven.artifact.Artifact; +-import org.apache.maven.plugins.annotations.LifecyclePhase; +-import org.apache.maven.plugins.annotations.Mojo; +-import org.apache.maven.plugins.annotations.Parameter; +- +-import java.util.LinkedList; +-import java.util.List; +- +-/** +- * Compute project artifacts checksum digests and store them in individual files and/or a summary file. +- * +- * @author <a href="mailto:julien.nicoul...@gmail.com">Julien Nicoulaud</a> +- * @since 1.0 +- */ +-@Mojo( +- name = ArtifactsMojo.NAME, +- defaultPhase = LifecyclePhase.VERIFY, +- requiresProject = true, +- inheritByDefault = false, +- threadSafe = true ) +-public class ArtifactsMojo +- extends AbstractChecksumMojo +-{ +- +- /** +- * The mojo name. +- */ +- public static final String NAME = "artifacts"; +- +- /** +- * Indicates whether the build will store checksums in separate files (one file per algorithm per artifact). +- * +- * @since 1.0 +- */ +- @Parameter( defaultValue = "true" ) +- protected boolean individualFiles; +- +- /** +- * The directory where output files will be stored. Leave unset to have each file next to the source file. +- * +- * @since 1.0 +- */ +- @Parameter +- protected String individualFilesOutputDirectory; +- +- /** +- * Indicates whether the build will store checksums to a single CSV summary file. +- * +- * @since 1.0 +- */ +- @Parameter( defaultValue = "false" ) +- protected boolean csvSummary; +- +- /** +- * The name of the summary file created if the option is activated. +- * +- * @see #csvSummary +- * @since 1.0 +- */ +- @Parameter( defaultValue = "artifacts-checksums.csv" ) +- protected String csvSummaryFile; +- +- /** +- * Indicates whether the build will store checksums to a single XML summary file. +- * +- * @since 1.0 +- */ +- @Parameter( defaultValue = "false" ) +- protected boolean xmlSummary; +- +- /** +- * The name of the summary file created if the option is activated. +- * +- * @see #xmlSummary +- * @since 1.0 +- */ +- @Parameter( defaultValue = "artifacts-checksums.xml" ) +- protected String xmlSummaryFile; +- +- /** +- * Indicates whether the build will store checksums to a single shasum summary file. +- * +- * @since 1.3 +- */ +- @Parameter( defaultValue = "false" ) +- protected boolean shasumSummary; +- +- /** +- * The name of the summary file created if the option is activated. +- * +- * @see #shasumSummary +- * @since 1.3 +- */ +- @Parameter( defaultValue = "artifacts-checksums.sha" ) +- protected String shasumSummaryFile; +- +- /** +- * Append the artifact filename in the generated checksum file. +- * This parameter require the parameter individualFiles be equal to true. +- * +- * @see #individualFiles +- * @since 1.4 +- */ +- @Parameter (defaultValue = "false") +- protected boolean appendFilename; +- +- /** +- * Constructor. +- */ +- public ArtifactsMojo() { +- super(false, true, true); +- } +- +- /** +- * Build the list of files from which digests should be generated. +- * +- * <p>The list is composed of the project main and attached artifacts.</p> +- * +- * @return the list of files that should be processed. +- * @see #hasValidFile(org.apache.maven.artifact.Artifact) +- */ +- @Override +- protected List<ChecksumFile> getFilesToProcess() +- { +- List<ChecksumFile> files = new LinkedList<ChecksumFile>(); +- +- // Add project main artifact. +- if ( hasValidFile( project.getArtifact() ) ) ++ try + { +- files.add( new ChecksumFile( "", project.getArtifact().getFile(), project.getArtifact().getType(),null ) ); ++ FileUtils.copyFile( project.getFile(), pomToSign ); + } +- +- // Add projects attached. +- if ( project.getAttachedArtifacts() != null ) ++ catch ( IOException e ) + { +- for ( Artifact artifact : (List<Artifact>) project.getAttachedArtifacts() ) +- { +- if ( hasValidFile( artifact ) ) +- { +- files.add( new ChecksumFile( "", artifact.getFile(), artifact.getType(), artifact.getClassifier() ) ); +- } +- } ++ throw new RuntimeException( new MojoExecutionException( "Error copying POM for signing.", e ) ); + } +- return files; +- } ++ ++ files.add( new ChecksumFile( "", pomToSign, "pom", null ) ); + +- /** +- * Decide whether the artifact file should be processed. +- * +- * <p>Excludes the project POM file and any file outside the build directory, because this could lead to writing +- * files on the user local repository for example.</p> +- * +- * @param artifact the artifact to check. +- * @return true if the artifact should be included in the files to process. +- */ +- protected boolean hasValidFile( Artifact artifact ) +- { +- // Make sure the file exists. +- boolean hasValidFile = artifact != null && artifact.getFile() != null && artifact.getFile().exists(); +- +- // Exclude project POM file. +- hasValidFile = hasValidFile && !artifact.getFile().getPath().equals( project.getFile().getPath() ); +- +- // Exclude files outside of build directory. +- hasValidFile = hasValidFile && artifact.getFile().getPath().startsWith( project.getBuild().getDirectory() ); +- +- return hasValidFile; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected boolean isIndividualFiles() +- { +- return individualFiles; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected String getIndividualFilesOutputDirectory() +- { +- return individualFilesOutputDirectory; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected boolean isAppendFilename(){ +- return this.appendFilename; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected boolean isCsvSummary() +- { +- return csvSummary; +- } +- +- /** +- * {@inheritDoc} +- */ +- protected String getCsvSummaryFile() +- { +- return csvSummaryFile; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected boolean isXmlSummary() +- { +- return xmlSummary; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected String getXmlSummaryFile() +- { +- return xmlSummaryFile; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected boolean isShasumSummary() +- { +- return shasumSummary; +- } +- +- /** +- * {@inheritDoc} +- */ +- @Override +- protected String getShasumSummaryFile() +- { +- return shasumSummaryFile; +- } +-} ++ // Add project main artifact. ++ if ( hasValidFile( project.getArtifact() ) ) ++ { ++ files.add( new ChecksumFile( "", project.getArtifact().getFile(), project.getArtifact().getType(), ++ project.getArtifact().getClassifier() ) ); ++ } ++ ++ // Add projects attached. ++ if ( project.getAttachedArtifacts() != null ) ++ { ++ for ( Artifact artifact : (List<Artifact>) project.getAttachedArtifacts() ) ++ { ++ if ( hasValidFile( artifact ) ) ++ { ++ files.add( new ChecksumFile( "", artifact.getFile(), artifact.getType(), artifact.getClassifier() ) ); ++ } ++ } ++ } ++ return files; ++ } ++ ++ /** ++ * Decide whether the artifact file should be processed. ++ * ++ * <p>Excludes the project POM file and any file outside the build directory, because this could lead to writing ++ * files on the user local repository for example.</p> ++ * ++ * @param artifact the artifact to check. ++ * @return true if the artifact should be included in the files to process. ++ */ ++ protected boolean hasValidFile( Artifact artifact ) ++ { ++ // Make sure the file exists. ++ boolean hasValidFile = artifact != null && artifact.getFile() != null && artifact.getFile().exists(); ++ ++ // Exclude project POM file. ++ hasValidFile = hasValidFile && !artifact.getFile().getPath().equals( project.getFile().getPath() ); ++ ++ // Exclude files outside of build directory. ++ hasValidFile = hasValidFile && artifact.getFile().getPath().startsWith( project.getBuild().getDirectory() ); ++ ++ return hasValidFile; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected boolean isIndividualFiles() ++ { ++ return individualFiles; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected String getIndividualFilesOutputDirectory() ++ { ++ return individualFilesOutputDirectory; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected boolean isAppendFilename(){ ++ return this.appendFilename; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected boolean isCsvSummary() ++ { ++ return csvSummary; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ protected String getCsvSummaryFile() ++ { ++ return csvSummaryFile; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected boolean isXmlSummary() ++ { ++ return xmlSummary; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected String getXmlSummaryFile() ++ { ++ return xmlSummaryFile; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected boolean isShasumSummary() ++ { ++ return shasumSummary; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ protected String getShasumSummaryFile() ++ { ++ return shasumSummaryFile; ++ } ++} Added: uima/build/trunk/parent-pom/plugin-patches/maven-gpg-plugin-MGPG-66.patch.txt URL: http://svn.apache.org/viewvc/uima/build/trunk/parent-pom/plugin-patches/maven-gpg-plugin-MGPG-66.patch.txt?rev=1843952&view=auto ============================================================================== --- uima/build/trunk/parent-pom/plugin-patches/maven-gpg-plugin-MGPG-66.patch.txt (added) +++ uima/build/trunk/parent-pom/plugin-patches/maven-gpg-plugin-MGPG-66.patch.txt Mon Oct 15 20:37:32 2018 @@ -0,0 +1,22 @@ +diff --git a/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java b/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java +index eccc716..d9f0ae7 100644 +--- a/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java ++++ b/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java +@@ -190,6 +190,9 @@ + + File file = artifact.getFile(); + ++ if ( ! isExcluded( file.getPath() ) ) ++ { ++ + getLog().debug( "Generating signature for " + file ); + + File signature = signer.generateSignatureForArtifact( file ); +@@ -200,6 +203,7 @@ + artifact.getClassifier(), signature ) ); + } + } ++ } + + // ---------------------------------------------------------------------------- + // Attach all the signatures Added: uima/build/trunk/parent-pom/src/resources/checksum-maven-plugin-1.8.jar URL: http://svn.apache.org/viewvc/uima/build/trunk/parent-pom/src/resources/checksum-maven-plugin-1.8.jar?rev=1843952&view=auto ============================================================================== Binary file - no diff available. Propchange: uima/build/trunk/parent-pom/src/resources/checksum-maven-plugin-1.8.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: uima/build/trunk/parent-pom/src/resources/maven-gpg-plugin-1.6.jar URL: http://svn.apache.org/viewvc/uima/build/trunk/parent-pom/src/resources/maven-gpg-plugin-1.6.jar?rev=1843952&view=auto ============================================================================== Binary file - no diff available. Propchange: uima/build/trunk/parent-pom/src/resources/maven-gpg-plugin-1.6.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream