Author: carlos
Date: Fri Sep 7 16:45:40 2007
New Revision: 573759
URL: http://svn.apache.org/viewvc?rev=573759&view=rev
Log:
use major.minor.service always, filling with 0s if required
Added:
maven/shared/trunk/maven-osgi/src/test/resources/aopalliance-1.0.jar
(with props)
Modified:
maven/shared/trunk/maven-osgi/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java
maven/shared/trunk/maven-osgi/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java
Modified:
maven/shared/trunk/maven-osgi/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-osgi/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java?rev=573759&r1=573758&r2=573759&view=diff
==============================================================================
---
maven/shared/trunk/maven-osgi/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java
(original)
+++
maven/shared/trunk/maven-osgi/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java
Fri Sep 7 16:45:40 2007
@@ -48,7 +48,7 @@
/** 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 @@
}
}
- /* 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 @@
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();
+ }
}
Modified:
maven/shared/trunk/maven-osgi/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-osgi/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java?rev=573759&r1=573758&r2=573759&view=diff
==============================================================================
---
maven/shared/trunk/maven-osgi/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java
(original)
+++
maven/shared/trunk/maven-osgi/src/test/java/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.java
Fri Sep 7 16:45:40 2007
@@ -38,7 +38,8 @@
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 @@
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 @@
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 );
Added: maven/shared/trunk/maven-osgi/src/test/resources/aopalliance-1.0.jar
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-osgi/src/test/resources/aopalliance-1.0.jar?rev=573759&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/shared/trunk/maven-osgi/src/test/resources/aopalliance-1.0.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream