mirror of https://github.com/apache/maven.git
[MNG-6754] Set the same timestamp in multi module builds (2/2)
Verify snapshot versions also with all deployed artifact files.
This commit is contained in:
parent
ae6f0133b7
commit
db7be8d178
its/core-it-suite
|
@ -36,34 +36,34 @@ under the License.
|
|||
|
||||
<!--
|
||||
By default, the project just packages the tests in an artifact. To actually run them, activate the profile "run-its":
|
||||
|
||||
|
||||
mvn clean test -Prun-its
|
||||
|
||||
|
||||
This will subject the Maven version running the build to the integration tests. If you would like to test a different
|
||||
Maven distribution, you can use the system property "mavenHome" to specify the path of the Maven distribution to test:
|
||||
|
||||
|
||||
mvn clean test -Prun-its -DmavenHome=<maven-under-test>
|
||||
|
||||
|
||||
Alternatively, you can just specify the version of a previously installed/deployed Maven distribution which will be
|
||||
downloaded, unpacked and tested:
|
||||
|
||||
mvn clean test -Prun-its -DmavenVersion=2.2.1
|
||||
|
||||
|
||||
It's also possible to point the ITs at an already downloaded Maven distribution:
|
||||
|
||||
|
||||
mvn clean test -Prun-its -DmavenDistro=<path-to-bin-archive>
|
||||
|
||||
|
||||
To run the ITs using embedded Maven 3.x, additionally activate the profile "embedded".
|
||||
|
||||
|
||||
ITs that don't require to fork Maven can also be run from the IDE using the Maven projects from the workspace if the
|
||||
Maven dependencies are added to the test class path.
|
||||
|
||||
To test with the maven wrapper, you should add the wrapperDistroDir too.
|
||||
|
||||
mvn clean test -Prun-its -Dmaven.repo.local=<path-to-local-repo> -DmavenDistro=<path-to-bin-archive> -DwrapperDistroDir=<path-to-wrapper-distro-directory> -DmavenWrapper=<path-to-wrapper-jar>
|
||||
|
||||
|
||||
Tests can pick up the maven.wrapper.distrodir system property to unpack it into their testDir to verify the wrapper.
|
||||
|
||||
|
||||
If you're behind a proxy, use the system properties proxy.host, proxy.port, proxy.user, proxy.pass and
|
||||
proxy.nonProxyHosts to specify the required proxy setup for the ITs. Alternatively, set the system property
|
||||
maven.it.central to a URL of a local repository manager (anonymous authentication only) that proxies the
|
||||
|
@ -74,7 +74,7 @@ under the License.
|
|||
<surefireMemory>-Xmx384m</surefireMemory>
|
||||
<!-- The original Maven distribution to test. -->
|
||||
<mavenHome>${maven.home}</mavenHome>
|
||||
<!-- The (possibly instrumented copy of the) Maven distribution we actually
|
||||
<!-- The (possibly instrumented copy of the) Maven distribution we actually
|
||||
use for the tests. -->
|
||||
<preparedMavenHome>${mavenHome}</preparedMavenHome>
|
||||
<!-- default properties used to filter the global settings -->
|
||||
|
@ -106,20 +106,20 @@ under the License.
|
|||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-utils</artifactId>
|
||||
<version>1.5.8</version>
|
||||
<version>3.3.0</version>
|
||||
<!-- NOTE: Use compile scope for transitivity. -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.its</groupId>
|
||||
<artifactId>maven-it-helper</artifactId>
|
||||
<version>2.1-SNAPSHOT</version>
|
||||
<!-- TODO: not transitive in tests artifact, so must be left in main
|
||||
<!-- TODO: not transitive in tests artifact, so must be left in main
|
||||
scope <scope>test</scope> -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.shared</groupId>
|
||||
<artifactId>maven-verifier</artifactId>
|
||||
<!-- TODO: not transitive in tests artifact, so must be left in main
|
||||
<!-- TODO: not transitive in tests artifact, so must be left in main
|
||||
scope <scope>test</scope> -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
@ -158,6 +158,11 @@ under the License.
|
|||
<version>0.3.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-repository-metadata</artifactId>
|
||||
<version>3.6.3</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -283,7 +288,7 @@ under the License.
|
|||
<configuration>
|
||||
<systemProperties combine.children="append">
|
||||
<property>
|
||||
<!-- Pass this through to the tests (if set!) to have them
|
||||
<!-- Pass this through to the tests (if set!) to have them
|
||||
pick the right repository -->
|
||||
<name>maven.repo.local</name>
|
||||
<value>${maven.repo.local}</value>
|
||||
|
@ -308,7 +313,7 @@ under the License.
|
|||
<configuration>
|
||||
<systemProperties combine.children="append">
|
||||
<property>
|
||||
<!-- Pass this through to the tests (if set!) to have them
|
||||
<!-- Pass this through to the tests (if set!) to have them
|
||||
pick the right repository layout -->
|
||||
<name>maven.repo.local.layout</name>
|
||||
<value>${maven.repo.local.layout}</value>
|
||||
|
@ -327,7 +332,7 @@ under the License.
|
|||
<properties>
|
||||
<surefireMemory>-Xmx384m -XX:MaxPermSize=192m</surefireMemory>
|
||||
</properties>
|
||||
</profile>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>embedded</id>
|
||||
<build>
|
||||
|
@ -339,7 +344,7 @@ under the License.
|
|||
<forkMode>once</forkMode>
|
||||
<argLine>${surefireMemory}
|
||||
-Dcom.sun.management.jmxremote=true</argLine>
|
||||
<!-- NOTE: Maven plugins have access to the system class path
|
||||
<!-- NOTE: Maven plugins have access to the system class path
|
||||
so keep it clean -->
|
||||
<useSystemClassLoader>false</useSystemClassLoader>
|
||||
<systemProperties combine.children="append">
|
||||
|
|
|
@ -19,26 +19,25 @@ package org.apache.maven.it;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.it.util.ResourceExtractor;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import org.apache.maven.artifact.repository.metadata.Metadata;
|
||||
import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
|
||||
import org.apache.maven.it.util.ResourceExtractor;
|
||||
|
||||
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
|
||||
|
||||
public class MavenITmng6754TimestampInMultimoduleProject
|
||||
extends AbstractMavenIntegrationTestCase
|
||||
{
|
||||
private static final Pattern LAST_UPDATED_LINE = Pattern.compile( "<lastUpdated>(\\d*)</lastUpdated>" );
|
||||
private static final String RESOURCE_PATH = "/mng-6754-version-timestamp-in-multimodule-build";
|
||||
private static final String VERSION = "1.0-SNAPSHOT";
|
||||
|
||||
|
||||
public MavenITmng6754TimestampInMultimoduleProject()
|
||||
|
@ -57,68 +56,163 @@ public class MavenITmng6754TimestampInMultimoduleProject
|
|||
verifier.deleteDirectory( "repo" );
|
||||
verifier.deleteArtifacts ( "org.apache.maven.its.mng6754" );
|
||||
verifier.addCliOption( "-Drepodir=" + remoteRepoDir );
|
||||
verifier.executeGoals( asList( "install", "deploy" ) );
|
||||
verifier.executeGoal( "deploy" );
|
||||
verifier.verifyErrorFreeLog();
|
||||
|
||||
final Properties props = verifier.loadProperties( "target/timestamp.properties" );
|
||||
// Reference timestamp
|
||||
final String mavenBuildTimestamp = props.getProperty( "project.properties.timestamp" );
|
||||
|
||||
final String parentLastUpdatedLocal = getLastUpdatedFromMetadata( getLocalMetadataPath( localRepoDir, "parent" ) );
|
||||
final String aLastUpdatedLocal = getLastUpdatedFromMetadata( getLocalMetadataPath( localRepoDir, "child-a" ) );
|
||||
final String bLastUpdatedLocal = getLastUpdatedFromMetadata( getLocalMetadataPath( localRepoDir, "child-b" ) );
|
||||
final Metadata parentMetadataLocal = getMetadata( getLocalMetadataPath( localRepoDir, "parent", null ) );
|
||||
final Metadata aMetadataLocal = getMetadata( getLocalMetadataPath( localRepoDir, "child-a", null ) );
|
||||
final Metadata bMetadataLocal = getMetadata( getLocalMetadataPath( localRepoDir, "child-b", null ) );
|
||||
|
||||
final String parentLastUpdatedRemote = getLastUpdatedFromMetadata( getRemoteMetadataPath( remoteRepoDir, "parent" ) );
|
||||
final String aLastUpdatedRemote = getLastUpdatedFromMetadata( getRemoteMetadataPath( remoteRepoDir, "child-a" ) );
|
||||
final String bLastUpdatedRemote = getLastUpdatedFromMetadata( getRemoteMetadataPath( remoteRepoDir, "child-b" ) );
|
||||
final String parentLastUpdatedLocal = parentMetadataLocal.getVersioning().getLastUpdated();
|
||||
final String aLastUpdatedLocal = aMetadataLocal.getVersioning().getLastUpdated();
|
||||
final String bLastUpdatedLocal = bMetadataLocal.getVersioning().getLastUpdated();
|
||||
|
||||
assertEquals( "Installed child modules should have equal lastUpdated in maven-metadata-local.xml",
|
||||
aLastUpdatedLocal, bLastUpdatedLocal );
|
||||
assertEquals( "Installed parent module should have equal lastUpdated in maven-metadata-local.xml as their children",
|
||||
aLastUpdatedLocal, parentLastUpdatedLocal );
|
||||
assertEquals( "Deployed child modules should have equal lastUpdated in maven-metadata.xml",
|
||||
aLastUpdatedRemote, bLastUpdatedRemote );
|
||||
assertEquals( "Deployed parent module should have equal lastUpdated in maven-metadata.xml as their children",
|
||||
aLastUpdatedRemote, parentLastUpdatedRemote );
|
||||
assertEquals( "Installed parent module should have equal lastUpdated as deployed counterparts",
|
||||
parentLastUpdatedLocal, parentLastUpdatedRemote );
|
||||
assertEquals( "Installed child-a module should have equal lastUpdated as deployed counterparts",
|
||||
aLastUpdatedLocal, aLastUpdatedRemote );
|
||||
assertEquals( "Installed child-b module should have equal lastUpdated as deployed counterparts",
|
||||
bLastUpdatedLocal, bLastUpdatedRemote );
|
||||
assertEquals( "Installed parent module should have equal lastUpdated as the Maven build timestamp",
|
||||
parentLastUpdatedLocal, mavenBuildTimestamp );
|
||||
assertEquals( "Deployed parent module should have equal lastUpdated as the Maven build timestamp",
|
||||
parentLastUpdatedRemote, mavenBuildTimestamp );
|
||||
assertEquals ( "parent", "local", "lastUpdated", mavenBuildTimestamp, parentLastUpdatedLocal );
|
||||
assertEquals ( "child-a", "local", "lastUpdated", mavenBuildTimestamp, aLastUpdatedLocal );
|
||||
assertEquals ( "child-b", "local", "lastUpdated", mavenBuildTimestamp, bLastUpdatedLocal );
|
||||
|
||||
final Metadata parentVersionedMetadataLocal = getMetadata( getLocalMetadataPath( localRepoDir, "parent", VERSION ) );
|
||||
final Metadata aVersionedMetadataLocal = getMetadata( getLocalMetadataPath( localRepoDir, "child-a", VERSION ) );
|
||||
final Metadata bVersionedMetadataLocal = getMetadata( getLocalMetadataPath( localRepoDir, "child-b", VERSION ) );
|
||||
|
||||
final String parentVersionedLastUpdatedLocal = parentVersionedMetadataLocal.getVersioning().getLastUpdated();
|
||||
final String parentVersionedSnapshotVersionUpdatedLocal = parentVersionedMetadataLocal.getVersioning().getSnapshotVersions().get( 0 ).getUpdated();
|
||||
final String aLastVersionedUpdatedLocal = aVersionedMetadataLocal.getVersioning().getLastUpdated();
|
||||
final String aVersionedSnapshotVersionUpdated1Local = aVersionedMetadataLocal.getVersioning().getSnapshotVersions().get( 0 ).getUpdated();
|
||||
final String aVersionedSnapshotVersionUpdated2Local = aVersionedMetadataLocal.getVersioning().getSnapshotVersions().get( 1 ).getUpdated();
|
||||
final String bLastVersionedUpdatedLocal = bVersionedMetadataLocal.getVersioning().getLastUpdated();
|
||||
final String bVersionedSnapshotVersionUpdated1Local = bVersionedMetadataLocal.getVersioning().getSnapshotVersions().get( 0 ).getUpdated();
|
||||
final String bVersionedSnapshotVersionUpdated2Local = bVersionedMetadataLocal.getVersioning().getSnapshotVersions().get( 1 ).getUpdated();
|
||||
|
||||
assertEquals ( "parent", "local", "lastUpdated", mavenBuildTimestamp, parentVersionedLastUpdatedLocal );
|
||||
assertEquals ( "parent", "local", "snapshotVersion[0]/updated", mavenBuildTimestamp, parentVersionedSnapshotVersionUpdatedLocal );
|
||||
assertEquals ( "child-a", "local", "lastUpdated", mavenBuildTimestamp, aLastVersionedUpdatedLocal );
|
||||
assertEquals ( "child-a", "local", "snapshotVersion[0]/updated", mavenBuildTimestamp, aVersionedSnapshotVersionUpdated1Local );
|
||||
assertEquals ( "child-a", "local", "snapshotVersion[1]/updated", mavenBuildTimestamp, aVersionedSnapshotVersionUpdated2Local );
|
||||
assertEquals ( "child-b", "local", "lastUpdated", mavenBuildTimestamp, bLastVersionedUpdatedLocal );
|
||||
assertEquals ( "child-b", "local", "snapshotVersion[0]/updated", mavenBuildTimestamp, bVersionedSnapshotVersionUpdated1Local );
|
||||
assertEquals ( "child-b", "local", "snapshotVersion[1]/updated", mavenBuildTimestamp, bVersionedSnapshotVersionUpdated2Local );
|
||||
|
||||
final Metadata parentMetadataRemote = getMetadata( getRemoteMetadataPath( remoteRepoDir, "parent", null ) );
|
||||
final Metadata aMetadataRemote = getMetadata( getRemoteMetadataPath( remoteRepoDir, "child-a", null ) );
|
||||
final Metadata bMetadataRemote = getMetadata( getRemoteMetadataPath( remoteRepoDir, "child-b", null ) );
|
||||
|
||||
final String parentLastUpdatedRemote = parentMetadataRemote.getVersioning().getLastUpdated();
|
||||
final String aLastUpdatedRemote = aMetadataRemote.getVersioning().getLastUpdated();
|
||||
final String bLastUpdatedRemote = bMetadataRemote.getVersioning().getLastUpdated();
|
||||
|
||||
assertEquals ( "parent", "remote", "lastUpdated", mavenBuildTimestamp, parentLastUpdatedRemote );
|
||||
assertEquals ( "child-a", "remote", "lastUpdated", mavenBuildTimestamp, aLastUpdatedRemote );
|
||||
assertEquals ( "child-b", "remote", "lastUpdated", mavenBuildTimestamp, bLastUpdatedRemote );
|
||||
|
||||
final Metadata parentVersionedMetadataRemote = getMetadata( getRemoteMetadataPath( remoteRepoDir, "parent", VERSION ) );
|
||||
final Metadata aVersionedMetadataRemote = getMetadata( getRemoteMetadataPath( remoteRepoDir, "child-a", VERSION ) );
|
||||
final Metadata bVersionedMetadataRemote = getMetadata( getRemoteMetadataPath( remoteRepoDir, "child-b", VERSION ) );
|
||||
|
||||
final String parentVersionedLastUpdatedRemote = parentVersionedMetadataRemote.getVersioning().getLastUpdated();
|
||||
final String parentVersionedSnapshotTimestamp = parentVersionedMetadataRemote.getVersioning().getSnapshot().getTimestamp().replace( ".", "" );
|
||||
final String parentVersionedSnapshotVersionUpdatedRemote = parentVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 0 ).getUpdated();
|
||||
final String parentVersionedSnapshotVersionValueRemote = parentVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 0 ).getVersion();
|
||||
final String aLastVersionedUpdatedRemote = aVersionedMetadataRemote.getVersioning().getLastUpdated();
|
||||
final String aVersionedSnapshotTimestamp = aVersionedMetadataRemote.getVersioning().getSnapshot().getTimestamp().replace( ".", "" );
|
||||
final String aVersionedSnapshotVersionUpdated1Remote = aVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 0 ).getUpdated();
|
||||
final String aVersionedSnapshotVersionValue1Remote = aVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 0 ).getVersion();
|
||||
final String aVersionedSnapshotVersionUpdated2Remote = aVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 1 ).getUpdated();
|
||||
final String aVersionedSnapshotVersionValue2Remote = aVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 1 ).getVersion();
|
||||
final String bLastVersionedUpdatedRemote = bVersionedMetadataRemote.getVersioning().getLastUpdated();
|
||||
final String bVersionedSnapshotTimestamp = bVersionedMetadataRemote.getVersioning().getSnapshot().getTimestamp().replace( ".", "" );
|
||||
final String bVersionedSnapshotVersionUpdated1Remote = bVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 0 ).getUpdated();
|
||||
final String bVersionedSnapshotVersionValue1Remote = bVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 0 ).getVersion();
|
||||
final String bVersionedSnapshotVersionUpdated2Remote = bVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 1 ).getUpdated();
|
||||
final String bVersionedSnapshotVersionValue2Remote = bVersionedMetadataRemote.getVersioning().getSnapshotVersions().get( 1 ).getVersion();
|
||||
|
||||
assertEquals ( "parent", "remote", "lastUpdated", mavenBuildTimestamp, parentVersionedLastUpdatedRemote );
|
||||
assertEquals ( "parent", "remote", "snapshot/timestamp", mavenBuildTimestamp, parentVersionedSnapshotTimestamp );
|
||||
assertEquals ( "parent", "remote", "snapshotVersion[0]/updated", mavenBuildTimestamp, parentVersionedSnapshotVersionUpdatedRemote );
|
||||
assertEquals ( "parent", "remote", "snapshotVersion[0]/value", mavenBuildTimestamp, parentVersionedSnapshotVersionValueRemote.substring( 4, 19 ).replace( ".", "" ) );
|
||||
assertEquals ( "child-a", "remote", "lastUpdated", mavenBuildTimestamp, aLastVersionedUpdatedRemote );
|
||||
assertEquals ( "child-a", "remote", "snapshot/timestamp", mavenBuildTimestamp, aVersionedSnapshotTimestamp );
|
||||
assertEquals ( "child-a", "remote", "snapshotVersion[0]/updated", mavenBuildTimestamp, aVersionedSnapshotVersionUpdated1Remote );
|
||||
assertEquals ( "child-a", "remote", "snapshotVersion[0]/value", mavenBuildTimestamp, aVersionedSnapshotVersionValue1Remote.substring( 4, 19 ).replace( ".", "" ) );
|
||||
assertEquals ( "child-a", "remote", "snapshotVersion[1]/updated", mavenBuildTimestamp, aVersionedSnapshotVersionUpdated2Remote );
|
||||
assertEquals ( "child-a", "remote", "snapshotVersion[1]/value", mavenBuildTimestamp, aVersionedSnapshotVersionValue2Remote.substring( 4, 19 ).replace( ".", "" ) );
|
||||
assertEquals ( "child-b", "remote", "lastUpdated", mavenBuildTimestamp, bLastVersionedUpdatedRemote );
|
||||
assertEquals ( "child-b", "remote", "snapshot/timestamp", mavenBuildTimestamp, bVersionedSnapshotTimestamp );
|
||||
assertEquals ( "child-b", "remote", "snapshotVersion[0]/updated", mavenBuildTimestamp, bVersionedSnapshotVersionUpdated1Remote );
|
||||
assertEquals ( "child-b", "remote", "snapshotVersion[0]/value", mavenBuildTimestamp, bVersionedSnapshotVersionValue1Remote.substring( 4, 19 ).replace( ".", "" ) );
|
||||
assertEquals ( "child-b", "remote", "snapshotVersion[1]/updated", mavenBuildTimestamp, bVersionedSnapshotVersionUpdated2Remote );
|
||||
assertEquals ( "child-b", "remote", "snapshotVersion[1]/value", mavenBuildTimestamp, bVersionedSnapshotVersionValue2Remote.substring( 4, 19 ).replace( ".", "" ) );
|
||||
assertPathExists( remoteRepoDir, "parent", "remote", VERSION, "parent-" + parentVersionedSnapshotVersionValueRemote + ".pom" );
|
||||
assertPathExists( remoteRepoDir, "child-a", "remote", VERSION, "child-a-" + aVersionedSnapshotVersionValue1Remote + ".pom" );
|
||||
assertPathExists( remoteRepoDir, "child-a", "remote", VERSION, "child-a-" + aVersionedSnapshotVersionValue2Remote + ".jar" );
|
||||
assertPathExists( remoteRepoDir, "child-b", "remote", VERSION, "child-b-" + bVersionedSnapshotVersionValue1Remote + ".pom" );
|
||||
assertPathExists( remoteRepoDir, "child-b", "remote", VERSION, "child-b-" + bVersionedSnapshotVersionValue2Remote + ".jar" );
|
||||
}
|
||||
|
||||
private Path getLocalMetadataPath( final Path repoDir, final String moduleName )
|
||||
private Path getLocalMetadataPath( final Path repoDir, final String moduleName, String version )
|
||||
{
|
||||
return getRepoFile(repoDir, moduleName, version, "maven-metadata-local.xml" );
|
||||
}
|
||||
|
||||
private Path getRemoteMetadataPath( final Path repoDir, final String moduleName, String version )
|
||||
{
|
||||
return getRepoFile(repoDir, moduleName, version, "maven-metadata.xml" );
|
||||
}
|
||||
|
||||
private Path getRepoFile( final Path repoDir, final String moduleName, String version, String fileName )
|
||||
{
|
||||
final Path mng6754Path = Paths.get( "org", "apache", "maven", "its", "mng6754" );
|
||||
final Path modulePath = repoDir.resolve( mng6754Path.resolve( moduleName ) );
|
||||
return modulePath.resolve( "maven-metadata-local.xml" );
|
||||
}
|
||||
|
||||
private Path getRemoteMetadataPath( final Path repoDir, final String moduleName )
|
||||
{
|
||||
final Path mng6754Path = Paths.get( "org", "apache", "maven", "its", "mng6754" );
|
||||
final Path modulePath = repoDir.resolve( mng6754Path.resolve( moduleName ) );
|
||||
return modulePath.resolve( "maven-metadata.xml" );
|
||||
}
|
||||
|
||||
private String getLastUpdatedFromMetadata( final Path metadataFile ) throws IOException
|
||||
{
|
||||
final List<String> lines = Files.readAllLines( metadataFile, Charset.defaultCharset() );
|
||||
for (final String line : lines )
|
||||
Path modulePath = repoDir.resolve( mng6754Path.resolve( moduleName ) );
|
||||
if ( version != null )
|
||||
{
|
||||
final Matcher matcher = LAST_UPDATED_LINE.matcher( line );
|
||||
if ( matcher.find() )
|
||||
{
|
||||
return matcher.group(1);
|
||||
}
|
||||
modulePath = modulePath.resolve( version );
|
||||
}
|
||||
return modulePath.resolve( fileName );
|
||||
}
|
||||
|
||||
// just in case, make sure the test will fail if there's no <lastUpdated>
|
||||
// inside "maven-metadata.xml"
|
||||
return "";
|
||||
private Metadata getMetadata( final Path metadataFile ) throws IOException, XmlPullParserException
|
||||
{
|
||||
MetadataXpp3Reader r = new MetadataXpp3Reader();
|
||||
try ( InputStream is = Files.newInputStream( metadataFile ) )
|
||||
{
|
||||
return r.read( is );
|
||||
}
|
||||
}
|
||||
|
||||
private void assertEquals( String moduleName, String location, String field, String expected, String actual )
|
||||
{
|
||||
String phase = null;
|
||||
switch ( location )
|
||||
{
|
||||
case "local":
|
||||
phase = "Installed";
|
||||
break;
|
||||
case "remote":
|
||||
phase = "Deployed";
|
||||
break;
|
||||
}
|
||||
assertEquals( String.format( "%s %s module should have equal %s %s with the Maven build timestamp",
|
||||
phase, moduleName, location, field ), expected, actual );
|
||||
}
|
||||
|
||||
private void assertPathExists( Path repoDir, String moduleName, String location, String version, String fileName )
|
||||
{
|
||||
String phase = null;
|
||||
switch ( location )
|
||||
{
|
||||
case "local":
|
||||
phase = "Installed";
|
||||
break;
|
||||
case "remote":
|
||||
phase = "Deployed";
|
||||
break;
|
||||
}
|
||||
Path file = getRepoFile( repoDir, moduleName, version, fileName );
|
||||
assertTrue( String.format( "%s %s module %s file %s should exist",
|
||||
phase, moduleName, location, file ), Files.exists( file ) );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,11 @@ under the License.
|
|||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
|
|
@ -37,4 +37,13 @@ under the License.
|
|||
<artifactId>junit</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
|
@ -37,4 +37,13 @@ under the License.
|
|||
<artifactId>junit</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
Loading…
Reference in New Issue