ARIES-1985 Don't process fragments directly
diff --git a/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java b/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java
index 2d19f94..5de77f3 100644
--- a/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java
+++ b/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java
@@ -19,6 +19,7 @@
 package org.apache.aries.spifly;

 

 import static java.util.stream.Collectors.toList;

+import static org.osgi.framework.wiring.BundleRevision.TYPE_FRAGMENT;

 

 import java.io.BufferedReader;

 import java.io.IOException;

@@ -77,7 +78,8 @@
 

     @Override

     public List<ServiceRegistration> addingBundle(final Bundle bundle, BundleEvent event) {

-        if (bundle.equals(spiBundle))

+        BundleRevision bundleRevision = bundle.adapt(BundleRevision.class);

+        if (bundle.equals(spiBundle) || ((bundleRevision != null) && ((bundleRevision.getTypes() & TYPE_FRAGMENT) == TYPE_FRAGMENT)))

             return null; // don't process the SPI bundle itself

 

         log(Level.FINE, "Bundle Considered for SPI providers: "

diff --git a/spi-fly/spi-fly-core/src/test/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizerGenericCapabilityTest.java b/spi-fly/spi-fly-core/src/test/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizerGenericCapabilityTest.java
index 9740260..75d7519 100644
--- a/spi-fly/spi-fly-core/src/test/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizerGenericCapabilityTest.java
+++ b/spi-fly/spi-fly-core/src/test/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizerGenericCapabilityTest.java
@@ -145,6 +145,7 @@
 

         BundleRevision rev = EasyMock.createMock(BundleRevision.class);

         EasyMock.expect(rev.getWiring()).andReturn(bw).anyTimes();

+        EasyMock.expect(rev.getTypes()).andReturn(0).anyTimes();

         EasyMock.replay(rev);

         Bundle implBundle = mockSPIBundle(implBC, headers, rev);