Index: tooling/features-maven-plugin/src/main/java/org/apache/felix/karaf/tooling/features/ValidateFeaturesMojo.java =================================================================== --- tooling/features-maven-plugin/src/main/java/org/apache/felix/karaf/tooling/features/ValidateFeaturesMojo.java (revision 950974) +++ tooling/features-maven-plugin/src/main/java/org/apache/felix/karaf/tooling/features/ValidateFeaturesMojo.java (working copy) @@ -32,6 +32,7 @@ import org.apache.felix.karaf.features.Repository; import org.apache.felix.karaf.features.internal.RepositoryImpl; import org.apache.felix.utils.manifest.Clause; +import org.apache.felix.utils.manifest.Parser; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.DefaultArtifactRepository; @@ -122,6 +123,11 @@ * The set of packages exported by the system bundle and by Karaf itself */ private Set systemExports = new HashSet(); + + /* + * The set of OSGi system packages export by the Karaf config + */ + private Set osgiSystemExports = new HashSet(); /** * The Mojo's main method @@ -252,6 +258,16 @@ properties.load(new FileInputStream(new File(karafConfig))); } + // export the osgi system properties + String osgiPackages = (String) properties.get("org.osgi.framework.system.packages"); + if (osgiPackages != null) { + Clause[] clauses = Parser.parseHeader(osgiPackages); + for(Clause clause : clauses) { + osgiSystemExports.add(clause); + debug(" Adding %s into osgi system export package.", clause.getName()); + } + } + String packages = (String) properties.get(jreVersion); for (String pkg : packages.split(";")) { systemExports .add(pkg.trim()); @@ -312,6 +328,8 @@ private void validateImportsExports(Feature feature) throws Exception { Map imports = new HashMap(); Set exports = new HashSet(); + // Add the osgi plateform exports packages into exports + exports.addAll(osgiSystemExports); for (Feature dependency : feature.getDependencies()) { if (featureExports.containsKey(dependency.getName())) { exports.addAll(featureExports.get(dependency.getName()));