[MGPG-78] gpg version parsing failure on Windows
diff --git a/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java b/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java
index 6e64577..35b33e0 100644
--- a/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java
+++ b/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java
@@ -47,13 +47,13 @@
@Override
public int compareTo( GpgVersion other )
{
- Pattern p = Pattern.compile( "([.\\d]+)$" );
+ Pattern p = Pattern.compile( "(\\d+\\.)+(\\d+)" );
String[] thisSegments;
Matcher m = p.matcher( rawVersion );
if ( m.find() )
{
- thisSegments = m.group( 1 ).split( "\\." );
+ thisSegments = m.group( 0 ).split( "\\." );
}
else
{
@@ -64,7 +64,7 @@
m = p.matcher( other.rawVersion );
if ( m.find() )
{
- otherSegments = m.group( 1 ).split( "\\." );
+ otherSegments = m.group( 0 ).split( "\\." );
}
else
{
diff --git a/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java b/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java
index fb6bf47..337416d 100644
--- a/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java
+++ b/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java
@@ -19,11 +19,13 @@
* under the License.
*/
-import static org.junit.Assert.assertTrue;
-
-import org.apache.maven.plugins.gpg.GpgVersion;
import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Tests for {@link GpgVersion}.
+ */
public class GpgVersionTest
{
@Test
@@ -32,6 +34,8 @@
assertTrue( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).isAtLeast( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ) ) );
assertTrue( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).isAtLeast( GpgVersion.parse( "2.1" ) ) );
assertTrue( GpgVersion.parse( "gpg (GnuPG/MacGPG2) 2.2.10" ).isAtLeast( GpgVersion.parse( "2.2.10" ) ) );
+ assertTrue( GpgVersion.parse( "gpg (GnuPG) 2.0.26 (Gpg4win 2.2.3)" )
+ .isAtLeast( GpgVersion.parse( "2.0.26" ) ) );
}
}