You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/10/06 20:42:52 UTC
[maven-ear-plugin] 01/01: [MEAR-319] Remove generated MANIFEST from outdatedResources
This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch MEAR-319
in repository https://gitbox.apache.org/repos/asf/maven-ear-plugin.git
commit 0b8a3a93eaf34605adb501d4041ac95b737a9925
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Thu Oct 6 22:29:01 2022 +0200
[MEAR-319] Remove generated MANIFEST from outdatedResources
---
.../java/org/apache/maven/plugins/ear/EarMojo.java | 47 ++++++++++++++--------
1 file changed, 31 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/ear/EarMojo.java b/src/main/java/org/apache/maven/plugins/ear/EarMojo.java
index b122254..47e7659 100644
--- a/src/main/java/org/apache/maven/plugins/ear/EarMojo.java
+++ b/src/main/java/org/apache/maven/plugins/ear/EarMojo.java
@@ -476,7 +476,7 @@ public class EarMojo
if ( module.changeManifestClasspath() )
{
- changeManifestClasspath( module, destinationFile, javaEEVersion );
+ changeManifestClasspath( module, destinationFile, javaEEVersion, outdatedResources );
}
}
else
@@ -489,7 +489,7 @@ public class EarMojo
LinkOption.NOFOLLOW_LINKS, StandardCopyOption.REPLACE_EXISTING );
if ( module.changeManifestClasspath() )
{
- changeManifestClasspath( module, destinationFile, javaEEVersion );
+ changeManifestClasspath( module, destinationFile, javaEEVersion, outdatedResources );
}
}
else
@@ -689,19 +689,16 @@ public class EarMojo
public void unpack( File source, final File destDir, final Collection<String> outdatedResources )
throws ArchiverException, NoSuchArchiverException, IOException
{
+ Path destPath = destDir.toPath();
+
UnArchiver unArchiver = archiverManager.getUnArchiver( "zip" );
unArchiver.setSourceFile( source );
unArchiver.setDestDirectory( destDir );
unArchiver.setFileMappers( new FileMapper[] {
- new FileMapper()
+ pName ->
{
- @Override
- public String getMappedFileName( String pName )
- {
- Path destFile = destDir.toPath().resolve( pName );
- outdatedResources.remove( getWorkDirectory().toPath().relativize( destFile ).toString() );
- return pName;
- }
+ removeFromOutdatedResources( destPath.resolve( pName ), outdatedResources );
+ return pName;
}
} );
@@ -768,7 +765,8 @@ public class EarMojo
return filterWrappers;
}
- private void changeManifestClasspath( EarModule module, File original, JavaEEVersion javaEEVersion )
+ private void changeManifestClasspath( EarModule module, File original, JavaEEVersion javaEEVersion,
+ Collection<String> outdatedResources )
throws MojoFailureException
{
final String moduleLibDir = module.getLibDir();
@@ -955,6 +953,8 @@ public class EarMojo
{
mf.write( writer );
}
+
+ removeFromOutdatedResources( manifestFile.toPath(), outdatedResources );
}
if ( original.isFile() )
@@ -983,8 +983,7 @@ public class EarMojo
// Read the manifest from disk
try ( FileInputStream in = new FileInputStream( manifestFile ) )
{
- Manifest manifest = new Manifest( in );
- return manifest;
+ return new Manifest( in );
}
}
@@ -1012,23 +1011,39 @@ public class EarMojo
getLog().warn( "Can't detect outdated resources", e );
}
}
+
+ getLog().debug( "initOutdatedResources: " + outdatedResources );
return outdatedResources;
}
private void deleteOutdatedResources( final Collection<String> outdatedResources )
{
+ getLog().debug( "deleteOutdatedResources: " + outdatedResources );
final long startTime = session.getStartTime().getTime();
-
+
+ getLog().debug( "deleteOutdatedResources session startTime: " + startTime );
+
for ( String outdatedResource : outdatedResources )
{
- if ( new File( getWorkDirectory(), outdatedResource ).lastModified() < startTime )
+ File resourceFile = new File( getWorkDirectory(), outdatedResource );
+ if ( resourceFile.lastModified() < startTime )
{
getLog().info( "deleting outdated resource " + outdatedResource );
- new File( getWorkDirectory(), outdatedResource ).delete();
+ getLog().debug( outdatedResource + " last modified: " + resourceFile.lastModified() );
+ resourceFile.delete();
}
}
}
+ private void removeFromOutdatedResources( Path destination, Collection<String> outdatedResources )
+ {
+ Path relativeDestFile = getWorkDirectory().toPath().relativize( destination );
+ if ( outdatedResources.remove( relativeDestFile.toString() ) )
+ {
+ getLog().debug( "Remove from outdatedResources: " + relativeDestFile );
+ }
+ }
+
/**
* Searches for the given JAR module in the list of classpath elements. If JAR module is found among specified
* classpath elements then returns index of first matching element. Returns -1 otherwise.