This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch MSHARED-408
in repository https://gitbox.apache.org/repos/asf/maven-shared-jar.git

commit b214082330ef0ddfd91e17c74c7bc6d063b24987
Author: Sylwester Lachiewicz <[email protected]>
AuthorDate: Sat Oct 19 23:04:41 2019 +0200

    [MSHARED-408] Not ignore parent model group and version values
    
    In EmbeddedMavenModelExposer  use parent pom group and version if current 
project skip omits it
---
 .../exposers/EmbeddedMavenModelExposer.java        |  24 +++++++++++++--------
 .../exposers/EmbeddedMavenModelExposerTest.java    |  20 +++++++++++++++++
 src/test/resources/jars/test1.jar                  | Bin 0 -> 1071 bytes
 3 files changed, 35 insertions(+), 9 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java
 
b/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java
index 2018994..1ef3ebf 100644
--- 
a/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java
+++ 
b/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java
@@ -27,7 +27,6 @@ import 
org.apache.maven.shared.jar.identification.JarIdentification;
 import org.apache.maven.shared.jar.identification.JarIdentificationExposer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.apache.maven.shared.utils.io.IOUtil;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.IOException;
@@ -60,13 +59,24 @@ public class EmbeddedMavenModelExposer
 
         JarEntry pom = entries.get( 0 );
         MavenXpp3Reader pomreader = new MavenXpp3Reader();
-        InputStream is = null;
-        try
+        try ( InputStream is = jarAnalyzer.getEntryInputStream( pom );
+              InputStreamReader isreader = new InputStreamReader( is ) )
         {
-            is = jarAnalyzer.getEntryInputStream( pom );
-            InputStreamReader isreader = new InputStreamReader( is );
             Model model = pomreader.read( isreader );
 
+            if ( model.getParent() != null )
+            {
+                // use parent values only if project values not exists
+                if ( model.getGroupId() == null )
+                {
+                    identification.addAndSetGroupId( 
model.getParent().getGroupId() );
+                }
+                if ( model.getVersion() == null )
+                {
+                    identification.addAndSetVersion( 
model.getParent().getVersion() );
+                }
+            }
+
             identification.addAndSetGroupId( model.getGroupId() );
             identification.addAndSetArtifactId( model.getArtifactId() );
             identification.addAndSetVersion( model.getVersion() );
@@ -92,9 +102,5 @@ public class EmbeddedMavenModelExposer
         {
             getLogger().error( "Unable to parse model " + pom.getName() + " in 
" + jarAnalyzer.getFile() + ".", e );
         }
-        finally
-        {
-            IOUtil.close( is );
-        }
     }
 }
diff --git 
a/src/test/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposerTest.java
 
b/src/test/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposerTest.java
index 7cd39d1..f90e148 100644
--- 
a/src/test/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposerTest.java
+++ 
b/src/test/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposerTest.java
@@ -32,6 +32,26 @@ import java.io.File;
 public class EmbeddedMavenModelExposerTest
     extends AbstractJarAnalyzerTestCase
 {
+    public void testExposerWithParent()
+            throws Exception
+    {
+        File file = getSampleJar( "test1.jar" );
+
+        JarIdentification identification = new JarIdentification();
+
+        EmbeddedMavenModelExposer exposer = new EmbeddedMavenModelExposer();
+        exposer.expose( identification, new JarAnalyzer( file ) );
+
+        assertEquals( 1, identification.getPotentialGroupIds().size() );
+        assertEquals(  "test", identification.getPotentialGroupIds().get( 0 ) 
);
+
+        assertEquals( 1, identification.getPotentialArtifactIds().size() );
+        assertEquals(  "test1", identification.getPotentialArtifactIds().get( 
0 ) );
+
+        assertEquals( 1, identification.getPotentialVersions().size() );
+        assertEquals(  "1.1-SNAPSHOT", 
identification.getPotentialVersions().get( 0 ) );
+    }
+
     public void testExposerWithJXR()
         throws Exception
     {
diff --git a/src/test/resources/jars/test1.jar 
b/src/test/resources/jars/test1.jar
new file mode 100644
index 0000000..0f441c5
Binary files /dev/null and b/src/test/resources/jars/test1.jar differ

Reply via email to