diff --git a/configadmin/obr.xml b/configadmin/obr.xml
deleted file mode 100644
index 2ee4055..0000000
--- a/configadmin/obr.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<obr>
-    <require extend="false"
-        filter="(service=org.osgi.service.log.LogService)"
-        multiple="false" name="service" optional="true">
-        Import Service org.osgi.service.log.LogService
-    </require>
-    <capability name="service">
-        <p n="service" v="org.apache.felix.cm.PersistenceManager" />
-        <p n="service.description"
-            v="Platform Filesystem Persistence Manager" />
-        <p n="service.pid"
-            v="org.apache.felix.cm.file.FilePersistenceManager" />
-        <p n="service.vendor" v="Apache Software Foundation" />
-    </capability>
-    <capability name="service">
-        <p n="service" v="org.osgi.service.cm.ConfigurationAdmin" />
-        <p n="service.description"
-            v="Configuration Admin Service Specification 1.3 Implementation" />
-        <p n="service.pid" v="org.apache.felix.cm.ConfigurationAdmin" />
-
-        <p n="service.vendor" v="Apache Software Foundation" />
-    </capability>
-</obr>
diff --git a/configadmin/pom.xml b/configadmin/pom.xml
index 2daf795..788cdba 100644
--- a/configadmin/pom.xml
+++ b/configadmin/pom.xml
@@ -74,6 +74,8 @@
         <bundle.file.name>
             ${bundle.build.name}/${project.build.finalName}.jar
         </bundle.file.name>
+
+		<api-package-version>1.0</api-package-version>
     </properties>
 
 
@@ -129,7 +131,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>2.0.1</version>
+                <version>2.3.5-SNAPSHOT</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
@@ -146,22 +148,32 @@
                         </Bundle-Activator>
                         <Export-Package>
                             org.apache.felix.cm;
-                            org.apache.felix.cm.file;version=1.0,
-                            org.osgi.service.cm
+                            org.apache.felix.cm.file;version=${api-package-version};provide:=true,
+                            org.osgi.service.cm;provide:=true
                         </Export-Package>
                         <Private-Package>
                             org.apache.felix.cm.impl,
                             org.osgi.util.tracker
                         </Private-Package>
                         <Import-Package>
-                            org.apache.felix.cm;
-                            org.apache.felix.cm.file;version="[$(version;==;$(@)),$(version;=+;$(@)))",
-                            org.osgi.service.cm;version="[$(version;==;$(@)),$(version;=+;$(@)))",
                             *
                         </Import-Package>
                         <DynamicImport-Package>
                             org.osgi.service.log;version="1.3"
                         </DynamicImport-Package>
+						<Export-Service>
+							org.osgi.service.cm.ConfigurationAdmin;
+								service.description="Configuration Admin Service Specification 1.3 Implementation";
+								service.pid="org.osgi.service.cm.ConfigurationAdmin";
+								service.vendor="Apache Software Foundation",
+							org.apache.felix.cm.PersistenceManager;
+								service.description="Platform Filesystem Persistence Manager";
+								service.pid="org.apache.felix.cm.file.FilePersistenceManager";
+								service.vendor="Apache Software Foundation"
+						</Export-Service>
+						<Import-Service>
+							org.osgi.service.log.LogService;availability:=optional;multiple:=false
+						</Import-Service>
                     </instructions>
                 </configuration>
             </plugin>
