You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2011/08/07 21:49:57 UTC

svn commit: r1154754 - in /maven/plugins/trunk/maven-eclipse-plugin/src: it/MECLIPSE-676/ it/MECLIPSE-676/invoker.properties it/MECLIPSE-676/pom.xml it/MECLIPSE-676/verify.bsh main/java/org/apache/maven/plugin/eclipse/LinkedResource.java

Author: rfscholte
Date: Sun Aug  7 19:49:56 2011
New Revision: 1154754

URL: http://svn.apache.org/viewvc?rev=1154754&view=rev
Log:
Fix MECLIPSE-676: linkedResources: <location> vs <locationURI>

Added:
    maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/
    maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/invoker.properties
    maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/pom.xml
    maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/verify.bsh
Modified:
    maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/LinkedResource.java

Added: maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/invoker.properties
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/invoker.properties?rev=1154754&view=auto
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/invoker.properties (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/invoker.properties Sun Aug  7 19:49:56 2011
@@ -0,0 +1 @@
+invoker.goals = eclipse:clean eclipse:eclipse
\ No newline at end of file

Added: maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/pom.xml?rev=1154754&view=auto
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/pom.xml (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/pom.xml Sun Aug  7 19:49:56 2011
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.it</groupId>
+  <artifactId>meclipse-676</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <name>meclipse676</name>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-eclipse-plugin</artifactId>
+        <version>@project.version@</version>
+        <configuration>
+          <linkedResources>
+            <linkedResource>
+              <name>src/main/webapp/docroot/myfolder</name>
+              <type>2</type>
+              <locationURI>FOLDER_VAR/otherfolder/myfolder</locationURI>
+            </linkedResource>
+          </linkedResources>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Added: maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/verify.bsh?rev=1154754&view=auto
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/verify.bsh (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/it/MECLIPSE-676/verify.bsh Sun Aug  7 19:49:56 2011
@@ -0,0 +1,56 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.*;
+import java.util.*;
+import java.util.jar.*;
+import org.codehaus.plexus.util.*;
+
+boolean result = true;
+
+try
+{
+  File dotProject = new File( basedir, ".project");
+  if( !dotProject.exists() ) 
+  {
+    System.err.println( "Expected .project, but file doesn't exist" );
+    return false;
+  }
+  
+  String dotProjectContent = FileUtils.fileRead( dotProject, "UTF-8" );
+  if ( dotProjectContent.indexOf( "<locationURI>FOLDER_VAR/otherfolder/myfolder</locationURI>" ) < 0 )
+  {
+    System.err.println( "Expected .project to contain '<locationURI>FOLDER_VAR/otherfolder/myfolder</locationURI>', but it didn't" );
+    return false;
+  }
+
+  if ( dotProjectContent.indexOf( "<location>" ) >= 0 )
+  {
+    System.err.println( "Expected .project to not contain '<location>', but it did" );
+    return false;
+  }
+  
+}
+catch ( Exception e)
+{
+    e.printStackTrace();
+    result = false;
+}
+return result;
\ No newline at end of file

Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/LinkedResource.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/LinkedResource.java?rev=1154754&r1=1154753&r2=1154754&view=diff
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/LinkedResource.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/LinkedResource.java Sun Aug  7 19:49:56 2011
@@ -38,6 +38,9 @@ public class LinkedResource
     /** Resource location */
     private String location;
 
+    /** Resource localtionURI */
+    private String locationURI;
+
     public String getName()
     {
         return name;
@@ -68,6 +71,16 @@ public class LinkedResource
         this.location = location;
     }
 
+    public String getLocationURI()
+    {
+        return locationURI;
+    }
+
+    public void setLocationURI( String locationURI )
+    {
+        this.locationURI = locationURI;
+    }
+
     /**
      * Default constructor
      */
@@ -104,10 +117,15 @@ public class LinkedResource
         type = typeNode.getValue();
 
         Xpp3Dom locationNode = node.getChild( "location" );
+        Xpp3Dom locationURINode = node.getChild( "locationURI" );
 
-        if ( locationNode == null )
+        if ( locationNode == null && locationURINode == null )
         {
-            throw new IllegalArgumentException( "No location node." );
+            throw new IllegalArgumentException( "No location or locationURI node." );
+        }
+        else if ( locationNode != null && locationURINode != null )
+        {
+            throw new IllegalArgumentException( "Both location and locationURI nodes are set." );
         }
 
         location = locationNode.getValue();
@@ -125,9 +143,18 @@ public class LinkedResource
         writer.writeText( type );
         writer.endElement(); // type
 
-        writer.startElement( "location" );
-        writer.writeText( location );
-        writer.endElement(); // location
+        if ( location != null )
+        {
+            writer.startElement( "location" );
+            writer.writeText( location );
+            writer.endElement(); // location
+        }
+        else if ( locationURI != null )
+        {
+            writer.startElement( "locationURI" );
+            writer.writeText( locationURI );
+            writer.endElement(); // locationURI
+        }
         writer.endElement();// link
     }
 
@@ -138,7 +165,8 @@ public class LinkedResource
             LinkedResource b = (LinkedResource) obj;
 
             return name.equals( b.name ) && ( type == null ? b.type == null : type.equals( b.type ) )
-                && ( location == null ? b.location == null : location.equals( b.location ) );
+                && ( location == null ? b.location == null : location.equals( b.location ) )
+                && ( locationURI == null ? b.locationURI == null : locationURI.equals( b.locationURI ) );
         }
         else
         {
@@ -149,6 +177,7 @@ public class LinkedResource
     public int hashCode()
     {
         return name.hashCode() + ( type == null ? 0 : 13 * type.hashCode() )
-            + ( location == null ? 0 : 17 * location.hashCode() );
+            + ( location == null ? 0 : 17 * location.hashCode() )
+            + ( locationURI == null ? 0 : 19 * locationURI.hashCode() );
     }
 }