Skip to content

Commit d50608e

Browse files
committed
[MECLIPSE-738] Fix constructing a LinkedResource with a locationURI in the XML.
Allow that either, but not both, and not neither, of the location properties could be set. Include tests. Submitted by: Joseph Walton o Applied without changes git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1669194 13f79535-47bb-0310-9956-ffa450edef68
1 parent b556cc8 commit d50608e

2 files changed

Lines changed: 69 additions & 1 deletion

File tree

src/main/java/org/apache/maven/plugin/eclipse/LinkedResource.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,15 @@ else if ( locationNode != null && locationURINode != null )
128128
throw new IllegalArgumentException( "Both location and locationURI nodes are set." );
129129
}
130130

131-
location = locationNode.getValue();
131+
if (locationNode != null)
132+
{
133+
location = locationNode.getValue();
134+
}
135+
136+
if (locationURINode != null)
137+
{
138+
locationURI = locationURINode.getValue();
139+
}
132140
}
133141

134142
public void print( XMLWriter writer )
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package org.apache.maven.plugin.eclipse;
21+
22+
import static org.junit.Assert.assertEquals;
23+
24+
import org.codehaus.plexus.util.xml.Xpp3Dom;
25+
import org.junit.Test;
26+
27+
public class LinkedResourceTest
28+
{
29+
@Test
30+
public void nodeWithOnlyLocationIsAccepted()
31+
{
32+
Xpp3Dom node = new Xpp3Dom("test");
33+
node.addChild(new Xpp3Dom("name"));
34+
node.addChild(new Xpp3Dom("type"));
35+
36+
Xpp3Dom location = new Xpp3Dom("location");
37+
location.setValue("the-location");
38+
39+
node.addChild(location);
40+
41+
LinkedResource lr = new LinkedResource(node);
42+
assertEquals("the-location", lr.getLocation());
43+
}
44+
45+
@Test
46+
public void nodeWithOnlyLocationUriIsAccepted()
47+
{
48+
Xpp3Dom node = new Xpp3Dom("test");
49+
node.addChild(new Xpp3Dom("name"));
50+
node.addChild(new Xpp3Dom("type"));
51+
52+
Xpp3Dom location = new Xpp3Dom("locationURI");
53+
location.setValue("the-location-uri");
54+
55+
node.addChild(location);
56+
57+
LinkedResource lr = new LinkedResource(node);
58+
assertEquals("the-location-uri", lr.getLocationURI());
59+
}
60+
}

0 commit comments

Comments
 (0)