FELIX-4980 : Add capabilities for metatype R6

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1694588 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/metatype/changelog.txt b/metatype/changelog.txt
index 07a73a2..89f4cfa 100644
--- a/metatype/changelog.txt
+++ b/metatype/changelog.txt
@@ -1,3 +1,11 @@
+Changes from 1.0.12 to 1.1.0
+-----------------------------
+
+** Improvement
+    * [FELIX-4980] - Add capabilities for metatype R6
+    * [FELIX-4973] - Relax exception handling when reading metatype XML
+
+
 Changes from 1.0.10 to 1.0.12
 -----------------------------
 
diff --git a/metatype/pom.xml b/metatype/pom.xml
index 9d08014..dcd42be 100644
--- a/metatype/pom.xml
+++ b/metatype/pom.xml
@@ -38,13 +38,13 @@
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
-            <version>4.0.0</version>
+            <version>5.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <version>4.3.0</version>
+            <artifactId>osgi.cmpn</artifactId>
+            <version>6.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -76,6 +76,10 @@
                         <Bundle-DocURL>
                             http://felix.apache.org/site/apache-felix-metatype-service.html
                         </Bundle-DocURL>
+                        <Import-Package>
+                            org.osgi.framework;version="[1.3,2)",
+                            *
+                        </Import-Package>
                         <Export-Package>
                             org.apache.felix.metatype; version=1.2,
                             org.osgi.service.metatype; provide:=true
@@ -87,6 +91,14 @@
                         <Bundle-Activator>
                             org.apache.felix.metatype.internal.Activator
                         </Bundle-Activator>
+                        <Provide-Capability>
+                            osgi.implementation;osgi.implementation="osgi.metatype";version:Version="1.3";
+                            uses:="org.osgi.service.metatype",
+                            osgi.extender;osgi.extender="osgi.metatype";version:Version="1.3";
+                            uses:="org.osgi.service.metatype",
+                            osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.metatype.MetaTypeService";
+                            uses:="org.osgi.service.metatype"
+                        </Provide-Capability>
                         <Embed-Dependency>
                             kxml2;inline=org/kxml2/io/KXmlParser.class|org/xmlpull/v1/XmlPull**
                         </Embed-Dependency>
diff --git a/metatype/src/test/java/org/apache/felix/metatype/MockBundle.java b/metatype/src/test/java/org/apache/felix/metatype/MockBundle.java
index 153298e..5584e02 100644
--- a/metatype/src/test/java/org/apache/felix/metatype/MockBundle.java
+++ b/metatype/src/test/java/org/apache/felix/metatype/MockBundle.java
@@ -19,17 +19,22 @@
 package org.apache.felix.metatype;
 
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+import java.security.cert.X509Certificate;
 import java.util.Dictionary;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
 import java.util.NoSuchElementException;
 
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
+import org.osgi.framework.Version;
 
 
 public class MockBundle implements Bundle
@@ -196,4 +201,34 @@
     public void update( InputStream in )
     {
     }
+
+
+    public int compareTo(Bundle o)
+    {
+        return 0;
+    }
+
+
+    public Map<X509Certificate, List<X509Certificate>> getSignerCertificates(int signersType)
+    {
+        return null;
+    }
+
+
+    public Version getVersion()
+    {
+        return null;
+    }
+
+
+    public <A> A adapt(Class<A> type)
+    {
+        return null;
+    }
+
+
+    public File getDataFile(String filename)
+    {
+        return null;
+    }
 }
diff --git a/metatype/src/test/java/org/apache/felix/metatype/MockBundleContext.java b/metatype/src/test/java/org/apache/felix/metatype/MockBundleContext.java
index 08cbac0..a23fcfb 100644
--- a/metatype/src/test/java/org/apache/felix/metatype/MockBundleContext.java
+++ b/metatype/src/test/java/org/apache/felix/metatype/MockBundleContext.java
@@ -22,6 +22,7 @@
 import java.io.File;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Dictionary;
 import java.util.Enumeration;
 import java.util.HashMap;
@@ -37,6 +38,7 @@
 import org.osgi.framework.Constants;
 import org.osgi.framework.Filter;
 import org.osgi.framework.FrameworkListener;
+import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceEvent;
 import org.osgi.framework.ServiceListener;
 import org.osgi.framework.ServiceReference;
@@ -124,6 +126,13 @@
                 return true;
             }
 
+
+            public boolean matches(Map<String, ?> map)
+            {
+
+               return false;
+            }
+
         };
     }
 
@@ -308,6 +317,31 @@
     }
 
 
+    public <S> ServiceRegistration<S> registerService(Class<S> clazz, S service, Dictionary<String, ?> properties)
+    {
+        return null;
+    }
+
+
+    public <S> ServiceReference<S> getServiceReference(Class<S> clazz)
+    {
+        return null;
+    }
+
+
+    public <S> Collection<ServiceReference<S>> getServiceReferences(Class<S> clazz, String filter)
+            throws InvalidSyntaxException
+    {
+        return null;
+    }
+
+
+    public Bundle getBundle(String location)
+    {
+        return null;
+    }
+
+
     private void fireServiceEvent( ServiceReference ref, int type )
     {
         ServiceEvent se = new ServiceEvent( type, ref );