Skip to content

Commit a051374

Browse files
committed
Issue #15 fix
1 parent e306283 commit a051374

5 files changed

Lines changed: 738 additions & 0 deletions

File tree

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,13 @@
9292

9393

9494
<dependencies>
95+
<!-- Issue https://github.com/cecom/pomutils/issues/15 -->
96+
<!-- currently versions-maven-plugin need an update to >3.1.0 of this -->
97+
<dependency>
98+
<groupId>org.codehaus.plexus</groupId>
99+
<artifactId>plexus-utils</artifactId>
100+
<version>3.1.1</version>
101+
</dependency>
95102
<dependency>
96103
<groupId>org.codehaus.mojo</groupId>
97104
<artifactId>versions-maven-plugin</artifactId>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package de.oppermann.pomutils;
2+
3+
/*
4+
* Licensed to the Apache Software Foundation (ASF) under one
5+
* or more contributor license agreements. See the NOTICE file
6+
* distributed with this work for additional information
7+
* regarding copyright ownership. The ASF licenses this file
8+
* to you under the Apache License, Version 2.0 (the
9+
* "License"); you may not use this file except in compliance
10+
* with the License. You may obtain a copy of the License at
11+
*
12+
* http://www.apache.org/licenses/LICENSE-2.0
13+
*
14+
* Unless required by applicable law or agreed to in writing,
15+
* software distributed under the License is distributed on an
16+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17+
* KIND, either express or implied. See the License for the
18+
* specific language governing permissions and limitations
19+
* under the License.
20+
*/
21+
22+
import java.io.File;
23+
24+
import org.codehaus.mojo.versions.api.PomHelper;
25+
26+
import de.oppermann.pomutils.rules.Ruleset;
27+
import de.oppermann.pomutils.select.SelectionStrategy;
28+
import de.oppermann.pomutils.util.POM;
29+
import junit.framework.TestCase;
30+
31+
/**
32+
*
33+
* @author Sven Oppermann <sven.oppermann@gmail.com>
34+
*
35+
*/
36+
37+
public class IssuesTest extends TestCase {
38+
39+
@Override
40+
protected void setUp() throws Exception {
41+
super.setUp();
42+
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "ERROR");
43+
}
44+
45+
public void testIssue15() throws Exception {
46+
String myTestSubFolder = "merge/issues/#15";
47+
48+
TestUtils.prepareTestFolder(myTestSubFolder);
49+
50+
String basePomFile = TestUtils.resourceBaseTestFolder + "/" + myTestSubFolder + "/base.pom.xml";
51+
String ourPomFile = TestUtils.resourceBaseTestFolder + "/" + myTestSubFolder + "/our.pom.xml";
52+
String theirPomFile = TestUtils.resourceBaseTestFolder + "/" + myTestSubFolder + "/their.pom.xml";
53+
54+
Ruleset ruleset = new Ruleset(SelectionStrategy.OUR);
55+
56+
PomMergeDriver pomMergeDriver = new PomMergeDriver(ruleset, basePomFile, ourPomFile, theirPomFile);
57+
int mergeReturnValue = pomMergeDriver.merge();
58+
59+
assertTrue("merge succeeded", mergeReturnValue == 0);
60+
61+
POM theirPom = new POM(theirPomFile);
62+
POM ourPom = new POM(ourPomFile);
63+
64+
assertEquals("our", ourPom.getProjectVersion());
65+
assertEquals("our", theirPom.getProjectVersion());
66+
67+
String theirDependecyVersoin = PomHelper.getRawModel(new File(theirPomFile)).getDependencies().get(0)
68+
.getVersion();
69+
String ourDependencyVersion = PomHelper.getRawModel(new File(ourPomFile)).getDependencies().get(0).getVersion();
70+
71+
assertEquals("dependency version change merged", theirDependecyVersoin, ourDependencyVersion);
72+
}
73+
74+
}
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>x123</groupId>
5+
<artifactId>x123</artifactId>
6+
<version>base</version>
7+
<packaging>pom</packaging>
8+
9+
<dependencies>
10+
<dependency>
11+
<groupId>org.codehaus.mojo</groupId>
12+
<artifactId>versions-maven-plugin</artifactId>
13+
<version>2.1</version>
14+
<type>maven-plugin</type>
15+
</dependency>
16+
</dependencies>
17+
18+
<properties>
19+
<!-- Maven specific -->
20+
<maven.compiler.source>1.8</maven.compiler.source>
21+
<maven.compiler.target>1.8</maven.compiler.target>
22+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23+
<m2e.apt.activation>jdt_apt</m2e.apt.activation>
24+
25+
26+
<fake.property.0>banana</fake.property.0>
27+
<fake.property.1>banana</fake.property.1>
28+
<fake.property.2>banana</fake.property.2>
29+
<fake.property.3>banana</fake.property.3>
30+
<fake.property.4>banana</fake.property.4>
31+
<fake.property.5>banana</fake.property.5>
32+
<fake.property.6>banana</fake.property.6>
33+
<fake.property.7>banana</fake.property.7>
34+
<fake.property.8>banana</fake.property.8>
35+
<fake.property.9>banana</fake.property.9>
36+
<fake.property.10>banana</fake.property.10>
37+
<fake.property.11>banana</fake.property.11>
38+
<fake.property.12>banana</fake.property.12>
39+
<fake.property.13>banana</fake.property.13>
40+
<fake.property.14>banana</fake.property.14>
41+
<fake.property.15>banana</fake.property.15>
42+
<fake.property.16>banana</fake.property.16>
43+
<fake.property.17>banana</fake.property.17>
44+
<fake.property.18>banana</fake.property.18>
45+
<fake.property.19>banana</fake.property.19>
46+
<fake.property.20>banana</fake.property.20>
47+
<fake.property.21>banana</fake.property.21>
48+
<fake.property.22>banana</fake.property.22>
49+
<fake.property.23>banana</fake.property.23>
50+
<fake.property.24>banana</fake.property.24>
51+
<fake.property.25>banana</fake.property.25>
52+
<fake.property.26>banana</fake.property.26>
53+
<fake.property.27>banana</fake.property.27>
54+
<fake.property.28>banana</fake.property.28>
55+
<fake.property.29>banana</fake.property.29>
56+
<fake.property.30>banana</fake.property.30>
57+
<fake.property.31>banana</fake.property.31>
58+
<fake.property.32>banana</fake.property.32>
59+
<fake.property.33>banana</fake.property.33>
60+
<fake.property.34>banana</fake.property.34>
61+
<fake.property.35>banana</fake.property.35>
62+
<fake.property.36>banana</fake.property.36>
63+
<fake.property.37>banana</fake.property.37>
64+
<fake.property.38>banana</fake.property.38>
65+
<fake.property.39>banana</fake.property.39>
66+
<fake.property.40>banana</fake.property.40>
67+
<fake.property.41>banana</fake.property.41>
68+
<fake.property.42>banana</fake.property.42>
69+
<fake.property.43>banana</fake.property.43>
70+
<fake.property.44>banana</fake.property.44>
71+
<fake.property.45>banana</fake.property.45>
72+
<fake.property.46>banana</fake.property.46>
73+
<fake.property.47>banana</fake.property.47>
74+
<fake.property.48>banana</fake.property.48>
75+
<fake.property.49>banana</fake.property.49>
76+
<fake.property.50>banana</fake.property.50>
77+
<fake.property.51>banana</fake.property.51>
78+
<fake.property.52>banana</fake.property.52>
79+
<fake.property.53>banana</fake.property.53>
80+
<fake.property.54>banana</fake.property.54>
81+
<fake.property.55>banana</fake.property.55>
82+
<fake.property.56>banana</fake.property.56>
83+
<fake.property.57>banana</fake.property.57>
84+
<fake.property.58>banana</fake.property.58>
85+
<fake.property.59>banana</fake.property.59>
86+
<fake.property.60>banana</fake.property.60>
87+
<fake.property.61>banana</fake.property.61>
88+
<fake.property.62>banana</fake.property.62>
89+
<fake.property.63>banana</fake.property.63>
90+
<fake.property.64>banana</fake.property.64>
91+
<fake.property.65>banana</fake.property.65>
92+
<fake.property.66>banana</fake.property.66>
93+
<fake.property.67>banana</fake.property.67>
94+
<fake.property.68>banana</fake.property.68>
95+
<fake.property.69>banana</fake.property.69>
96+
<fake.property.70>banana</fake.property.70>
97+
<fake.property.71>banana</fake.property.71>
98+
<fake.property.72>banana</fake.property.72>
99+
<fake.property.73>banana</fake.property.73>
100+
<fake.property.74>banana</fake.property.74>
101+
<fake.property.75>banana</fake.property.75>
102+
<fake.property.76>banana</fake.property.76>
103+
<fake.property.77>banana</fake.property.77>
104+
<fake.property.78>banana</fake.property.78>
105+
<fake.property.79>banana</fake.property.79>
106+
<fake.property.80>banana</fake.property.80>
107+
<fake.property.81>banana</fake.property.81>
108+
<fake.property.82>banana</fake.property.82>
109+
<fake.property.83>banana</fake.property.83>
110+
<fake.property.84>banana</fake.property.84>
111+
<fake.property.85>banana</fake.property.85>
112+
<fake.property.86>banana</fake.property.86>
113+
<fake.property.87>banana</fake.property.87>
114+
<fake.property.88>banana</fake.property.88>
115+
<fake.property.89>banana</fake.property.89>
116+
<fake.property.90>banana</fake.property.90>
117+
<fake.property.91>banana</fake.property.91>
118+
<fake.property.92>banana</fake.property.92>
119+
<fake.property.93>banana</fake.property.93>
120+
<fake.property.94>banana</fake.property.94>
121+
<fake.property.95>banana</fake.property.95>
122+
<fake.property.96>banana</fake.property.96>
123+
<fake.property.97>banana</fake.property.97>
124+
<fake.property.98>banana</fake.property.98>
125+
<fake.property.99>banana</fake.property.99>
126+
<fake.property.100>banana</fake.property.100>
127+
<fake.property.101>banana</fake.property.101>
128+
<fake.property.102>banana</fake.property.102>
129+
<fake.property.103>banana</fake.property.103>
130+
<fake.property.104>banana</fake.property.104>
131+
<fake.property.105>banana</fake.property.105>
132+
<fake.property.106>banana</fake.property.106>
133+
<fake.property.107>banana</fake.property.107>
134+
<fake.property.108>banana</fake.property.108>
135+
<fake.property.109>banana</fake.property.109>
136+
<fake.property.110>banana</fake.property.110>
137+
<fake.property.111>banana</fake.property.111>
138+
<fake.property.112>banana</fake.property.112>
139+
<fake.property.113>banana</fake.property.113>
140+
<fake.property.114>banana</fake.property.114>
141+
<fake.property.115>banana</fake.property.115>
142+
<fake.property.116>banana</fake.property.116>
143+
<fake.property.117>banana</fake.property.117>
144+
<fake.property.118>banana</fake.property.118>
145+
<fake.property.119>banana</fake.property.119>
146+
<fake.property.120>banana</fake.property.120>
147+
<fake.property.121>banana</fake.property.121>
148+
<fake.property.122>banana</fake.property.122>
149+
<fake.property.123>banana</fake.property.123>
150+
<fake.property.124>banana</fake.property.124>
151+
<fake.property.125>banana</fake.property.125>
152+
<fake.property.126>banana</fake.property.126>
153+
<fake.property.127>banana</fake.property.127>
154+
<fake.property.128>banana</fake.property.128>
155+
<fake.property.129>banana</fake.property.129>
156+
<fake.property.130>banana</fake.property.130>
157+
<fake.property.131>banana</fake.property.131>
158+
<fake.property.132>banana</fake.property.132>
159+
<fake.property.133>banana</fake.property.133>
160+
<fake.property.134>banana</fake.property.134>
161+
<fake.property.135>banana</fake.property.135>
162+
<fake.property.136>banana</fake.property.136>
163+
<fake.property.137>banana</fake.property.137>
164+
<fake.property.138>banana</fake.property.138>
165+
<fake.property.139>banana</fake.property.139>
166+
<fake.property.140>banana</fake.property.140>
167+
<fake.property.141>banana</fake.property.141>
168+
<fake.property.142>banana</fake.property.142>
169+
<fake.property.143>banana</fake.property.143>
170+
<fake.property.144>banana</fake.property.144>
171+
<fake.property.145>banana</fake.property.145>
172+
<fake.property.146>banana</fake.property.146>
173+
<fake.property.147>banana</fake.property.147>
174+
<fake.property.148>banana</fake.property.148>
175+
<fake.property.149>banana</fake.property.149>
176+
<fake.property.150>banana</fake.property.150>
177+
<fake.property.151>banana</fake.property.151>
178+
</properties>
179+
180+
181+
182+
<profiles>
183+
184+
<profile>
185+
<id>download-validation</id>
186+
<properties>
187+
<validation.root>${maven.multiModuleProjectDirectory}/target</validation.root>
188+
</properties>
189+
<build>
190+
<plugins>
191+
<plugin>
192+
<artifactId>maven-dependency-plugin</artifactId>
193+
<executions>
194+
<execution>
195+
<?m2e execute onConfiguration?>
196+
<id>do-download-validation</id>
197+
<phase>initialize</phase>
198+
<goals>
199+
<goal>unpack</goal>
200+
</goals>
201+
<configuration>
202+
<artifactItems>
203+
<artifactItem>
204+
<groupId>junit</groupId>
205+
<artifactId>junit</artifactId>
206+
<version>4.12</version>
207+
</artifactItem>
208+
</artifactItems>
209+
</configuration>
210+
</execution>
211+
</executions>
212+
</plugin>
213+
</plugins>
214+
</build>
215+
</profile>
216+
</profiles>
217+
218+
219+
</project>

0 commit comments

Comments
 (0)