Author: epunzalan
Date: Tue Feb 28 19:27:51 2006
New Revision: 381891

URL: http://svn.apache.org/viewcvs?rev=381891&view=rev
Log:
PR: MIDEA-15
Submitted by: Geoffrey De Smet

Applied patch to support war module configuration in iml files

Modified:
    
maven/plugins/trunk/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
    
maven/plugins/trunk/maven-idea-plugin/src/main/resources/templates/default/module.xml

Modified: 
maven/plugins/trunk/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java?rev=381891&r1=381890&r2=381891&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
 Tue Feb 28 19:27:51 2006
@@ -533,6 +533,56 @@
         setting.setAttribute( "value", getModuleFileUrl( warWebapp ) );
 
         component = findComponent( module, "WebModuleProperties" );
+
+        removeOldElements( component, "containerElement" );
+        List artifacts = project.getTestArtifacts();
+        for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
+            if ( artifact.getScope().equals( "compile" ) || 
artifact.getScope().equals( "runtime" ) )
+            {
+                Xpp3Dom containerElement = createElement( component, 
"containerElement" );
+
+                boolean linkAsModule = false;
+                if ( reactorProjects != null && linkModules )
+                {
+                    for ( Iterator j = reactorProjects.iterator(); j.hasNext() 
&& !linkAsModule; )
+                    {
+                        MavenProject p = (MavenProject) j.next();
+                        if ( p.getGroupId().equals( artifact.getGroupId() ) &&
+                            p.getArtifactId().equals( artifact.getArtifactId() 
) )
+                        {
+                            linkAsModule = true;
+                        }
+                    }
+                }
+
+                if ( linkAsModule )
+                {
+                    containerElement.setAttribute( "type", "module" );
+                    containerElement.setAttribute( "name", 
artifact.getArtifactId() );
+                    Xpp3Dom methodAttribute = createElement( containerElement, 
"attribute" );
+                    methodAttribute.setAttribute( "name", "method" );
+                    methodAttribute.setAttribute( "value", "1" );
+                    Xpp3Dom uriAttribute = createElement( containerElement, 
"attribute" );
+                    uriAttribute.setAttribute( "name", "URI" );
+                    uriAttribute.setAttribute( "value", "/WEB-INF/classes" );
+                }
+                else if ( artifact.getFile() != null )
+                {
+                    containerElement.setAttribute( "type", "library" );
+                    containerElement.setAttribute( "level", "module" );
+                    containerElement.setAttribute( "name", 
artifact.getArtifactId() );
+                    Xpp3Dom methodAttribute = createElement( containerElement, 
"attribute" );
+                    methodAttribute.setAttribute( "name", "method" );
+                    methodAttribute.setAttribute( "value", "1" ); // IntelliJ 
5.0.2 is bugged and doesn't read it
+                    Xpp3Dom uriAttribute = createElement( containerElement, 
"attribute" );
+                    uriAttribute.setAttribute( "name", "URI" );
+                    uriAttribute.setAttribute( "value", "/WEB-INF/lib/" + 
artifact.getFile().getName() );
+                }
+            }
+        }
+
         Xpp3Dom element = findElement( component, "deploymentDescriptor" );
         if ( element.getAttribute( "version" ) == null )
         {

Modified: 
maven/plugins/trunk/maven-idea-plugin/src/main/resources/templates/default/module.xml
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-idea-plugin/src/main/resources/templates/default/module.xml?rev=381891&r1=381890&r2=381891&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-idea-plugin/src/main/resources/templates/default/module.xml
 (original)
+++ 
maven/plugins/trunk/maven-idea-plugin/src/main/resources/templates/default/module.xml
 Tue Feb 28 19:27:51 2006
@@ -43,4 +43,20 @@
      -->
   </component>
   <component name="ModuleRootManager"/>
+  <!-- If it's a war project:
+  <component name="WebModuleProperties">
+    <containerElement type="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/classes" />
+    </containerElement>
+    <containerElement type="library" level="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/${dep.systemPath.name}" />
+    </containerElement>
+    <deploymentDescriptor name="web.xml" 
url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}/WEB-INF/web.xml" 
version="" />
+    <webroots>
+      <root url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}" 
relative="/" />
+    </webroots>
+  </component>
+  -->
 </module>


Reply via email to