From 85a2495116da48f4a4328a9066a7147c9e363b70 Mon Sep 17 00:00:00 2001
From: Mat Booth <mat.booth@redhat.com>
Date: Wed, 11 Nov 2020 10:04:50 +0000
Subject: [PATCH 8/9] Bug 561832 - Upgrade to [takari/polyglot-maven] Release
0.4.5
---
tycho-extras/tycho-pomless/pom.xml | 2 +-
.../tycho/pomless/AbstractTychoMapping.java | 3 ++
.../pomless/AbstractXMLTychoMapping.java | 5 +--
.../tycho/pomless/TychoAggregatorMapping.java | 6 +--
.../tycho/pomless/TychoBundleMapping.java | 40 ++++++++-----------
.../tycho/pomless/TychoMappingTest.java | 5 ++-
.../tycho/pomless/TychoModelReaderTest.java | 27 +++++++------
7 files changed, 39 insertions(+), 49 deletions(-)
diff --git a/tycho-extras/tycho-pomless/pom.xml b/tycho-extras/tycho-pomless/pom.xml
index b1979ff..2ab14a8 100644
--- a/tycho-extras/tycho-pomless/pom.xml
+++ b/tycho-extras/tycho-pomless/pom.xml
@@ -47,7 +47,7 @@
<dependency>
<groupId>io.takari.polyglot</groupId>
<artifactId>polyglot-common</artifactId>
- <version>0.4.4</version>
+ <version>0.4.5</version>
</dependency>
<dependency>
<groupId>org.eclipse.sisu</groupId>
diff --git a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractTychoMapping.java b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractTychoMapping.java
index d6a9977..b80c22b 100644
--- a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractTychoMapping.java
+++ b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractTychoMapping.java
@@ -114,6 +114,9 @@ public abstract class AbstractTychoMapping implements Mapping, ModelReader {
public Model read(File input, Map<String, ?> options) throws IOException, ModelParseException {
File artifactFile = getRealArtifactFile(input);
if (artifactFile.exists()) {
+ if (artifactFile.isDirectory()) {
+ return read(new StringReader(""), input, options);
+ }
try (InputStreamReader stream = new InputStreamReader(new FileInputStream(artifactFile),
getPrimaryArtifactCharset())) {
return read(stream, input, options);
diff --git a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractXMLTychoMapping.java b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractXMLTychoMapping.java
index 955b78a..05505d1 100644
--- a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractXMLTychoMapping.java
+++ b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/AbstractXMLTychoMapping.java
@@ -85,9 +85,6 @@ public abstract class AbstractXMLTychoMapping extends AbstractTychoMapping {
@Override
public float getPriority() {
- //FIXME due to
- // https://github.com/takari/polyglot-maven/issues/209
- // we must use inverse logic and return lower values for higher priorities
- return -1;
+ return 1;
}
}
diff --git a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoAggregatorMapping.java b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoAggregatorMapping.java
index 8043dfe..39183d7 100644
--- a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoAggregatorMapping.java
+++ b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoAggregatorMapping.java
@@ -110,11 +110,7 @@ public class TychoAggregatorMapping extends AbstractTychoMapping {
@Override
public float getPriority() {
- //use a lower priority here so other modules are asked first
- //FIXME due to
- // https://github.com/takari/polyglot-maven/issues/209
- // we must use inverse logic and return lower values for higher priorities
- return 10f;
+ return -10f;
}
}
diff --git a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoBundleMapping.java b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoBundleMapping.java
index d450750..0d7baeb 100644
--- a/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoBundleMapping.java
+++ b/tycho-extras/tycho-pomless/src/main/java/org/eclipse/tycho/pomless/TychoBundleMapping.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2019 Lablicate GmbH and others.
+ * Copyright (c) 2019, 2020 Lablicate GmbH and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -29,30 +29,30 @@ import org.sonatype.maven.polyglot.mapping.Mapping;
@Component(role = Mapping.class, hint = TychoBundleMapping.PACKAGING)
public class TychoBundleMapping extends AbstractTychoMapping {
- private static final String BUNDLE_SYMBOLIC_NAME = "Bundle-SymbolicName";
-
+ public static final String META_INF_DIRECTORY = "META-INF";
+ public static final String MANIFEST_MF = "MANIFEST.MF";
public static final String PACKAGING = "eclipse-plugin";
+
+ private static final String BUNDLE_SYMBOLIC_NAME = "Bundle-SymbolicName";
private static final String PACKAGING_TEST = "eclipse-test-plugin";
- private static final String MANIFEST_MF = "META-INF/MANIFEST.MF";
- public static final String MANIFEST_MF_MARKER = ".META-INF_MANIFEST.MF";
@Override
protected boolean isValidLocation(String location) {
- return location.endsWith(MANIFEST_MF_MARKER);
+ File polyglotArtifactFile = new File(location);
+ if (polyglotArtifactFile.isDirectory() && polyglotArtifactFile.getName().equals(META_INF_DIRECTORY)) {
+ return new File(polyglotArtifactFile, MANIFEST_MF).exists();
+ }
+ return false;
}
@Override
protected File getPrimaryArtifact(File dir) {
- File manifestFile = new File(dir, MANIFEST_MF);
- if (manifestFile.isFile()) {
- File markerFile = new File(dir, MANIFEST_MF_MARKER);
- try {
- markerFile.createNewFile();
- } catch (IOException e) {
- throw new RuntimeException("can't create markerfile", e);
+ File metaInfDirectory = new File(dir, META_INF_DIRECTORY);
+ if (metaInfDirectory.isDirectory()) {
+ File manifestFile = new File(metaInfDirectory, MANIFEST_MF);
+ if (manifestFile.isFile()) {
+ return metaInfDirectory;
}
- markerFile.deleteOnExit();
- return markerFile;
}
return null;
}
@@ -66,7 +66,7 @@ public class TychoBundleMapping extends AbstractTychoMapping {
protected void initModel(Model model, Reader artifactReader, File artifactFile)
throws ModelParseException, IOException {
File bundleRoot = artifactFile.getParentFile();
- File manifestFile = new File(bundleRoot, MANIFEST_MF);
+ File manifestFile = new File(artifactFile, MANIFEST_MF);
Attributes manifestHeaders = readManifestHeaders(manifestFile);
String bundleSymbolicName = getBundleSymbolicName(manifestHeaders, manifestFile);
// groupId is inherited from parent pom
@@ -94,14 +94,6 @@ public class TychoBundleMapping extends AbstractTychoMapping {
}
}
- @Override
- protected File getRealArtifactFile(File polyglotArtifactFile) {
- if (polyglotArtifactFile.getName().equals(MANIFEST_MF_MARKER)) {
- return new File(polyglotArtifactFile.getParentFile(), MANIFEST_MF);
- }
- return super.getRealArtifactFile(polyglotArtifactFile);
- }
-
private Attributes readManifestHeaders(File manifestFile) throws IOException {
Manifest manifest = new Manifest();
try (FileInputStream stream = new FileInputStream(manifestFile)) {
diff --git a/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoMappingTest.java b/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoMappingTest.java
index 910150c..641cec3 100644
--- a/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoMappingTest.java
+++ b/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoMappingTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015 SAP SE and others.
+ * Copyright (c) 2015, 2020 SAP SE and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -7,6 +7,7 @@
*
* Contributors:
* SAP SE - initial API and implementation
+ * Christoph Läubrich - adjust to changed API
*******************************************************************************/
package org.eclipse.tycho.pomless;
@@ -27,7 +28,7 @@ public class TychoMappingTest extends PlexusTestCase {
public void testLocateBuildProperties() throws Exception {
File pom = polyglotModelManager.locatePom(new File(getMappingTestDir(), "simple"));
assertNotNull(pom);
- assertEquals(TychoBundleMapping.MANIFEST_MF_MARKER, pom.getName());
+ assertEquals(TychoBundleMapping.META_INF_DIRECTORY, pom.getName());
}
public void testPriority() throws Exception {
diff --git a/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java b/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java
index 134987f..67ba7c2 100644
--- a/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java
+++ b/tycho-extras/tycho-pomless/src/test/java/org/eclipse/tycho/pomless/TychoModelReaderTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2019 SAP SE and others.
+ * Copyright (c) 2015, 2020 SAP SE and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -7,6 +7,7 @@
*
* Contributors:
* SAP SE - initial API and implementation
+ * Christoph Läubrich - adjust to API
*******************************************************************************/
package org.eclipse.tycho.pomless;
@@ -36,7 +37,7 @@ public class TychoModelReaderTest extends PlexusTestCase {
@Test
public void testReadBundle() throws Exception {
- File buildProperties = new File(getPolyglotTestDir(), "bundle1/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ File buildProperties = new File(getPolyglotTestDir(), "bundle1/" + TychoBundleMapping.META_INF_DIRECTORY);
Model model = getTychoModelReader(TychoBundleMapping.PACKAGING).read(buildProperties,
createReaderOptions(buildProperties));
assertEquals("4.0.0", model.getModelVersion());
@@ -45,12 +46,12 @@ public class TychoModelReaderTest extends PlexusTestCase {
assertEquals("0.1.0-SNAPSHOT", model.getVersion());
assertEquals("eclipse-plugin", model.getPackaging());
assertParent(model.getParent());
- assertLocation("bundle1/META-INF/MANIFEST.MF", model.getLocation(""));
+ assertLocation("bundle1/META-INF", model.getLocation(""));
}
@Test
public void testReadBundle2() throws Exception {
- File buildProperties = new File(getPolyglotTestDir(), "bundle2/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ File buildProperties = new File(getPolyglotTestDir(), "bundle2/" + TychoBundleMapping.META_INF_DIRECTORY);
Model model = getTychoModelReader(TychoBundleMapping.PACKAGING).read(buildProperties,
createReaderOptions(buildProperties));
assertEquals("4.0.0", model.getModelVersion());
@@ -59,12 +60,12 @@ public class TychoModelReaderTest extends PlexusTestCase {
assertEquals("0.1.0-SNAPSHOT", model.getVersion());
assertEquals("eclipse-plugin", model.getPackaging());
assertParent(model.getParent());
- assertLocation("bundle2/META-INF/MANIFEST.MF", model.getLocation(""));
+ assertLocation("bundle2/META-INF", model.getLocation(""));
}
@Test
public void testReadBundle3() throws Exception {
- File buildProperties = new File(getPolyglotTestDir(), "bundle3/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ File buildProperties = new File(getPolyglotTestDir(), "bundle3/" + TychoBundleMapping.META_INF_DIRECTORY);
Model model = getTychoModelReader(TychoBundleMapping.PACKAGING).read(buildProperties,
createReaderOptions(buildProperties));
assertEquals("4.0.0", model.getModelVersion());
@@ -73,19 +74,19 @@ public class TychoModelReaderTest extends PlexusTestCase {
assertEquals("0.1.0-SNAPSHOT", model.getVersion());
assertEquals("eclipse-plugin", model.getPackaging());
assertParent(model.getParent());
- assertLocation("bundle3/META-INF/MANIFEST.MF", model.getLocation(""));
+ assertLocation("bundle3/META-INF", model.getLocation(""));
}
@Test
public void testReadTestBundle() throws Exception {
- File buildProperties = new File(getPolyglotTestDir(), "bundle1.tests/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ File buildProperties = new File(getPolyglotTestDir(), "bundle1.tests/" + TychoBundleMapping.META_INF_DIRECTORY);
Model model = getTychoModelReader(TychoBundleMapping.PACKAGING).read(buildProperties,
createReaderOptions(buildProperties));
assertEquals("pomless.bundle.tests", model.getArtifactId());
assertEquals("1.0.1", model.getVersion());
assertEquals("eclipse-test-plugin", model.getPackaging());
assertParent(model.getParent());
- assertLocation("bundle1.tests/META-INF/MANIFEST.MF", model.getLocation(""));
+ assertLocation("bundle1.tests/META-INF", model.getLocation(""));
}
@Test
@@ -158,7 +159,7 @@ public class TychoModelReaderTest extends PlexusTestCase {
@Test
public void testBundleWithoutSymbolicName() throws Exception {
File buildProperties = new File(getTestResourcesDir(),
- "modelreader/plugins/missingBsn/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ "modelreader/plugins/missingBsn/" + TychoBundleMapping.META_INF_DIRECTORY);
try {
getTychoModelReader(TychoBundleMapping.PACKAGING).read(buildProperties,
createReaderOptions(buildProperties));
@@ -171,7 +172,7 @@ public class TychoModelReaderTest extends PlexusTestCase {
@Test
public void testBundleWithoutVersion() throws Exception {
File buildProperties = new File(getTestResourcesDir(),
- "modelreader/plugins/missingVersion/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ "modelreader/plugins/missingVersion/" + TychoBundleMapping.META_INF_DIRECTORY);
try {
getTychoModelReader(TychoBundleMapping.PACKAGING).read(buildProperties,
createReaderOptions(buildProperties));
@@ -184,7 +185,7 @@ public class TychoModelReaderTest extends PlexusTestCase {
@Test
public void testNoParent() throws Exception {
File buildProperties = new File(getTestResourcesDir(),
- "modelreader/noParent/bundle/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ "modelreader/noParent/bundle/" + TychoBundleMapping.META_INF_DIRECTORY);
FileNotFoundException e = assertThrows(FileNotFoundException.class,
() -> getTychoModelReader(TychoBundleMapping.PACKAGING).read(buildProperties,
createReaderOptions(buildProperties)));
@@ -194,7 +195,7 @@ public class TychoModelReaderTest extends PlexusTestCase {
@Test
public void testFindParent() throws Exception {
File location = new File(getTestResourcesDir(),
- "modelreader/grandparentInheritance/bundle/" + TychoBundleMapping.MANIFEST_MF_MARKER);
+ "modelreader/grandparentInheritance/bundle/" + TychoBundleMapping.META_INF_DIRECTORY);
Model model = getTychoModelReader(TychoBundleMapping.PACKAGING).read(location, createReaderOptions(location));
assertNotNull(model);
Parent parentReference = model.getParent();
--
2.28.0