Author: pauls Date: Fri Feb 23 22:59:25 2018 New Revision: 1825179 URL: http://svn.apache.org/viewvc?rev=1825179&view=rev Log: FELIX-5792: Add basic support for java.* exports and imports and remove old, unsupported jdk profiles.
Modified: felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java felix/trunk/osgi-r7/framework/src/main/resources/default.properties Modified: felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=1825179&r1=1825178&r2=1825179&view=diff ============================================================================== --- felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java (original) +++ felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java Fri Feb 23 22:59:25 2018 @@ -4639,6 +4639,8 @@ public class Felix extends BundleImpl im // if not explicitly configured. loadFromDefaultIfNotDefined(defaultProperties, Constants.FRAMEWORK_EXECUTIONENVIRONMENT); + loadFromDefaultIfNotDefined(defaultProperties, Constants.FRAMEWORK_SYSTEMPACKAGES); + // Set supported native capabilities to default value, // if not explicitly configured. loadPrefixFromDefaultIfNotDefined(m_configMutableMap, defaultProperties, FelixConstants.NATIVE_OS_NAME_ALIAS_PREFIX); Modified: felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java?rev=1825179&r1=1825178&r2=1825179&view=diff ============================================================================== --- felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java (original) +++ felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java Fri Feb 23 22:59:25 2018 @@ -35,6 +35,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Properties; import java.util.Set; +import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; import org.apache.felix.framework.Felix; @@ -108,14 +109,32 @@ public class Util moduleLayer = c_ModuleLayer.getMethod("boot").invoke(null); } + Set<String> javaExports = new TreeSet<String>(); for (Object module : ((Iterable) c_ModuleLayer.getMethod("modules").invoke(moduleLayer))) { if ((Boolean) m_canRead.invoke(self, module)) { Object name = m_getName.invoke(module); properties.put("felix.detect.jpms." + name, name); + for (String export : (Iterable<String>) c_Module.getMethod("getPackages").invoke(module)) + { + if (export.startsWith("java.") && (Boolean) c_Module.getMethod("isExported", String.class, c_Module).invoke(module, export, self)) + { + javaExports.add(export); + } + } } } + + if (!javaExports.isEmpty()) + { + StringBuilder builder = new StringBuilder(); + for (String export : javaExports) { + builder.append(',').append(export); + } + properties.put("felix.detect.jpms.java", builder.toString()); + } + properties.put("felix.detect.jpms", "jpms"); } catch (Exception ex) Modified: felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java?rev=1825179&r1=1825178&r2=1825179&view=diff ============================================================================== --- felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java (original) +++ felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java Fri Feb 23 22:59:25 2018 @@ -338,22 +338,17 @@ public class ManifestParser VersionRange.parse(v.toString())); } - // Verify java.* is not imported, nor any duplicate imports. + // Verify no duplicate imports. for (String pkgName : clause.m_paths) { if (!dupeSet.contains(pkgName)) { - // Verify that java.* packages are not imported. - if (pkgName.startsWith("java.")) - { - throw new BundleException( - "Importing java.* packages not allowed: " + pkgName); - } + // The character "." has no meaning in the OSGi spec except // when placed on the bundle class path. Some people, however, // mistakenly think it means the default package when imported // or exported. This is not correct. It is invalid. - else if (pkgName.equals(".")) + if (pkgName.equals(".")) { throw new BundleException("Imporing '.' is invalid."); } @@ -531,16 +526,10 @@ public class ManifestParser VersionRange.parse(v.toString())); } - // Dynamic imports can have duplicates, so verify that java.* - // packages are not imported. + // Dynamic imports can have duplicates, verify that no partial package name wild carding is used for (String pkgName : clause.m_paths) { - if (pkgName.startsWith("java.")) - { - throw new BundleException( - "Dynamically importing java.* packages not allowed: " + pkgName); - } - else if (!pkgName.equals("*") && pkgName.endsWith("*") && !pkgName.endsWith(".*")) + if (!pkgName.equals("*") && pkgName.endsWith("*") && !pkgName.endsWith(".*")) { throw new BundleException( "Partial package name wild carding is not allowed: " + pkgName); @@ -849,18 +838,17 @@ public class ManifestParser String mv, String bsn, Version bv) throws BundleException { - // Verify that "java.*" packages are not exported. for (ParsedHeaderClause clause : clauses) { // Verify that the named package has not already been declared. for (String pkgName : clause.m_paths) { - // Verify that java.* packages are not exported. - if (pkgName.startsWith("java.")) + // Verify that java.* packages are not exported (except from the system bundle). + if (!FelixConstants.SYSTEM_BUNDLE_SYMBOLICNAME.equals(bsn) && pkgName.startsWith("java.")) { throw new BundleException( "Exporting java.* packages not allowed: " - + pkgName); + + pkgName, BundleException.MANIFEST_ERROR); } // The character "." has no meaning in the OSGi spec except // when placed on the bundle class path. Some people, however, Modified: felix/trunk/osgi-r7/framework/src/main/resources/default.properties URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/framework/src/main/resources/default.properties?rev=1825179&r1=1825178&r2=1825179&view=diff ============================================================================== --- felix/trunk/osgi-r7/framework/src/main/resources/default.properties (original) +++ felix/trunk/osgi-r7/framework/src/main/resources/default.properties Fri Feb 23 22:59:25 2018 @@ -148,260 +148,79 @@ org.osgi.framework.system.packages=\ # # Java platform package export properties. # -jre-1.3=, \ - javax.accessibility;uses:="javax.swing.text";version="0.0.0.1_003_J2SE", \ - javax.naming.directory;uses:="javax.naming";version="0.0.0.1_003_J2SE", \ - javax.naming.event;uses:="javax.naming,javax.naming.directory";version="0.0.0.1_003_J2SE", \ - javax.naming.ldap;uses:="javax.naming,javax.naming.directory,javax.naming.event";version="0.0.0.1_003_J2SE", \ - javax.naming.spi;uses:="javax.naming,javax.naming.directory";version="0.0.0.1_003_J2SE", \ - javax.naming;uses:="javax.naming.spi";version="0.0.0.1_003_J2SE", \ - javax.rmi.CORBA;uses:="org.omg.CORBA,org.omg.CORBA_2_3.portable,org.omg.CORBA.portable,org.omg.SendingContext";version="0.0.0.1_003_J2SE", \ - javax.rmi;uses:="org.omg.CORBA,javax.rmi.CORBA";version="0.0.0.1_003_J2SE", \ - javax.sound.midi.spi;uses:="javax.sound.midi";version="0.0.0.1_003_J2SE", \ - javax.sound.midi;uses:="javax.sound.midi.spi";version="0.0.0.1_003_J2SE", \ - javax.sound.sampled.spi;uses:="javax.sound.sampled";version="0.0.0.1_003_J2SE", \ - javax.sound.sampled;uses:="javax.sound.sampled.spi";version="0.0.0.1_003_J2SE", \ - javax.swing.border;uses:="javax.swing";version="0.0.0.1_003_J2SE", \ - javax.swing.colorchooser;uses:="javax.swing.event,javax.swing,javax.swing.text,javax.swing.border,javax.accessibility";version="0.0.0.1_003_J2SE", \ - javax.swing.event;uses:="javax.swing,javax.swing.text,javax.swing.table,javax.swing.tree,javax.swing.undo";version="0.0.0.1_003_J2SE", \ - javax.swing.filechooser;uses:="javax.swing";version="0.0.0.1_003_J2SE", \ - javax.swing.plaf.basic;uses:="javax.swing,javax.swing.border,javax.swing.plaf,javax.swing.text,javax.swing.event,javax.swing.colorchooser,javax.accessibility,javax.swing.filechooser,javax.swing.text.html,javax.swing.table,javax.swing.tree";version="0.0.0.1_003_J2SE", \ - javax.swing.plaf.metal;uses:="javax.swing.plaf,javax.swing.border,javax.swing,javax.swing.text,javax.swing.plaf.basic,javax.swing.event,javax.swing.filechooser,javax.accessibility,javax.swing.tree";version="0.0.0.1_003_J2SE", \ - javax.swing.plaf.multi;uses:="javax.accessibility,javax.swing,javax.swing.plaf,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version="0.0.0.1_003_J2SE", \ - javax.swing.plaf;uses:="javax.swing,javax.swing.border,javax.accessibility,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version="0.0.0.1_003_J2SE", \ - javax.swing.table;uses:="javax.swing.event,javax.swing.plaf,javax.swing.border,javax.swing,javax.accessibility";version="0.0.0.1_003_J2SE", \ - javax.swing.text.html.parser;uses:="javax.swing.text.html,javax.swing.text";version="0.0.0.1_003_J2SE", \ - javax.swing.text.html;uses:="javax.swing.text,javax.swing,javax.swing.event,javax.swing.border,javax.swing.undo,javax.swing.plaf,javax.swing.text.html.parser";version="0.0.0.1_003_J2SE", \ - javax.swing.text.rtf;uses:="javax.swing.text";version="0.0.0.1_003_J2SE", \ - javax.swing.text;uses:="javax.swing.event,javax.swing.tree,javax.swing.undo,javax.swing,javax.swing.plaf,javax.swing.plaf.basic,javax.accessibility,javax.swing.text.html";version="0.0.0.1_003_J2SE", \ - javax.swing.tree;uses:="javax.swing.event,javax.swing,javax.swing.border,javax.swing.plaf";version="0.0.0.1_003_J2SE", \ - javax.swing.undo;uses:="javax.swing,javax.swing.event";version="0.0.0.1_003_J2SE", \ - javax.swing;uses:="javax.swing.event,javax.swing.text,javax.accessibility,javax.swing.plaf,javax.swing.border,javax.swing.tree,javax.swing.table,javax.swing.colorchooser,javax.swing.plaf.basic,javax.swing.text.html,javax.swing.filechooser";version="0.0.0.1_003_J2SE", \ - javax.transaction;version="0.0.0.1_003_J2SE", \ - org.omg.CORBA.DynAnyPackage;uses:="org.omg.CORBA";version="0.0.0.1_003_J2SE", \ - org.omg.CORBA.ORBPackage;uses:="org.omg.CORBA";version="0.0.0.1_003_J2SE", \ - org.omg.CORBA.TypeCodePackage;uses:="org.omg.CORBA";version="0.0.0.1_003_J2SE", \ - org.omg.CORBA.portable;uses:="org.omg.CORBA,org.omg.CORBA_2_3.portable";version="0.0.0.1_003_J2SE", \ - org.omg.CORBA;uses:="org.omg.CORBA.portable,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA_2_3.portable,org.omg.CORBA.TypeCodePackage";version="0.0.0.1_003_J2SE", \ - org.omg.CORBA_2_3.portable;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_003_J2SE", \ - org.omg.CORBA_2_3;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_003_J2SE", \ - org.omg.CosNaming.NamingContextPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.CosNaming";version="0.0.0.1_003_J2SE", \ - org.omg.CosNaming;uses:="org.omg.CORBA.portable,org.omg.CORBA,org.omg.CosNaming.NamingContextPackage";version="0.0.0.1_003_J2SE", \ - org.omg.SendingContext;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_003_J2SE", \ - org.omg.stub.java.rmi;uses:="javax.rmi.CORBA";version="0.0.0.1_003_J2SE" +jre-1.6-java-base=, \ + java.applet, \ + java.awt, \ + java.awt.color, \ + java.awt.datatransfer, \ + java.awt.dnd, \ + java.awt.event, \ + java.awt.font, \ + java.awt.geom, \ + java.awt.im, \ + java.awt.im.spi, \ + java.awt.image, \ + java.awt.image.renderable, \ + java.awt.print, \ + java.beans, \ + java.beans.beancontext, \ + java.io, \ + java.lang, \ + java.lang.annotation, \ + java.lang.instrument, \ + java.lang.management, \ + java.lang.ref, \ + java.lang.reflect, \ + java.math, \ + java.net, \ + java.nio, \ + java.nio.channels, \ + java.nio.channels.spi, \ + java.nio.charset, \ + java.nio.charset.spi, \ + java.rmi, \ + java.rmi.activation, \ + java.rmi.dgc, \ + java.rmi.registry, \ + java.rmi.server, \ + java.security, \ + java.security.acl, \ + java.security.cert, \ + java.security.interfaces, \ + java.security.spec, \ + java.sql, \ + java.text, \ + java.text.spi, \ + java.util, \ + java.util.concurrent, \ + java.util.concurrent.atomic, \ + java.util.concurrent.locks, \ + java.util.jar, \ + java.util.logging, \ + java.util.prefs, \ + java.util.regex, \ + java.util.spi, \ + java.util.zip -jre-1.4=, \ - javax.accessibility;uses:="javax.swing.text";version="0.0.0.1_004_J2SE", \ - javax.crypto.interfaces;uses:="javax.crypto.spec,javax.crypto";version="0.0.0.1_004_J2SE", \ - javax.crypto.spec;uses:="javax.crypto";version="0.0.0.1_004_J2SE", \ - javax.crypto;uses:="javax.crypto.spec";version="0.0.0.1_004_J2SE", \ - javax.imageio.event;uses:="javax.imageio";version="0.0.0.1_004_J2SE", \ - javax.imageio.metadata;uses:="org.w3c.dom,javax.imageio,org.apache.crimson.util";version="0.0.0.1_004_J2SE", \ - javax.imageio.plugins.jpeg;uses:="javax.imageio";version="0.0.0.1_004_J2SE", \ - javax.imageio.spi;uses:="javax.imageio.stream,javax.imageio,javax.imageio.metadata";version="0.0.0.1_004_J2SE", \ - javax.imageio.stream;uses:="javax.imageio";version="0.0.0.1_004_J2SE", \ - javax.imageio;uses:="javax.imageio.metadata,javax.imageio.stream,javax.imageio.spi,javax.imageio.event";version="0.0.0.1_004_J2SE", \ - javax.naming.directory;uses:="javax.naming";version="0.0.0.1_004_J2SE", \ - javax.naming.event;uses:="javax.naming,javax.naming.directory";version="0.0.0.1_004_J2SE", \ - javax.naming.ldap;uses:="javax.naming,javax.naming.directory,javax.net.ssl,javax.naming.event";version="0.0.0.1_004_J2SE", \ - javax.naming.spi;uses:="javax.naming,javax.naming.directory";version="0.0.0.1_004_J2SE", \ - javax.naming;uses:="javax.naming.spi";version="0.0.0.1_004_J2SE", \ - javax.net.ssl;uses:="javax.security.cert,javax.net";version="0.0.0.1_004_J2SE", \ - javax.net;version="0.0.0.1_004_J2SE", \ - javax.print.attribute.standard;uses:="javax.print.attribute";version="0.0.0.1_004_J2SE", \ - javax.print.attribute;version="0.0.0.1_004_J2SE", \ - javax.print.event;uses:="javax.print,javax.print.attribute";version="0.0.0.1_004_J2SE", \ - javax.print;uses:="javax.print.attribute,javax.print.event,javax.print.attribute.standard";version="0.0.0.1_004_J2SE", \ - javax.rmi.CORBA;uses:="org.omg.CORBA,org.omg.CORBA_2_3.portable,org.omg.CORBA.portable,org.omg.SendingContext";version="0.0.0.1_004_J2SE", \ - javax.rmi;uses:="org.omg.CORBA,javax.rmi.CORBA";version="0.0.0.1_004_J2SE", \ - javax.security.auth.callback;version="0.0.0.1_004_J2SE", \ - javax.security.auth.kerberos;uses:="javax.security.auth,javax.crypto";version="0.0.0.1_004_J2SE", \ - javax.security.auth.login;uses:="javax.security.auth,javax.security.auth.callback";version="0.0.0.1_004_J2SE", \ - javax.security.auth.spi;uses:="javax.security.auth.callback,javax.security.auth.login,javax.security.auth";version="0.0.0.1_004_J2SE", \ - javax.security.auth.x500;uses:="javax.security.auth";version="0.0.0.1_004_J2SE", \ - javax.security.auth;version="0.0.0.1_004_J2SE", \ - javax.security.cert;version="0.0.0.1_004_J2SE", \ - javax.sound.midi.spi;uses:="javax.sound.midi";version="0.0.0.1_004_J2SE", \ - javax.sound.midi;uses:="javax.sound.midi.spi";version="0.0.0.1_004_J2SE", \ - javax.sound.sampled.spi;uses:="javax.sound.sampled";version="0.0.0.1_004_J2SE", \ - javax.sound.sampled;uses:="javax.sound.sampled.spi";version="0.0.0.1_004_J2SE", \ - javax.sql;uses:="javax.transaction.xa";version="0.0.0.1_004_J2SE", \ - javax.swing.border;uses:="javax.swing";version="0.0.0.1_004_J2SE", \ - javax.swing.colorchooser;uses:="javax.swing.event,javax.swing,javax.swing.border,javax.accessibility";version="0.0.0.1_004_J2SE", \ - javax.swing.event;uses:="javax.swing,javax.swing.text,javax.swing.table,javax.swing.tree,javax.swing.undo";version="0.0.0.1_004_J2SE", \ - javax.swing.filechooser;uses:="javax.swing";version="0.0.0.1_004_J2SE", \ - javax.swing.plaf.basic;uses:="javax.swing.border,javax.swing,javax.swing.plaf,javax.swing.text,javax.swing.event,javax.swing.colorchooser,javax.accessibility,javax.swing.filechooser,javax.swing.text.html,javax.sound.sampled,javax.swing.table,javax.swing.tree";version="0.0.0.1_004_J2SE", \ - javax.swing.plaf.metal;uses:="javax.swing.plaf,javax.swing,javax.swing.border,javax.swing.text,javax.swing.plaf.basic,javax.swing.filechooser,javax.swing.event,javax.swing.table,javax.accessibility,javax.swing.tree";version="0.0.0.1_004_J2SE", \ - javax.swing.plaf.multi;uses:="javax.accessibility,javax.swing,javax.swing.plaf,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version="0.0.0.1_004_J2SE", \ - javax.swing.plaf;uses:="javax.swing,javax.swing.border,javax.accessibility,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version="0.0.0.1_004_J2SE", \ - javax.swing.table;uses:="javax.swing.event,javax.swing.plaf,javax.swing.border,javax.swing,javax.accessibility";version="0.0.0.1_004_J2SE", \ - javax.swing.text.html.parser;uses:="javax.swing.text,javax.swing.text.html";version="0.0.0.1_004_J2SE", \ - javax.swing.text.html;uses:="javax.swing.event,javax.swing.text,javax.accessibility,javax.swing,javax.swing.plaf,javax.swing.border,javax.swing.undo,javax.swing.text.html.parser";version="0.0.0.1_004_J2SE", \ - javax.swing.text.rtf;uses:="javax.swing.text";version="0.0.0.1_004_J2SE", \ - javax.swing.text;uses:="javax.swing.event,javax.swing.tree,javax.swing.undo,javax.swing,javax.swing.plaf,javax.swing.plaf.basic,javax.accessibility,javax.swing.text.html";version="0.0.0.1_004_J2SE", \ - javax.swing.tree;uses:="javax.swing.event,javax.swing,javax.swing.border,javax.swing.plaf";version="0.0.0.1_004_J2SE", \ - javax.swing.undo;uses:="javax.swing,javax.swing.event";version="0.0.0.1_004_J2SE", \ - javax.swing;uses:="javax.swing.event,javax.accessibility,javax.swing.text,javax.swing.plaf,javax.swing.border,javax.swing.tree,javax.swing.table,javax.swing.colorchooser,javax.swing.plaf.basic,javax.swing.text.html,javax.swing.filechooser";version="0.0.0.1_004_J2SE", \ - javax.transaction.xa;version="0.0.0.1_004_J2SE", \ - javax.transaction;version="0.0.0.1_004_J2SE", \ - javax.xml.parsers;uses:="org.w3c.dom,org.xml.sax,org.xml.sax.helpers";version="0.0.0.1_004_J2SE", \ - javax.xml.transform.dom;uses:="javax.xml.transform,org.w3c.dom";version="0.0.0.1_004_J2SE", \ - javax.xml.transform.sax;uses:="org.xml.sax.ext,javax.xml.transform,org.xml.sax,javax.xml.transform.stream";version="0.0.0.1_004_J2SE", \ - javax.xml.transform.stream;uses:="javax.xml.transform";version="0.0.0.1_004_J2SE", \ - javax.xml.transform;version="0.0.0.1_004_J2SE", \ - org.ietf.jgss;version="0.0.0.1_004_J2SE", \ - org.omg.CORBA.DynAnyPackage;uses:="org.omg.CORBA";version="0.0.0.1_004_J2SE", \ - org.omg.CORBA.ORBPackage;uses:="org.omg.CORBA";version="0.0.0.1_004_J2SE", \ - org.omg.CORBA.TypeCodePackage;uses:="org.omg.CORBA";version="0.0.0.1_004_J2SE", \ - org.omg.CORBA.portable;uses:="org.omg.CORBA,org.omg.CORBA_2_3.portable";version="0.0.0.1_004_J2SE", \ - org.omg.CORBA;uses:="org.omg.CORBA.portable,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA_2_3.portable,org.omg.CORBA.TypeCodePackage";version="0.0.0.1_004_J2SE", \ - org.omg.CORBA_2_3.portable;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.CORBA_2_3;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.CosNaming.NamingContextExtPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.CosNaming.NamingContextPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.CosNaming";version="0.0.0.1_004_J2SE", \ - org.omg.CosNaming;uses:="org.omg.CORBA.portable,org.omg.CORBA,org.omg.PortableServer,org.omg.CosNaming.NamingContextPackage,org.omg.CosNaming.NamingContextExtPackage";version="0.0.0.1_004_J2SE", \ - org.omg.Dynamic;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.DynamicAny.DynAnyFactoryPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.DynamicAny.DynAnyPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.DynamicAny;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage";version="0.0.0.1_004_J2SE", \ - org.omg.IOP.CodecFactoryPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.IOP.CodecPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.IOP;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage";version="0.0.0.1_004_J2SE", \ - org.omg.Messaging;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.PortableInterceptor.ORBInitInfoPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.PortableInterceptor;uses:="org.omg.CORBA.portable,org.omg.CORBA,org.omg.IOP,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.Dynamic";version="0.0.0.1_004_J2SE", \ - org.omg.PortableServer.CurrentPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.PortableServer.POAManagerPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.PortableServer.POAPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.PortableServer.ServantLocatorPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.PortableServer.portable;uses:="org.omg.CORBA,org.omg.PortableServer";version="0.0.0.1_004_J2SE", \ - org.omg.PortableServer;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.POAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServer.portable,org.omg.CORBA_2_3,org.omg.PortableServer.ServantLocatorPackage";version="0.0.0.1_004_J2SE", \ - org.omg.SendingContext;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_004_J2SE", \ - org.omg.stub.java.rmi;uses:="javax.rmi.CORBA";version="0.0.0.1_004_J2SE", \ - org.w3c.dom;version="0.0.0.1_004_J2SE", \ - org.xml.sax.ext;uses:="org.xml.sax";version="0.0.0.1_004_J2SE", \ - org.xml.sax.helpers;uses:="org.xml.sax";version="0.0.0.1_004_J2SE", \ - org.xml.sax;version="0.0.0.1_004_J2SE" +jre-1.7-java-base= \ + ${dollar}{jre-1.6-java-base}, \ + java.lang.invoke, \ + java.nio.file, \ + java.nio.file.attribute, \ + java.nio.file.spi -jre-1.5=, \ - javax.accessibility;uses:="javax.swing.text";version="0.0.0.1_005_J2SE", \ - javax.activity;version="0.0.0.1_005_J2SE", \ - javax.crypto.interfaces;uses:="javax.crypto.spec,javax.crypto";version="0.0.0.1_005_J2SE", \ - javax.crypto.spec;uses:="javax.crypto";version="0.0.0.1_005_J2SE", \ - javax.crypto;uses:="javax.crypto.spec";version="0.0.0.1_005_J2SE", \ - javax.imageio.event;uses:="javax.imageio";version="0.0.0.1_005_J2SE", \ - javax.imageio.metadata;uses:="org.w3c.dom,javax.imageio";version="0.0.0.1_005_J2SE", \ - javax.imageio.plugins.bmp;uses:="javax.imageio";version="0.0.0.1_005_J2SE", \ - javax.imageio.plugins.jpeg;uses:="javax.imageio";version="0.0.0.1_005_J2SE", \ - javax.imageio.spi;uses:="javax.imageio.stream,javax.imageio,javax.imageio.metadata";version="0.0.0.1_005_J2SE", \ - javax.imageio.stream;uses:="javax.imageio";version="0.0.0.1_005_J2SE", \ - javax.imageio;uses:="javax.imageio.metadata,javax.imageio.stream,javax.imageio.spi,javax.imageio.event";version="0.0.0.1_005_J2SE", \ - javax.management.loading;uses:="javax.management";version="0.0.0.1_005_J2SE", \ - javax.management.modelmbean;uses:="javax.management,javax.management.loading";version="0.0.0.1_005_J2SE", \ - javax.management.monitor;uses:="javax.management";version="0.0.0.1_005_J2SE", \ - javax.management.openmbean;uses:="javax.management";version="0.0.0.1_005_J2SE", \ - javax.management.relation;uses:="javax.management";version="0.0.0.1_005_J2SE", \ - javax.management.remote.rmi;uses:="javax.management.remote,javax.security.auth,javax.management,javax.naming,org.omg.CORBA,org.omg.CORBA.portable,javax.rmi,javax.rmi.CORBA";version="0.0.0.1_005_J2SE", \ - javax.management.remote;uses:="javax.security.auth,javax.management";version="0.0.0.1_005_J2SE", \ - javax.management.timer;uses:="javax.management";version="0.0.0.1_005_J2SE", \ - javax.management;uses:="javax.management.loading";version="0.0.0.1_005_J2SE", \ - javax.naming.directory;uses:="javax.naming";version="0.0.0.1_005_J2SE", \ - javax.naming.event;uses:="javax.naming,javax.naming.directory";version="0.0.0.1_005_J2SE", \ - javax.naming.ldap;uses:="javax.naming,javax.naming.directory,javax.net.ssl,javax.naming.event";version="0.0.0.1_005_J2SE", \ - javax.naming.spi;uses:="javax.naming,javax.naming.directory";version="0.0.0.1_005_J2SE", \ - javax.naming;uses:="javax.naming.spi";version="0.0.0.1_005_J2SE", \ - javax.net.ssl;uses:="javax.security.cert,javax.security.auth.x500,javax.net";version="0.0.0.1_005_J2SE", \ - javax.net;version="0.0.0.1_005_J2SE", \ - javax.print.attribute.standard;uses:="javax.print.attribute";version="0.0.0.1_005_J2SE", \ - javax.print.attribute;version="0.0.0.1_005_J2SE", \ - javax.print.event;uses:="javax.print,javax.print.attribute";version="0.0.0.1_005_J2SE", \ - javax.print;uses:="javax.print.attribute,javax.print.event,javax.print.attribute.standard";version="0.0.0.1_005_J2SE", \ - javax.rmi.CORBA;uses:="org.omg.CORBA,org.omg.CORBA_2_3.portable,org.omg.CORBA.portable,org.omg.SendingContext";version="0.0.0.1_005_J2SE", \ - javax.rmi.ssl;uses:="javax.net,javax.net.ssl";version="0.0.0.1_005_J2SE", \ - javax.rmi;uses:="org.omg.CORBA,javax.rmi.CORBA";version="0.0.0.1_005_J2SE", \ - javax.security.auth.callback;version="0.0.0.1_005_J2SE", \ - javax.security.auth.kerberos;uses:="javax.security.auth,javax.crypto";version="0.0.0.1_005_J2SE", \ - javax.security.auth.login;uses:="javax.security.auth,javax.security.auth.callback";version="0.0.0.1_005_J2SE", \ - javax.security.auth.spi;uses:="javax.security.auth.callback,javax.security.auth.login,javax.security.auth";version="0.0.0.1_005_J2SE", \ - javax.security.auth.x500;uses:="javax.security.auth";version="0.0.0.1_005_J2SE", \ - javax.security.auth;version="0.0.0.1_005_J2SE", \ - javax.security.cert;version="0.0.0.1_005_J2SE", \ - javax.security.sasl;uses:="javax.security.auth.callback";version="0.0.0.1_005_J2SE", \ - javax.sound.midi.spi;uses:="javax.sound.midi";version="0.0.0.1_005_J2SE", \ - javax.sound.midi;uses:="javax.sound.midi.spi";version="0.0.0.1_005_J2SE", \ - javax.sound.sampled.spi;uses:="javax.sound.sampled";version="0.0.0.1_005_J2SE", \ - javax.sound.sampled;uses:="javax.sound.sampled.spi";version="0.0.0.1_005_J2SE", \ - javax.sql.rowset.serial;uses:="javax.sql.rowset";version="0.0.0.1_005_J2SE", \ - javax.sql.rowset.spi;uses:="javax.sql,javax.naming,javax.sql.rowset";version="0.0.0.1_005_J2SE", \ - javax.sql.rowset;uses:="javax.sql,javax.sql.rowset.serial,javax.sql.rowset.spi";version="0.0.0.1_005_J2SE", \ - javax.sql;uses:="javax.transaction.xa";version="0.0.0.1_005_J2SE", \ - javax.swing.border;uses:="javax.swing";version="0.0.0.1_005_J2SE", \ - javax.swing.colorchooser;uses:="javax.swing.event,javax.swing,javax.swing.border";version="0.0.0.1_005_J2SE", \ - javax.swing.event;uses:="javax.swing,javax.swing.text,javax.swing.table,javax.swing.tree,javax.swing.undo";version="0.0.0.1_005_J2SE", \ - javax.swing.filechooser;uses:="javax.swing";version="0.0.0.1_005_J2SE", \ - javax.swing.plaf.basic;uses:="javax.swing.border,javax.swing,javax.swing.plaf,javax.swing.text,javax.swing.event,javax.swing.colorchooser,javax.accessibility,javax.swing.filechooser,javax.swing.text.html,javax.sound.sampled,javax.swing.table,javax.swing.tree";version="0.0.0.1_005_J2SE", \ - javax.swing.plaf.metal;uses:="javax.swing.plaf,javax.swing,javax.swing.border,javax.swing.text,javax.swing.plaf.basic,javax.swing.filechooser,javax.swing.event,javax.accessibility,javax.swing.tree";version="0.0.0.1_005_J2SE", \ - javax.swing.plaf.multi;uses:="javax.accessibility,javax.swing,javax.swing.plaf,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version="0.0.0.1_005_J2SE", \ - javax.swing.plaf.synth;uses:="javax.swing,javax.swing.plaf,javax.swing.border,javax.swing.plaf.basic,javax.swing.colorchooser,javax.swing.text,javax.xml.parsers,org.xml.sax,javax.swing.table,javax.swing.tree";version="0.0.0.1_005_J2SE", \ - javax.swing.plaf;uses:="javax.swing,javax.swing.border,javax.accessibility,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version="0.0.0.1_005_J2SE", \ - javax.swing.table;uses:="javax.swing.event,javax.swing.plaf,javax.swing.border,javax.swing,javax.accessibility";version="0.0.0.1_005_J2SE", \ - javax.swing.text.html.parser;uses:="javax.swing.text.html,javax.swing.text";version="0.0.0.1_005_J2SE", \ - javax.swing.text.html;uses:="javax.swing.event,javax.swing.text,javax.accessibility,javax.swing,javax.swing.plaf,javax.swing.border,javax.swing.undo";version="0.0.0.1_005_J2SE", \ - javax.swing.text.rtf;uses:="javax.swing.text";version="0.0.0.1_005_J2SE", \ - javax.swing.text;uses:="javax.swing.event,javax.swing.tree,javax.swing.undo,javax.swing,javax.swing.plaf,javax.swing.plaf.basic,javax.accessibility,javax.swing.text.html";version="0.0.0.1_005_J2SE", \ - javax.swing.tree;uses:="javax.swing.event,javax.swing,javax.swing.border,javax.swing.plaf,javax.swing.plaf.basic";version="0.0.0.1_005_J2SE", \ - javax.swing.undo;uses:="javax.swing,javax.swing.event";version="0.0.0.1_005_J2SE", \ - javax.swing;uses:="javax.swing.event,javax.accessibility,javax.swing.text,javax.swing.plaf,javax.swing.border,javax.swing.tree,javax.swing.table,javax.swing.colorchooser,javax.swing.plaf.basic,javax.swing.text.html,javax.swing.filechooser,javax.print.attribute,javax.swing.plaf.metal";version="0.0.0.1_005_J2SE", \ - javax.transaction.xa;version="0.0.0.1_005_J2SE", \ - javax.transaction;version="0.0.0.1_005_J2SE", \ - javax.xml.datatype;uses:="javax.xml.namespace";version="0.0.0.1_005_J2SE", \ - javax.xml.namespace;version="0.0.0.1_005_J2SE", \ - javax.xml.parsers;uses:="javax.xml.validation,org.w3c.dom,org.xml.sax,org.xml.sax.helpers";version="0.0.0.1_005_J2SE", \ - javax.xml.transform.dom;uses:="javax.xml.transform,org.w3c.dom";version="0.0.0.1_005_J2SE", \ - javax.xml.transform.sax;uses:="org.xml.sax.ext,javax.xml.transform,org.xml.sax,javax.xml.transform.stream";version="0.0.0.1_005_J2SE", \ - javax.xml.transform.stream;uses:="javax.xml.transform";version="0.0.0.1_005_J2SE", \ - javax.xml.transform;version="0.0.0.1_005_J2SE", \ - javax.xml.validation;uses:="org.w3c.dom.ls,javax.xml.transform,javax.xml.transform.stream,org.xml.sax,org.w3c.dom";version="0.0.0.1_005_J2SE", \ - javax.xml.xpath;uses:="org.xml.sax,javax.xml.namespace";version="0.0.0.1_005_J2SE", \ - javax.xml;version="0.0.0.1_005_J2SE", \ - org.ietf.jgss;version="0.0.0.1_005_J2SE", \ - org.omg.CORBA.DynAnyPackage;uses:="org.omg.CORBA";version="0.0.0.1_005_J2SE", \ - org.omg.CORBA.ORBPackage;uses:="org.omg.CORBA";version="0.0.0.1_005_J2SE", \ - org.omg.CORBA.TypeCodePackage;uses:="org.omg.CORBA";version="0.0.0.1_005_J2SE", \ - org.omg.CORBA.portable;uses:="org.omg.CORBA,org.omg.CORBA_2_3.portable";version="0.0.0.1_005_J2SE", \ - org.omg.CORBA;uses:="org.omg.CORBA.portable,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA_2_3.portable,org.omg.CORBA.TypeCodePackage";version="0.0.0.1_005_J2SE", \ - org.omg.CORBA_2_3.portable;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.CORBA_2_3;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.CosNaming.NamingContextExtPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.CosNaming.NamingContextPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.CosNaming";version="0.0.0.1_005_J2SE", \ - org.omg.CosNaming;uses:="org.omg.CORBA.portable,org.omg.CORBA,org.omg.PortableServer,org.omg.CosNaming.NamingContextPackage,org.omg.CosNaming.NamingContextExtPackage";version="0.0.0.1_005_J2SE", \ - org.omg.Dynamic;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.DynamicAny.DynAnyFactoryPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.DynamicAny.DynAnyPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.DynamicAny;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage";version="0.0.0.1_005_J2SE", \ - org.omg.IOP.CodecFactoryPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.IOP.CodecPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.IOP;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage";version="0.0.0.1_005_J2SE", \ - org.omg.Messaging;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.PortableInterceptor.ORBInitInfoPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.PortableInterceptor;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.IOP,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.CORBA_2_3.portable,org.omg.Dynamic";version="0.0.0.1_005_J2SE", \ - org.omg.PortableServer.CurrentPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.PortableServer.POAManagerPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.PortableServer.POAPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.PortableServer.ServantLocatorPackage;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.PortableServer.portable;uses:="org.omg.CORBA,org.omg.PortableServer";version="0.0.0.1_005_J2SE", \ - org.omg.PortableServer;uses:="org.omg.CORBA,org.omg.CORBA.portable,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.POAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServer.portable,org.omg.CORBA_2_3,org.omg.PortableServer.ServantLocatorPackage";version="0.0.0.1_005_J2SE", \ - org.omg.SendingContext;uses:="org.omg.CORBA,org.omg.CORBA.portable";version="0.0.0.1_005_J2SE", \ - org.omg.stub.java.rmi;uses:="javax.rmi.CORBA";version="0.0.0.1_005_J2SE", \ - org.w3c.dom.bootstrap;uses:="org.w3c.dom";version="0.0.0.1_005_J2SE", \ - org.w3c.dom.events;uses:="org.w3c.dom,org.w3c.dom.views";version="0.0.0.1_005_J2SE", \ - org.w3c.dom.ls;uses:="org.w3c.dom,org.w3c.dom.events,org.w3c.dom.traversal";version="0.0.0.1_005_J2SE", \ - org.w3c.dom;version="0.0.0.1_005_J2SE", \ - org.xml.sax.ext;uses:="org.xml.sax,org.xml.sax.helpers";version="0.0.0.1_005_J2SE", \ - org.xml.sax.helpers;uses:="org.xml.sax";version="0.0.0.1_005_J2SE", \ - org.xml.sax;version="0.0.0.1_005_J2SE" +jre-1.8-java-base= \ + ${dollar}{jre-1.7-java-base}, \ + java.time, \ + java.time.chrono, \ + java.time.format, \ + java.time.temporal, \ + java.time.zone, \ + java.util.function, \ + java.util.stream -jre-1.6=, \ +jre-1.6= \ + ${dollar}{jre-1.6-java-base}, \ javax.accessibility;uses:="javax.swing.text";version="0.0.0.1_006_JavaSE", \ javax.activation;version="0.0.0.1_006_JavaSE", \ javax.activity;version="0.0.0.1_006_JavaSE", \ @@ -554,7 +373,8 @@ jre-1.6=, \ org.xml.sax.helpers;uses:="org.xml.sax";version="0.0.0.1_006_JavaSE", \ org.xml.sax;version="0.0.0.1_006_JavaSE" -jre-1.7=, \ +jre-1.7= \ + ${dollar}{jre-1.7-java-base}, \ javax.accessibility;uses:="javax.swing.text";version="0.0.0.1_007_JavaSE", \ javax.activation;version="0.0.0.1_007_JavaSE", \ javax.activity;version="0.0.0.1_007_JavaSE", \ @@ -709,7 +529,8 @@ jre-1.7=, \ org.xml.sax.helpers;uses:="org.xml.sax";version="0.0.0.1_007_JavaSE", \ org.xml.sax;version="0.0.0.1_007_JavaSE" -jre-1.8=, \ +jre-1.8= \ + ${dollar}{jre-1.8-java-base}, \ javax.accessibility;version="0.0.0.1_008_JavaSE";uses:="javax.swing.text", \ javax.activation;version="0.0.0.1_008_JavaSE", \ javax.activity;version="0.0.0.1_008_JavaSE", \ @@ -739,9 +560,9 @@ jre-1.8=, \ javax.management.relation;version="0.0.0.1_008_JavaSE";uses:="javax.management", \ javax.management.remote;version="0.0.0.1_008_JavaSE";uses:="javax.management,javax.security.auth", \ javax.management.remote.rmi;version="0.0.0.1_008_JavaSE";uses:="javax.management,javax.management.remote,javax.rmi.CORBA,javax.security.auth,org.omg.CORBA,org.omg.CORBA.portable,org.omg.CORBA_2_3.portable", \ - javax.management.timer;version="0.0.0.1_008_JavaSE";uses:="javax.management", \ - javax.naming;version="0.0.0.1_008_JavaSE", \ - javax.naming.directory;version="0.0.0.1_008_JavaSE";uses:="javax.naming", \ + javax.management.timer;version="0.0.0.1_008_JavaSE";uses:="javax.management", \ + javax.naming;version="0.0.0.1_008_JavaSE", \ + javax.naming.directory;version="0.0.0.1_008_JavaSE";uses:="javax.naming", \ javax.naming.event;version="0.0.0.1_008_JavaSE";uses:="javax.naming,javax.naming.directory", \ javax.naming.ldap;version="0.0.0.1_008_JavaSE";uses:="javax.naming,javax.naming.directory,javax.naming.event,javax.net.ssl", \ javax.naming.spi;version="0.0.0.1_008_JavaSE";uses:="javax.naming,javax.naming.directory", \ @@ -865,7 +686,9 @@ jre-1.8=, \ org.xml.sax.ext;version="0.0.0.1_008_JavaSE";uses:="org.xml.sax,org.xml.sax.helpers", \ org.xml.sax.helpers;version="0.0.0.1_008_JavaSE";uses:="org.xml.sax" -jre-jpms=${dollar}{felix.jpms.felix.default} +jre-jpms= \ + ${dollar}{felix.detect.jpms.java} \ + ${dollar}{felix.jpms.felix.default} felix.jpms.java.se= \ ${dollar}{felix.jpms.${dollar}{felix.detect.jpms.java.base}} \