SLING-9603 update to newest parent (#3)

use bnd-m-plugin instead of m-bundle-plugin
SLING-8040 inline activation.jar
diff --git a/pom.xml b/pom.xml
index c12050a..af42cab 100755
--- a/pom.xml
+++ b/pom.xml
@@ -22,19 +22,19 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.sling</groupId>
-        <artifactId>sling</artifactId>
-        <version>34</version>
+        <artifactId>sling-bundle-parent</artifactId>
+        <version>39</version>
         <relativePath/>
     </parent>
-        
+
     <artifactId>org.apache.sling.javax.activation</artifactId>
-    <packaging>bundle</packaging>
     <version>0.1.1-SNAPSHOT</version>
 
     <name>Apache Sling javax.activation bundle</name>
     <description>The Apache Sling javax.activation bundle contributes an OSGi-compatible activation bundle.</description>
     
     <properties>
+        <project.build.outputTimestamp>2019-10-02T08:04:00Z</project.build.outputTimestamp>
         <javax.activation.version>1.2.2</javax.activation.version>
         <site.javadoc.exclude>**.impl.**</site.javadoc.exclude>
     </properties>    
@@ -48,35 +48,63 @@
     <build>
         <plugins>
             <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>bundle</id>
-                        <goals><goal>bundle</goal></goals>
+                        <id>bnd-process-nodeps</id>
+                        <goals>
+                            <goal>bnd-process</goal>
+                        </goals>
                         <configuration>
-                            <instructions>
-                                <Bundle-Activator>org.apache.sling.javax.activation.internal.Activator</Bundle-Activator>
-                                <Export-Package>javax.activation;version=${javax.activation.version}</Export-Package>
-                                <Embed-Dependency>*;scope=compile</Embed-Dependency>
-                            </instructions>
+                            <bnd><![CDATA[
+Bundle-Name: ${project.name} (No embedded dependencies)
+Bundle-SymbolicName: ${project.artifactId}.nodeps
+]]>
+                            </bnd>
+                            <manifestPath>${project.build.directory}/nodeps-classes/META-INF/MANIFEST.MF</manifestPath>
+                            <outputDir>${project.build.directory}/nodeps-classes</outputDir>
                         </configuration>
                     </execution>
                     <execution>
-                        <id>nodepsbundle</id>
-                        <goals><goal>bundle</goal></goals>
+                        <id>bnd-process</id>
+                        <configuration>
+                            <bnd><![CDATA[
+-includeresource:@jakarta.activation-[0-9.]*(-SNAPSHOT)?.jar
+# version automatically determined from the MANIFEST.MF of the jakarta.activation.jar
+Export-Package: javax.activation,com.sun.activation.registries,com.sun.activation.viewers
+]]>
+                            </bnd>
+                            <manifestPath>${project.build.directory}/deps-classes/META-INF/MANIFEST.MF</manifestPath>
+                            <outputDir>${project.build.directory}/deps-classes</outputDir>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>default-jar</id>
+                        <configuration>
+                            <classesDirectory>${project.build.directory}/deps-classes</classesDirectory>
+                            <archive>
+                                <manifestFile>${project.build.directory}/deps-classes/META-INF/MANIFEST.MF</manifestFile>
+                            </archive>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>jar-nodeps</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
                         <configuration>
                             <classifier>nodeps</classifier>
-                            <instructions>
-                                <Bundle-Name>
-                                    ${project.name} (No embedded dependencies)
-                                </Bundle-Name>
-                                <Bundle-SymbolicName>
-                                    ${project.artifactId}.nodeps
-                                </Bundle-SymbolicName>
-                                <Bundle-Activator>org.apache.sling.javax.activation.internal.Activator</Bundle-Activator>
-                            </instructions>
+                            <classesDirectory>${project.build.directory}/nodeps-classes</classesDirectory>
+                            <archive>
+                                <manifestFile>${project.build.directory}/nodeps-classes/META-INF/MANIFEST.MF</manifestFile>
+                            </archive>
                         </configuration>
                     </execution>
                 </executions>
@@ -90,17 +118,20 @@
             <artifactId>jakarta.activation</artifactId>
             <version>${javax.activation.version}</version>
         </dependency>
-        <!-- Compendium 4.2.0 is needed to access BundleTracker -->
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <version>4.2.0</version>
+            <artifactId>org.osgi.annotation.bundle</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>4.2.0</version>
+            <artifactId>org.osgi.framework</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.util.tracker</artifactId>
+            <version>1.5.1</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -108,12 +139,5 @@
             <artifactId>slf4j-api</artifactId>
             <scope>provided</scope>
         </dependency>
-        
-        <!-- Test dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git a/src/main/java/org/apache/sling/javax/activation/internal/Activator.java b/src/main/java/org/apache/sling/javax/activation/internal/Activator.java
index 626613a..751abeb 100755
--- a/src/main/java/org/apache/sling/javax/activation/internal/Activator.java
+++ b/src/main/java/org/apache/sling/javax/activation/internal/Activator.java
@@ -25,10 +25,12 @@
 import javax.activation.CommandMap;
 import javax.activation.MailcapCommandMap;
 
+import org.osgi.annotation.bundle.Header;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
+import org.osgi.framework.Constants;
 import org.osgi.util.tracker.BundleTracker;
 import org.osgi.util.tracker.BundleTrackerCustomizer;
 import org.slf4j.Logger;
@@ -47,12 +49,13 @@
  * </p>
  * 
  */
+@Header(name = Constants.BUNDLE_ACTIVATOR, value = "${@class}")
 public class Activator implements BundleActivator {
 
     private static final String MAILCAP_FILE_NAME = "/META-INF/mailcap";
     private static final Logger log = LoggerFactory.getLogger(Activator.class);
 
-    private BundleTracker bundleTracker;
+    private BundleTracker<Void> bundleTracker;
     private OsgiMailcapCommandMap commandMap;
 
     public void start(BundleContext context) throws Exception {
@@ -64,21 +67,21 @@
 
         CommandMap.setDefaultCommandMap(commandMap);
 
-        bundleTracker = new BundleTracker(context, Bundle.ACTIVE | Bundle.UNINSTALLED | Bundle.STOP_TRANSIENT,
-                new BundleTrackerCustomizer() {
+        bundleTracker = new BundleTracker<>(context, Bundle.ACTIVE | Bundle.UNINSTALLED | Bundle.STOP_TRANSIENT,
+                new BundleTrackerCustomizer<Void>() {
 
-                    public void removedBundle(Bundle bundle, BundleEvent event, Object object) {
+                    public void removedBundle(Bundle bundle, BundleEvent event, Void object) {
                         unregisterBundleMailcapEntries(bundle);
                     }
 
-                    public void modifiedBundle(Bundle bundle, BundleEvent event, Object object) {
+                    public void modifiedBundle(Bundle bundle, BundleEvent event, Void object) {
                         unregisterBundleMailcapEntries(bundle);
                         registerBundleMailcapEntries(bundle);
                     }
 
-                    public Object addingBundle(Bundle bundle, BundleEvent event) {
+                    public Void addingBundle(Bundle bundle, BundleEvent event) {
                         registerBundleMailcapEntries(bundle);
-                        return bundle;
+                        return null;
                     }
                 });
 
@@ -94,21 +97,10 @@
         if (mailcapEntry == null)
             return;
 
-        InputStream input = null;
-
-        try {
-            input = mailcapEntry.openStream();
-
+        try (InputStream input = mailcapEntry.openStream()) {
             commandMap.addMailcapEntries(input, bundle);
-
         } catch (IOException e) {
             log.warn("Failed loading " + MAILCAP_FILE_NAME + " from bundle " + bundle, e);
-        } finally {
-            try {
-                input.close();
-            } catch (IOException e) {
-                // don't care
-            }
         }
     }