Skip to content

Commit f64b929

Browse files
committed
Workaround for bnd-lib bug
1 parent 0f862e5 commit f64b929

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

org.eclipse.m2e.pde.feature/feature.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<feature
33
id="org.eclipse.m2e.pde.feature"
44
label="%featureName"
5-
version="2.3.400.qualifier"
5+
version="2.3.500.qualifier"
66
provider-name="%providerName"
77
plugin="org.eclipse.m2e.core"
88
license-feature="org.eclipse.license"

org.eclipse.m2e.pde.target.tests/src/org/eclipse/m2e/pde/target/tests/OSGiMetadataGenerationTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,24 @@
4444

4545
public class OSGiMetadataGenerationTest extends AbstractMavenTargetTest {
4646

47+
@Test
48+
public void testWithEmptyMetaInfServices() throws Exception {
49+
ITargetLocation target = resolveMavenTarget(
50+
"""
51+
<location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="generate" type="Maven">
52+
<dependencies>
53+
<dependency>
54+
<groupId>org.apache.qpid</groupId>
55+
<artifactId>qpid-jms-discovery</artifactId>
56+
<version>2.7.0</version>
57+
<type>jar</type>
58+
</dependency>
59+
</dependencies>
60+
</location>
61+
""");
62+
assertStatusOk(getTargetStatus(target));
63+
}
64+
4765
@Test
4866
public void testNonJarArtifactInDependencies() throws Exception {
4967
ITargetLocation target = resolveMavenTarget(

org.eclipse.m2e.pde.target/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: M2E PDE Integration
44
Bundle-SymbolicName: org.eclipse.m2e.pde.target;singleton:=true
5-
Bundle-Version: 2.1.2.qualifier
5+
Bundle-Version: 2.1.3.qualifier
66
Automatic-Module-Name: org.eclipse.m2e.pde.target
77
Bundle-RequiredExecutionEnvironment: JavaSE-21
88
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)",

org.eclipse.m2e.pde.target/src/org/eclipse/m2e/pde/target/shared/MavenBundleWrapper.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@
2020
import java.nio.file.Path;
2121
import java.nio.file.attribute.FileTime;
2222
import java.util.ArrayList;
23+
import java.util.Collections;
2324
import java.util.HashMap;
2425
import java.util.HashSet;
2526
import java.util.List;
2627
import java.util.Map;
2728
import java.util.Objects;
2829
import java.util.Properties;
2930
import java.util.Set;
31+
import java.util.TreeMap;
3032
import java.util.function.Function;
3133
import java.util.jar.Attributes;
3234
import java.util.jar.Attributes.Name;
@@ -185,6 +187,10 @@ private static WrappedBundle getWrappedNode(DependencyNode node,
185187
Jar jar;
186188
try {
187189
jar = new Jar(originalFile);
190+
// Workaround for https://github.com/bndtools/bnd/pull/6388
191+
if (jar.getDirectories().getOrDefault("META-INF/services", Collections.emptyMap()) == null) {
192+
jar.getDirectories().put("META-INF/services", new TreeMap<>());
193+
}
188194
} catch (IOException e) {
189195
visited.put(node,
190196
wrappedNode = new WrappedBundle(node, List.of(), null, null, null,

0 commit comments

Comments
 (0)