You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by fg...@apache.org on 2006/10/18 15:54:21 UTC
svn commit: r465250 - in
/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin:
eclipse/writers/EclipseOSGiManifestWriter.java ide/IdeDependency.java
Author: fgiust
Date: Wed Oct 18 06:54:20 2006
New Revision: 465250
URL: http://svn.apache.org/viewvc?view=rev&rev=465250
Log:
sort dependencies when writing an Osgi Manifest (note that there is still an open issue for sorting also in other configuration files, MECLIPSE-152 but at this moment the modification to manifest only look safer...)
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseOSGiManifestWriter.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java
Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseOSGiManifestWriter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseOSGiManifestWriter.java?view=diff&rev=465250&r1=465249&r2=465250
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseOSGiManifestWriter.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseOSGiManifestWriter.java Wed Oct 18 06:54:20 2006
@@ -21,6 +21,7 @@
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.util.Arrays;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.eclipse.Messages;
@@ -214,10 +215,9 @@
/**
* Add all libraries that don't have the scope "provided" to the "Bundle-Classpath".
- * @throws MojoExecutionException
+ * @return complete "Bundle-ClassPath:" entry for manifest
*/
protected String addBundleClasspathEntries()
- throws MojoExecutionException
{
StringBuffer bundleClasspathSb = new StringBuffer( ENTRY_BUNDLE_CLASSPATH );
@@ -225,9 +225,15 @@
// @todo handle expanded plugins
bundleClasspathSb.append( " ." );
- for ( int j = 0; j < config.getDeps().length; j++ )
+ IdeDependency[] deps = config.getDeps();
+
+ // since Manifest is supposed to be in SVN, having the order of classpath entries shuffled at each run is very
+ // annoying. For now just sort them by using groupId/artifactId
+ Arrays.sort( deps );
+
+ for ( int j = 0; j < deps.length; j++ )
{
- IdeDependency dep = config.getDeps()[j];
+ IdeDependency dep = deps[j];
if ( !dep.isProvided() && !dep.isReferencedProject() && !dep.isTestDependency() )
{
bundleClasspathSb.append( "," + NEWLINE );
Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java?view=diff&rev=465250&r1=465249&r2=465250
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeDependency.java Wed Oct 18 06:54:20 2006
@@ -23,6 +23,7 @@
* @version $Id$
*/
public class IdeDependency
+ implements Comparable
{
/**
* Is this dependency available in the reactor?
@@ -349,6 +350,32 @@
public String toString()
{
return getId();
+ }
+
+ /**
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ * Compare using groupId+artifactId+type Strings
+ */
+ public int compareTo( Object o )
+ {
+ IdeDependency dep = (IdeDependency) o;
+ int equals = this.getGroupId().compareTo( dep.getGroupId() );
+ if ( equals != 0 )
+ {
+ return equals;
+ }
+ equals = this.getArtifactId().compareTo( dep.getArtifactId() );
+ if ( equals != 0 )
+ {
+ return equals;
+ }
+ equals = this.getType().compareTo( dep.getType() );
+ if ( equals != 0 )
+ {
+ return equals;
+ }
+
+ return 0;
}
}