|
|
4a48ad |
From d33893c3e3ea8f4be7636439a8f9011bb179a8e9 Mon Sep 17 00:00:00 2001
|
|
|
4a48ad |
From: Mikolaj Izdebski <mizdebsk@redhat.com>
|
|
|
4a48ad |
Date: Mon, 13 Jun 2016 13:14:03 +0200
|
|
|
4a48ad |
Subject: [PATCH] Set location for pomless models
|
|
|
4a48ad |
|
|
|
4a48ad |
Core Maven model reader sets location and some tools depend on these
|
|
|
4a48ad |
values. These tools won't work with tycho-pomless unless it also sets
|
|
|
4a48ad |
the location.
|
|
|
4a48ad |
|
|
|
4a48ad |
Signed-off-by: Mikolaj Izdebski <mizdebsk@redhat.com>
|
|
|
4a48ad |
Change-Id: I4da47c995c1333db0bb0ddb31f7309b08bf5ff39
|
|
|
4a48ad |
---
|
|
|
4a48ad |
|
|
|
4a48ad |
diff --git a/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoModelReader.java b/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoModelReader.java
|
|
|
4a48ad |
index 349c776..e8a4f92 100644
|
|
|
4a48ad |
--- a/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoModelReader.java
|
|
|
4a48ad |
+++ b/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoModelReader.java
|
|
|
4a48ad |
@@ -26,6 +26,8 @@
|
|
|
4a48ad |
import javax.xml.parsers.DocumentBuilderFactory;
|
|
|
4a48ad |
import javax.xml.parsers.ParserConfigurationException;
|
|
|
4a48ad |
|
|
|
4a48ad |
+import org.apache.maven.model.InputLocation;
|
|
|
4a48ad |
+import org.apache.maven.model.InputSource;
|
|
|
4a48ad |
import org.apache.maven.model.Build;
|
|
|
4a48ad |
import org.apache.maven.model.Model;
|
|
|
4a48ad |
import org.apache.maven.model.Parent;
|
|
|
4a48ad |
@@ -90,6 +92,7 @@
|
|
|
4a48ad |
String bundleVersion = getRequiredHeaderValue("Bundle-Version", headers, manifestFile);
|
|
|
4a48ad |
model.setVersion(getPomVersion(bundleVersion));
|
|
|
4a48ad |
model.setPackaging(getPackagingType(bundleSymbolicName));
|
|
|
4a48ad |
+ setLocation(model, manifestFile);
|
|
|
4a48ad |
return model;
|
|
|
4a48ad |
}
|
|
|
4a48ad |
|
|
|
4a48ad |
@@ -150,6 +153,7 @@
|
|
|
4a48ad |
}
|
|
|
4a48ad |
model.setVersion(getPomVersion(versionNode.getValue()));
|
|
|
4a48ad |
// groupId is inherited from parent pom
|
|
|
4a48ad |
+ setLocation(model, xmlFile);
|
|
|
4a48ad |
return model;
|
|
|
4a48ad |
}
|
|
|
4a48ad |
|
|
|
4a48ad |
@@ -247,4 +251,11 @@
|
|
|
4a48ad |
parentReference.setVersion(version);
|
|
|
4a48ad |
return parentReference;
|
|
|
4a48ad |
}
|
|
|
4a48ad |
+
|
|
|
4a48ad |
+ private void setLocation(Model model, File modelSource) {
|
|
|
4a48ad |
+ InputSource inputSource = new InputSource();
|
|
|
4a48ad |
+ inputSource.setLocation(modelSource.toString());
|
|
|
4a48ad |
+ inputSource.setModelId(model.getParent().getGroupId() + ":" + model.getArtifactId() + ":" + model.getVersion());
|
|
|
4a48ad |
+ model.setLocation("", new InputLocation(0, 0, inputSource));
|
|
|
4a48ad |
+ }
|
|
|
4a48ad |
}
|
|
|
4a48ad |
diff --git a/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java b/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java
|
|
|
4a48ad |
index 05cf0c2..a40e738 100644
|
|
|
4a48ad |
--- a/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java
|
|
|
4a48ad |
+++ b/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java
|
|
|
4a48ad |
@@ -19,6 +19,8 @@
|
|
|
4a48ad |
import java.util.HashMap;
|
|
|
4a48ad |
import java.util.Map;
|
|
|
4a48ad |
|
|
|
4a48ad |
+import org.apache.maven.model.InputLocation;
|
|
|
4a48ad |
+import org.apache.maven.model.InputSource;
|
|
|
4a48ad |
import org.apache.maven.model.Model;
|
|
|
4a48ad |
import org.apache.maven.model.Parent;
|
|
|
4a48ad |
import org.apache.maven.model.building.ModelProcessor;
|
|
|
4a48ad |
@@ -45,6 +47,7 @@
|
|
|
4a48ad |
assertEquals("0.1.0-SNAPSHOT", model.getVersion());
|
|
|
4a48ad |
assertEquals("eclipse-plugin", model.getPackaging());
|
|
|
4a48ad |
assertParent(model.getParent());
|
|
|
4a48ad |
+ assertLocation("bundle1/META-INF/MANIFEST.MF", model.getLocation(""));
|
|
|
4a48ad |
}
|
|
|
4a48ad |
|
|
|
4a48ad |
@Test
|
|
|
4a48ad |
@@ -55,6 +58,7 @@
|
|
|
4a48ad |
assertEquals("1.0.1", model.getVersion());
|
|
|
4a48ad |
assertEquals("eclipse-test-plugin", model.getPackaging());
|
|
|
4a48ad |
assertParent(model.getParent());
|
|
|
4a48ad |
+ assertLocation("bundle1.tests/META-INF/MANIFEST.MF", model.getLocation(""));
|
|
|
4a48ad |
}
|
|
|
4a48ad |
|
|
|
4a48ad |
@Test
|
|
|
4a48ad |
@@ -65,6 +69,7 @@
|
|
|
4a48ad |
assertEquals("1.0.0-SNAPSHOT", model.getVersion());
|
|
|
4a48ad |
assertEquals("eclipse-feature", model.getPackaging());
|
|
|
4a48ad |
assertParent(model.getParent());
|
|
|
4a48ad |
+ assertLocation("feature/feature.xml", model.getLocation(""));
|
|
|
4a48ad |
}
|
|
|
4a48ad |
|
|
|
4a48ad |
@Test
|
|
|
4a48ad |
@@ -204,6 +209,17 @@
|
|
|
4a48ad |
assertEquals("0.0.1-SNAPSHOT", parent.getVersion());
|
|
|
4a48ad |
}
|
|
|
4a48ad |
|
|
|
4a48ad |
+ private void assertLocation(String expectedLocation, InputLocation location) {
|
|
|
4a48ad |
+ assertNotNull(location);
|
|
|
4a48ad |
+ assertEquals(0, location.getLineNumber());
|
|
|
4a48ad |
+ assertEquals(0, location.getColumnNumber());
|
|
|
4a48ad |
+ InputSource source = location.getSource();
|
|
|
4a48ad |
+ assertNotNull(source);
|
|
|
4a48ad |
+ assertEquals(new File(getPolyglotTestDir(), expectedLocation).toString(), source.getLocation());
|
|
|
4a48ad |
+ assertNotNull(source.getModelId());
|
|
|
4a48ad |
+ assertTrue(source.getModelId().matches("^testParent.groupId:.*:.*"));
|
|
|
4a48ad |
+ }
|
|
|
4a48ad |
+
|
|
|
4a48ad |
private Map<String, String> createReaderOptions(File buildProperties) {
|
|
|
4a48ad |
Map<String, String> options = new HashMap<>();
|
|
|
4a48ad |
options.put(ModelProcessor.SOURCE, buildProperties.getAbsolutePath());
|