You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2020/10/11 18:28:11 UTC
[maven] branch MNG-6754 created (now a55757b)
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a change to branch MNG-6754
in repository https://gitbox.apache.org/repos/asf/maven.git.
at a55757b [MNG-6754] Set the same timestamp in multi module builds
This branch includes the following new commits:
new a55757b [MNG-6754] Set the same timestamp in multi module builds
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[maven] 01/01: [MNG-6754] Set the same timestamp in multi module
builds
Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch MNG-6754
in repository https://gitbox.apache.org/repos/asf/maven.git
commit a55757b55c6f3c90ce6d4d8636f2811206aab45a
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sun Oct 11 20:27:49 2020 +0200
[MNG-6754] Set the same timestamp in multi module builds
Reuse MavenExecutionRequest#getStartTime() for expanded snapshot
versions when deploying to a remote repository throughout the entire
reactor for all modules.
This closes #381
---
.../aether/DefaultRepositorySystemSessionFactory.java | 11 ++++++-----
.../maven/repository/internal/RemoteSnapshotMetadata.java | 12 ++++++++----
.../repository/internal/RemoteSnapshotMetadataGenerator.java | 9 +++++++--
.../repository/internal/RemoteSnapshotMetadataTest.java | 2 +-
4 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index 28f75cd..86cb551 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -113,6 +113,7 @@ public class DefaultRepositorySystemSessionFactory
Map<Object, Object> configProps = new LinkedHashMap<>();
configProps.put( ConfigurationProperties.USER_AGENT, getUserAgent() );
configProps.put( ConfigurationProperties.INTERACTIVE, request.isInteractiveMode() );
+ configProps.put( "maven.startTime", request.getStartTime() );
configProps.putAll( request.getSystemProperties() );
configProps.putAll( request.getUserProperties() );
@@ -281,14 +282,14 @@ public class DefaultRepositorySystemSessionFactory
return props.getProperty( "version", "unknown-version" );
}
-
+
private Collection<FileTransformer> getTransformersForArtifact( final Artifact artifact,
final SessionData sessionData )
{
TransformerContext context = (TransformerContext) sessionData.get( TransformerContext.KEY );
Collection<FileTransformer> transformers = new ArrayList<>();
-
- // In case of install:install-file there's no transformer context, as the goal is unrelated to the lifecycle.
+
+ // In case of install:install-file there's no transformer context, as the goal is unrelated to the lifecycle.
if ( "pom".equals( artifact.getExtension() ) && context != null )
{
transformers.add( new FileTransformer()
@@ -306,7 +307,7 @@ public class DefaultRepositorySystemSessionFactory
throw new TransformException( e );
}
}
-
+
@Override
public Artifact transformArtifact( Artifact artifact )
{
@@ -317,4 +318,4 @@ public class DefaultRepositorySystemSessionFactory
return Collections.unmodifiableCollection( transformers );
}
-}
\ No newline at end of file
+}
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java
index efcfb4d..fe46228 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java
@@ -47,19 +47,23 @@ final class RemoteSnapshotMetadata
private final Map<String, SnapshotVersion> versions = new LinkedHashMap<>();
- RemoteSnapshotMetadata( Artifact artifact, boolean legacyFormat )
+ private final Date timestamp;
+
+ RemoteSnapshotMetadata( Artifact artifact, boolean legacyFormat, Date timestamp )
{
super( createRepositoryMetadata( artifact, legacyFormat ), null, legacyFormat );
+ this.timestamp = timestamp;
}
- private RemoteSnapshotMetadata( Metadata metadata, File file, boolean legacyFormat )
+ private RemoteSnapshotMetadata( Metadata metadata, File file, boolean legacyFormat, Date timestamp )
{
super( metadata, file, legacyFormat );
+ this.timestamp = timestamp;
}
public MavenMetadata setFile( File file )
{
- return new RemoteSnapshotMetadata( metadata, file, legacyFormat );
+ return new RemoteSnapshotMetadata( metadata, file, legacyFormat, timestamp );
}
public String getExpandedVersion( Artifact artifact )
@@ -82,7 +86,7 @@ final class RemoteSnapshotMetadata
snapshot = new Snapshot();
snapshot.setBuildNumber( getBuildNumber( recessive ) + 1 );
- snapshot.setTimestamp( utcDateFormatter.format( new Date() ) );
+ snapshot.setTimestamp( utcDateFormatter.format( timestamp ) );
Versioning versioning = new Versioning();
versioning.setSnapshot( snapshot );
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java
index 3218863..2e42bee 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java
@@ -21,6 +21,7 @@ package org.apache.maven.repository.internal;
import java.util.Collection;
import java.util.Collections;
+import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -42,9 +43,13 @@ class RemoteSnapshotMetadataGenerator
private final boolean legacyFormat;
+ private final Date timestamp;
+
RemoteSnapshotMetadataGenerator( RepositorySystemSession session, DeployRequest request )
{
- legacyFormat = ConfigUtils.getBoolean( session.getConfigProperties(), false, "maven.metadata.legacy" );
+ legacyFormat = ConfigUtils.getBoolean( session, false, "maven.metadata.legacy" );
+
+ timestamp = (Date) ConfigUtils.getObject( session, new Date(), "maven.startTime" );
snapshots = new LinkedHashMap<>();
@@ -74,7 +79,7 @@ class RemoteSnapshotMetadataGenerator
RemoteSnapshotMetadata snapshotMetadata = snapshots.get( key );
if ( snapshotMetadata == null )
{
- snapshotMetadata = new RemoteSnapshotMetadata( artifact, legacyFormat );
+ snapshotMetadata = new RemoteSnapshotMetadata( artifact, legacyFormat, timestamp );
snapshots.put( key, snapshotMetadata );
}
snapshotMetadata.bind( artifact );
diff --git a/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java b/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java
index 3540bf2..566710d 100644
--- a/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java
+++ b/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java
@@ -66,7 +66,7 @@ public class RemoteSnapshotMetadataTest
String dateBefore = gregorianDate();
RemoteSnapshotMetadata metadata = new RemoteSnapshotMetadata(
- new DefaultArtifact( "a:b:1-SNAPSHOT" ), false);
+ new DefaultArtifact( "a:b:1-SNAPSHOT" ), false, new Date() );
metadata.merge( new Metadata() );
String dateAfter = gregorianDate();