You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2017/12/09 17:23:25 UTC
[maven-osgi] 03/44: use major.minor.service always,
filling with 0s if required
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-osgi.git
commit d0a5fa84aa3fb71a700d6d9f698f7790698cf7b3
Author: Carlos Sanchez Gonzalez <ca...@apache.org>
AuthorDate: Fri Sep 7 23:45:40 2007 +0000
use major.minor.service always, filling with 0s if required
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@573759 13f79535-47bb-0310-9956-ffa450edef68
---
.../shared/osgi/DefaultMaven2OsgiConverter.java | 61 +++++++++++++++++----
.../maven/shared/osgi/Maven2OsgiConverterTest.java | 25 +++++++--
src/test/resources/aopalliance-1.0.jar | Bin 0 -> 4467 bytes
3 files changed, 70 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java b/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java
index 8e44c60..477cf58 100644
--- a/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java
+++ b/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java
@@ -48,7 +48,7 @@ public class DefaultMaven2OsgiConverter
/** Bundle-Version must match this pattern */
private static final Pattern OSGI_VERSION_PATTERN = Pattern
- .compile( "[0-9]+(\\.[0-9]+(\\.[0-9]+(\\.[0-9A-Za-z_-]+)?)?)?" );
+ .compile( "[0-9]+\\.[0-9]+\\.[0-9]+(\\.[0-9A-Za-z_-]+)?" );
/** pattern used to change - to . */
// private static final Pattern P_VERSION = Pattern.compile("([0-9]+(\\.[0-9])*)-(.*)");
@@ -291,21 +291,47 @@ public class DefaultMaven2OsgiConverter
}
}
- /* convert 1.string into 1.0.0.string and 1.2.string into 1.2.0.string */
- Pattern NEED_TO_FILL_ZEROS = Pattern.compile( "([0-9])(\\.([0-9]))?\\.([0-9A-Za-z_-]+)" );
+ /* convert
+ * 1.string -> 1.0.0.string
+ * 1.2.string -> 1.2.0.string
+ * 1 -> 1.0.0
+ * 1.1 -> 1.1.0
+ */
+ //Pattern NEED_TO_FILL_ZEROS = Pattern.compile( "([0-9])(\\.([0-9]))?\\.([0-9A-Za-z_-]+)" );
+ Pattern NEED_TO_FILL_ZEROS = Pattern.compile( "([0-9])(\\.([0-9]))?(\\.([0-9A-Za-z_-]+))?" );
m = NEED_TO_FILL_ZEROS.matcher( osgiVersion );
if ( m.matches() )
{
String major = m.group( 1 );
- String minor = ( m.group( 3 ) != null ) ? m.group( 3 ) : "0";
- String service = "0";
- String qualifier = m.group( 4 );
+ String minor = m.group( 3 );
+ String service = null;
+ String qualifier = m.group( 5 );
- Matcher qualifierMatcher = ONLY_NUMBERS.matcher( qualifier );
- /* if last portion is only numbers then it's not a qualifier */
- if ( !qualifierMatcher.matches() )
+ /* if there's no qualifier just fill with 0s */
+ if ( qualifier == null )
{
- osgiVersion = major + "." + minor + "." + service + "." + qualifier;
+ osgiVersion = getVersion( major, minor, service, qualifier );
+ }
+ else
+ {
+ /* if last portion is only numbers then it's not a qualifier */
+ Matcher qualifierMatcher = ONLY_NUMBERS.matcher( qualifier );
+ if ( qualifierMatcher.matches() )
+ {
+ if ( minor == null )
+ {
+ minor = qualifier;
+ }
+ else
+ {
+ service = qualifier;
+ }
+ osgiVersion = getVersion( major, minor, service, null );
+ }
+ else
+ {
+ osgiVersion = getVersion( major, minor, service, qualifier );
+ }
}
}
@@ -323,4 +349,19 @@ public class DefaultMaven2OsgiConverter
return osgiVersion;
}
+ private String getVersion( String major, String minor, String service, String qualifier )
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append( major != null ? major : "0" );
+ sb.append( '.' );
+ sb.append( minor != null ? minor : "0" );
+ sb.append( '.' );
+ sb.append( service != null ? service : "0" );
+ if ( qualifier != null )
+ {
+ sb.append( '.' );
+ sb.append( qualifier );
+ }
+ return sb.toString();
+ }
}
diff --git a/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java b/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java
index 7582b91..39f8188 100644
--- a/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java
+++ b/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java
@@ -38,7 +38,8 @@ public class Maven2OsgiConverterTest
public void testGetBundleSymbolicName()
{
ArtifactStub artifact = getTestArtifact();
- String s = maven2Osgi.getBundleSymbolicName( artifact );
+ String s;
+ s = maven2Osgi.getBundleSymbolicName( artifact );
assertEquals( "org.apache.commons.logging", s );
artifact.setGroupId( "org.apache.commons" );
@@ -72,20 +73,32 @@ public class Maven2OsgiConverterTest
artifact.setArtifactId( "xercesImpl" );
s = maven2Osgi.getBundleSymbolicName( artifact );
assertEquals( "xerces.Impl", s );
+
+ artifact.setFile( getTestFile( "aopalliance-1.0.jar" ) );
+ artifact.setGroupId( "org.aopalliance" );
+ artifact.setArtifactId( "aopalliance" );
+ s = maven2Osgi.getBundleSymbolicName( artifact );
+ assertEquals( "org.aopalliance", s );
}
public void testGetBundleFileName()
{
ArtifactStub artifact = getTestArtifact();
- String s = maven2Osgi.getBundleFileName( artifact );
- assertEquals( "org.apache.commons.logging_1.1.jar", s );
+ String s;
+ s = maven2Osgi.getBundleFileName( artifact );
+ assertEquals( "org.apache.commons.logging_1.1.0.jar", s );
+
+ artifact.setGroupId( "org.aopalliance" );
+ artifact.setArtifactId( "aopalliance" );
+ s = maven2Osgi.getBundleFileName( artifact );
+ assertEquals( "org.aopalliance_1.1.0.jar", s );
}
public void testGetVersion()
{
ArtifactStub artifact = getTestArtifact();
String s = maven2Osgi.getVersion( artifact );
- assertEquals( "1.1", s );
+ assertEquals( "1.1.0", s );
}
public void testConvertVersionToOsgi()
@@ -102,10 +115,10 @@ public class Maven2OsgiConverterTest
assertEquals( "2.0.0.SNAPSHOT", osgiVersion );
osgiVersion = maven2Osgi.getVersion( "2" );
- assertEquals( "2", osgiVersion );
+ assertEquals( "2.0.0", osgiVersion );
osgiVersion = maven2Osgi.getVersion( "2.1" );
- assertEquals( "2.1", osgiVersion );
+ assertEquals( "2.1.0", osgiVersion );
osgiVersion = maven2Osgi.getVersion( "2.1.3" );
assertEquals( "2.1.3", osgiVersion );
diff --git a/src/test/resources/aopalliance-1.0.jar b/src/test/resources/aopalliance-1.0.jar
new file mode 100644
index 0000000..578b1a0
Binary files /dev/null and b/src/test/resources/aopalliance-1.0.jar differ
--
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.