You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/09/04 03:13:20 UTC

svn commit: r267532 - /maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java

Author: brett
Date: Sat Sep  3 18:13:15 2005
New Revision: 267532

URL: http://svn.apache.org/viewcvs?rev=267532&view=rev
Log:
PR: MNG-833
Submitted by: Christoph Sturm
Reviewed by: Brett Porter
o fix NPE
o allow linking of projects in the reactor as modules

Modified:
    maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java

Modified: maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java?rev=267532&r1=267531&r2=267532&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java Sat Sep  3 18:13:15 2005
@@ -110,9 +110,9 @@
     private void rewriteProject()
         throws MojoExecutionException
     {
+        File projectFile = new File( project.getBasedir(), project.getArtifactId() + ".ipr" );
         try
         {
-            File projectFile = new File( project.getBasedir(), project.getArtifactId() + ".ipr" );
             Reader reader;
             if ( projectFile.exists() )
             {
@@ -162,7 +162,8 @@
             else
             {
                 Xpp3Dom m = createElement( modules, "module" );
-                String modulePath = new File( project.getBasedir(), project.getArtifactId() + ".iml" ).getAbsolutePath();
+                String modulePath = new File( project.getBasedir(),
+                                              project.getArtifactId() + ".iml" ).getAbsolutePath();
                 m.setAttribute( "filepath", "$PROJECT_DIR$/" + toRelative( project.getBasedir(), modulePath ) );
             }
 
@@ -178,20 +179,20 @@
         }
         catch ( XmlPullParserException e )
         {
-            throw new MojoExecutionException( "Error parsing existing IML file", e );
+            throw new MojoExecutionException( "Error parsing existing IPR file: " + projectFile.getAbsolutePath(), e );
         }
         catch ( IOException e )
         {
-            throw new MojoExecutionException( "Error parsing existing IML file", e );
+            throw new MojoExecutionException( "Error parsing existing IPR file: " + projectFile.getAbsolutePath(), e );
         }
     }
 
     private void rewriteModule()
         throws MojoExecutionException
     {
+        File moduleFile = new File( project.getBasedir(), project.getArtifactId() + ".iml" );
         try
         {
-            File moduleFile = new File( project.getBasedir(), project.getArtifactId() + ".iml" );
             Reader reader;
             if ( moduleFile.exists() )
             {
@@ -214,11 +215,11 @@
 
             // TODO: how can we let the WAR/EJBs plugin hook in and provide this?
             // TODO: merge in ejb-module, etc.
-            if ( project.getPackaging().equals( "war" ) )
+            if ( "war".equals( project.getPackaging() ) )
             {
                 addWebModule( module );
             }
-            else if ( project.getPackaging().equals( "ejb" ) )
+            else if ( "ejb".equals( project.getPackaging() ) )
             {
                 module.setAttribute( "type", "J2EE_EJB_MODULE" );
             }
@@ -264,20 +265,27 @@
             for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); )
             {
                 Artifact a = (Artifact) i.next();
-                // TODO: resolve projects in reactor as references
-
                 Xpp3Dom dep = createElement( component, "orderEntry" );
-                dep.setAttribute( "type", "module-library" );
-
-                dep = createElement( dep, "library" );
-                dep.setAttribute( "name", a.getArtifactId() );
 
-                Xpp3Dom el = createElement( dep, "CLASSES" );
-                el = createElement( el, "root" );
-                el.setAttribute( "url", "jar://" + a.getFile().getAbsolutePath().replace( '\\', '/' ) + "!/" );
+                if ( a.getFile() != null )
+                {
+                    dep.setAttribute( "type", "module-library" );
+                    dep = createElement( dep, "library" );
+                    dep.setAttribute( "name", a.getArtifactId() );
+
+                    Xpp3Dom el = createElement( dep, "CLASSES" );
+                    el = createElement( el, "root" );
+                    File file = a.getFile();
+                    el.setAttribute( "url", "jar://" + file.getAbsolutePath().replace( '\\', '/' ) + "!/" );
 
-                createElement( dep, "JAVADOC" );
-                createElement( dep, "SOURCES" );
+                    createElement( dep, "JAVADOC" );
+                    createElement( dep, "SOURCES" );
+                }
+                else
+                {
+                    dep.setAttribute( "type", "module" );
+                    dep.setAttribute( "module-name", a.getArtifactId() );
+                }
             }
 
             FileWriter writer = new FileWriter( moduleFile );
@@ -292,11 +300,11 @@
         }
         catch ( XmlPullParserException e )
         {
-            throw new MojoExecutionException( "Error parsing existing IML file", e );
+            throw new MojoExecutionException( "Error parsing existing IML file " + moduleFile.getAbsolutePath(), e );
         }
         catch ( IOException e )
         {
-            throw new MojoExecutionException( "Error parsing existing IML file", e );
+            throw new MojoExecutionException( "Error parsing existing IML file " + moduleFile.getAbsolutePath(), e );
         }
     }
 
@@ -419,7 +427,7 @@
         for ( int i = children.length - 1; i >= 0; i-- )
         {
             Xpp3Dom child = children[i];
-            if ( child.getName().equals( "orderEntry" ) && child.getAttribute( "type" ).equals( "module-library" ) )
+            if ( "orderEntry".equals( child.getName() ) && "module-library".equals( child.getAttribute( "type" ) ) )
             {
                 component.removeChild( i );
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org