Author: aheritier
Date: Thu Nov 29 19:02:08 2007
New Revision: 599684
URL: http://svn.apache.org/viewvc?rev=599684&view=rev
Log:
MECLIPSE-152 : Write .classpath (and related) with ordered dependencies
Submitted by: Holger Hoffstätte
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseManifestWriter.java
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/eclipse/writers/EclipseProjectWriter.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWriterConfig.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadApplicationXMLWriter.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadLibCopier.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadManifestWriter.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadWebSettingsWriter.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/AbstractWtpResourceWriter.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/EclipseWtpApplicationXMLWriter.java
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.java
Thu Nov 29 19:02:08 2007
@@ -340,9 +340,11 @@
// The dependencies
//
----------------------------------------------------------------------
Set addedDependencies = new HashSet();
- for ( int j = 0; j < config.getDeps().length; j++ )
+ // TODO if (..magic property equals orderDependencies..)
+ IdeDependency[] depsToWrite = config.getDepsOrdered();
+ for ( int j = 0; j < depsToWrite.length; j++ )
{
- IdeDependency dep = config.getDeps()[j];
+ IdeDependency dep = depsToWrite[j];
if ( dep.isAddedToClasspath() )
{
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseManifestWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseManifestWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseManifestWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseManifestWriter.java
Thu Nov 29 19:02:08 2007
@@ -332,7 +332,7 @@
private String constructManifestClasspath()
{
StringBuffer stringBuffer = new StringBuffer();
- IdeDependency[] deps = this.config.getDeps();
+ IdeDependency[] deps = this.config.getDepsOrdered();
for ( int index = 0; index < deps.length; index++ )
{
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?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
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
Thu Nov 29 19:02:08 2007
@@ -241,7 +241,7 @@
// @todo handle expanded plugins
bundleClasspathSb.append( " ." );
- IdeDependency[] deps = config.getDeps();
+ IdeDependency[] deps = config.getDepsOrdered();
// 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
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseProjectWriter.java
Thu Nov 29 19:02:08 2007
@@ -188,9 +188,9 @@
// referenced projects should not be added for plugins
if ( !config.isPde() )
{
- for ( int j = 0; j < config.getDeps().length; j++ )
+ for ( int j = 0; j < config.getDepsOrdered().length; j++ )
{
- IdeDependency dep = config.getDeps()[j];
+ IdeDependency dep = config.getDepsOrdered()[j];
if ( dep.isReferencedProject() )
{
writer.startElement( "project" ); //$NON-NLS-1$
@@ -224,7 +224,7 @@
boolean addLinks = !config.getProjectBaseDir().equals(
config.getEclipseProjectDirectory() );
- if ( addLinks || ( config.isPde() && config.getDeps().length > 0 ) )
+ if ( addLinks || ( config.isPde() && config.getDepsOrdered().length >
0 ) )
{
writer.startElement( "linkedResources" ); //$NON-NLS-1$
@@ -248,9 +248,9 @@
if ( config.isPde() )
{
- for ( int j = 0; j < config.getDeps().length; j++ )
+ for ( int j = 0; j < config.getDepsOrdered().length; j++ )
{
- IdeDependency dep = config.getDeps()[j];
+ IdeDependency dep = config.getDepsOrdered()[j];
if ( dep.isAddedToClasspath() && !dep.isProvided() &&
!dep.isReferencedProject() &&
!dep.isTestDependency() && !dep.isOsgiBundle() )
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWriterConfig.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWriterConfig.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWriterConfig.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWriterConfig.java
Thu Nov 29 19:02:08 2007
@@ -19,6 +19,8 @@
package org.apache.maven.plugin.eclipse.writers;
import java.io.File;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
@@ -62,7 +64,12 @@
/**
* List of IDE dependencies.
*/
- private IdeDependency[] deps;
+ private IdeDependency[] deps = new IdeDependency[0];
+
+ /**
+ * List of IDE dependencies ordered.
+ */
+ private IdeDependency[] orderedDeps = new IdeDependency[0];
/**
* Source directories.
@@ -155,6 +162,24 @@
public void setDeps( IdeDependency[] deps )
{
this.deps = deps;
+ if ( deps != null )
+ {
+ // TODO get the right comparator depending on
orderDependencies={name,nearness..};
+ // if none specified it could use a NullComparator to reduce the
number of
+ // conditions that have to be checked
+ Comparator depsByArtifactId = new Comparator()
+ {
+ public int compare( Object o1, Object o2 )
+ {
+ return ( (IdeDependency) o1
).getArtifactId().compareToIgnoreCase(
+
( (IdeDependency) o2 ).getArtifactId() );
+ }
+ };
+
+ orderedDeps = new IdeDependency[deps.length];
+ System.arraycopy( deps, 0, orderedDeps, 0, deps.length );
+ Arrays.sort( orderedDeps, depsByArtifactId );
+ }
}
/**
@@ -511,6 +536,14 @@
public void setWtpVersion( float wtpVersion )
{
this.wtpVersion = wtpVersion;
+ }
+
+ /**
+ * @return an ordered list of dependencies
+ */
+ public IdeDependency[] getDepsOrdered()
+ {
+ return orderedDeps;
}
}
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadApplicationXMLWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadApplicationXMLWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadApplicationXMLWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadApplicationXMLWriter.java
Thu Nov 29 19:02:08 2007
@@ -157,7 +157,7 @@
IdeUtils.getPluginConfigurationDom( config.getProject(),
JeeUtils.ARTIFACT_MAVEN_EAR_PLUGIN,
new String[] { "modules",
"webModule" } );
- IdeDependency[] deps = config.getDeps();
+ IdeDependency[] deps = config.getDepsOrdered();
for ( int index = 0; index < deps.length; index++ )
{
updateApplicationXml( applicationXmlDom, modulemapsXmlDom,
deps[index] );
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadLibCopier.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadLibCopier.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadLibCopier.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadLibCopier.java
Thu Nov 29 19:02:08 2007
@@ -50,7 +50,7 @@
public void write()
throws MojoExecutionException
{
- IdeDependency[] deps = config.getDeps();
+ IdeDependency[] deps = config.getDepsOrdered();
String packaging = config.getPackaging();
if ( Constants.PROJECT_PACKAGING_EAR.equals( packaging ) )
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadManifestWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadManifestWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadManifestWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadManifestWriter.java
Thu Nov 29 19:02:08 2007
@@ -287,7 +287,7 @@
private String constructManifestClasspath()
{
StringBuffer stringBuffer = new StringBuffer();
- IdeDependency[] deps = config.getDeps();
+ IdeDependency[] deps = config.getDepsOrdered();
for ( int index = 0; index < deps.length; index++ )
{
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadWebSettingsWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadWebSettingsWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadWebSettingsWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/rad/RadWebSettingsWriter.java
Thu Nov 29 19:02:08 2007
@@ -170,7 +170,7 @@
writer.startElement( WEBSETTINGS_LIBMODULES );
// iterate relevant dependencies (non-test, non-provided, project)
- IdeDependency[] deps = config.getDeps();
+ IdeDependency[] deps = config.getDepsOrdered();
if ( deps != null )
{
for ( int i = 0; i < deps.length; i++ )
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/AbstractWtpResourceWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/AbstractWtpResourceWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/AbstractWtpResourceWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/AbstractWtpResourceWriter.java
Thu Nov 29 19:02:08 2007
@@ -260,9 +260,9 @@
deployDir = "/WEB-INF/lib";
}
// dependencies
- for ( int j = 0; j < config.getDeps().length; j++ )
+ for ( int j = 0; j < config.getDepsOrdered().length; j++ )
{
- IdeDependency dep = config.getDeps()[j];
+ IdeDependency dep = config.getDepsOrdered()[j];
String type = dep.getType();
// NB war is needed for ear projects, we suppose nobody adds a war
dependency to a war/jar project
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/EclipseWtpApplicationXMLWriter.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/EclipseWtpApplicationXMLWriter.java?rev=599684&r1=599683&r2=599684&view=diff
==============================================================================
---
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/EclipseWtpApplicationXMLWriter.java
(original)
+++
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/wtp/EclipseWtpApplicationXMLWriter.java
Thu Nov 29 19:02:08 2007
@@ -144,7 +144,7 @@
IdeUtils.getPluginConfigurationDom( config.getProject(),
JeeUtils.ARTIFACT_MAVEN_EAR_PLUGIN,
new String[] { "modules",
"webModule" } );
- IdeDependency[] deps = this.config.getDeps();
+ IdeDependency[] deps = this.config.getDepsOrdered();
for ( int index = 0; index < deps.length; index++ )
{
updateApplicationXml( applicationXmlDom, modulemapsXmlDom,
deps[index] );