6.10. JRE packages tuning
Some packages are part of the JRE, but could be provided by tier libraries.
Some examples of package in this case are:
javax.xml.stream
package is provided by the JRE, but also by Apache Geronimo Spec bundles (and the implementation of provided by Woodstox).com.sun.org.apache.xerces.internal.dom
package is provided by the JRE, but also by Aapche Xerces.javax.activation
package is provided by the JRE, but also by Apache Geronimo Spec bundles.javax.annotation
package is provided by the JRE, but also by Apache Geronimo Spec bundles.- etc ...
We should define in the Karaf instance which packages should be provided by the JRE or by tiers bundles.
Moreover, we should manage of the exported packages of JRE depending of the JRE version: the JRE 1.6 provides more packages
than the 1.5 one.
To customize this in Karaf, you can tune the etc/jre.properties
file.
In the etc/jre.properties
file, you have two properties jre-1.5
and jre-1.6
.
They allow you to define the packages exported by the JRE (in function of the runtime version).
Each property provide the exhaustive list of packages provided by the JRE (and so part of the sytem packages).
For instance, a "standard" Karaf distribution provides the following etc/jre.properties
:
# # Java platform package export properties. # # Standard package set. Note that: # - javax.transaction* is exported with a mandatory attribute jre-1.5= \ javax.accessibility, \ javax.activity, \ javax.crypto, \ javax.crypto.interfaces, \ javax.crypto.spec, \ javax.imageio, \ javax.imageio.event, \ javax.imageio.metadata, \ javax.imageio.plugins.bmp, \ javax.imageio.plugins.jpeg, \ javax.imageio.spi, \ javax.imageio.stream, \ javax.management, \ javax.management.loading, \ javax.management.modelmbean, \ javax.management.monitor, \ javax.management.openmbean, \ javax.management.relation, \ javax.management.remote, \ javax.management.remote.rmi, \ javax.management.timer, \ javax.naming, \ javax.naming.directory, \ javax.naming.event, \ javax.naming.ldap, \ javax.naming.spi, \ javax.net, \ javax.net.ssl, \ javax.print, \ javax.print.attribute, \ javax.print.attribute.standard, \ javax.print.event, \ javax.rmi, \ javax.rmi.CORBA, \ javax.rmi.ssl, \ javax.security.auth, \ javax.security.auth.callback, \ javax.security.auth.kerberos, \ javax.security.auth.login, \ javax.security.auth.spi, \ javax.security.auth.x500, \ javax.security.cert, \ javax.security.sasl, \ javax.sound.midi, \ javax.sound.midi.spi, \ javax.sound.sampled, \ javax.sound.sampled.spi, \ javax.sql, \ javax.sql.rowset, \ javax.sql.rowset.serial, \ javax.sql.rowset.spi, \ javax.swing, \ javax.swing.border, \ javax.swing.colorchooser, \ javax.swing.event, \ javax.swing.filechooser, \ javax.swing.plaf, \ javax.swing.plaf.basic, \ javax.swing.plaf.metal, \ javax.swing.plaf.multi, \ javax.swing.plaf.synth, \ javax.swing.table, \ javax.swing.text, \ javax.swing.text.html, \ javax.swing.text.html.parser, \ javax.swing.text.rtf, \ javax.swing.tree, \ javax.swing.undo, \ javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \ javax.xml, \ javax.xml.datatype, \ javax.xml.namespace, \ javax.xml.parsers, \ javax.xml.transform, \ javax.xml.transform.dom, \ javax.xml.transform.sax, \ javax.xml.transform.stream, \ javax.xml.validation, \ javax.xml.xpath, \ org.ietf.jgss, \ org.omg.CORBA, \ org.omg.CORBA_2_3, \ org.omg.CORBA_2_3.portable, \ org.omg.CORBA.DynAnyPackage, \ org.omg.CORBA.ORBPackage, \ org.omg.CORBA.portable, \ org.omg.CORBA.TypeCodePackage, \ org.omg.CosNaming, \ org.omg.CosNaming.NamingContextExtPackage, \ org.omg.CosNaming.NamingContextPackage, \ org.omg.Dynamic, \ org.omg.DynamicAny, \ org.omg.DynamicAny.DynAnyFactoryPackage, \ org.omg.DynamicAny.DynAnyPackage, \ org.omg.IOP, \ org.omg.IOP.CodecFactoryPackage, \ org.omg.IOP.CodecPackage, \ org.omg.Messaging, \ org.omg.PortableInterceptor, \ org.omg.PortableInterceptor.ORBInitInfoPackage, \ org.omg.PortableServer, \ org.omg.PortableServer.CurrentPackage, \ org.omg.PortableServer.POAManagerPackage, \ org.omg.PortableServer.POAPackage, \ org.omg.PortableServer.portable, \ org.omg.PortableServer.ServantLocatorPackage, \ org.omg.SendingContext, \ org.omg.stub.java.rmi, \ org.omg.stub.javax.management.remote.rmi, \ org.w3c.dom, \ org.w3c.dom.bootstrap, \ org.w3c.dom.css, \ org.w3c.dom.events, \ org.w3c.dom.html, \ org.w3c.dom.ls, \ org.w3c.dom.ranges, \ org.w3c.dom.stylesheets, \ org.w3c.dom.traversal, \ org.w3c.dom.views, \ org.xml.sax, \ org.xml.sax.ext, \ org.xml.sax.helpers # Standard package set. Note that: # - javax.transaction* is exported with a mandatory attribute jre-1.6= \ javax.accessibility, \ javax.activation, \ javax.activity, \ javax.annotation, \ javax.annotation.processing, \ javax.crypto, \ javax.crypto.interfaces, \ javax.crypto.spec, \ javax.imageio, \ javax.imageio.event, \ javax.imageio.metadata, \ javax.imageio.plugins.bmp, \ javax.imageio.plugins.jpeg, \ javax.imageio.spi, \ javax.imageio.stream, \ javax.jws, \ javax.jws.soap, \ javax.lang.model, \ javax.lang.model.element, \ javax.lang.model.type, \ javax.lang.model.util, \ javax.management, \ javax.management.loading, \ javax.management.modelmbean, \ javax.management.monitor, \ javax.management.openmbean, \ javax.management.relation, \ javax.management.remote, \ javax.management.remote.rmi, \ javax.management.timer, \ javax.naming, \ javax.naming.directory, \ javax.naming.event, \ javax.naming.ldap, \ javax.naming.spi, \ javax.net, \ javax.net.ssl, \ javax.print, \ javax.print.attribute, \ javax.print.attribute.standard, \ javax.print.event, \ javax.rmi, \ javax.rmi.CORBA, \ javax.rmi.ssl, \ javax.script, \ javax.security.auth, \ javax.security.auth.callback, \ javax.security.auth.kerberos, \ javax.security.auth.login, \ javax.security.auth.spi, \ javax.security.auth.x500, \ javax.security.cert, \ javax.security.sasl, \ javax.sound.midi, \ javax.sound.midi.spi, \ javax.sound.sampled, \ javax.sound.sampled.spi, \ javax.sql, \ javax.sql.rowset, \ javax.sql.rowset.serial, \ javax.sql.rowset.spi, \ javax.swing, \ javax.swing.border, \ javax.swing.colorchooser, \ javax.swing.event, \ javax.swing.filechooser, \ javax.swing.plaf, \ javax.swing.plaf.basic, \ javax.swing.plaf.metal, \ javax.swing.plaf.multi, \ javax.swing.plaf.synth, \ javax.swing.table, \ javax.swing.text, \ javax.swing.text.html, \ javax.swing.text.html.parser, \ javax.swing.text.rtf, \ javax.swing.tree, \ javax.swing.undo, \ javax.tools, \ javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \ javax.xml, \ javax.xml.bind, \ javax.xml.bind.annotation, \ javax.xml.bind.annotation.adapters, \ javax.xml.bind.attachment, \ javax.xml.bind.helpers, \ javax.xml.bind.util, \ javax.xml.crypto, \ javax.xml.crypto.dom, \ javax.xml.crypto.dsig, \ javax.xml.crypto.dsig.dom, \ javax.xml.crypto.dsig.keyinfo, \ javax.xml.crypto.dsig.spec, \ javax.xml.datatype, \ javax.xml.namespace, \ javax.xml.parsers, \ javax.xml.soap, \ javax.xml.stream, \ javax.xml.stream.events, \ javax.xml.stream.util, \ javax.xml.transform, \ javax.xml.transform.dom, \ javax.xml.transform.sax, \ javax.xml.transform.stax, \ javax.xml.transform.stream, \ javax.xml.validation, \ javax.xml.ws, \ javax.xml.ws.handler, \ javax.xml.ws.handler.soap, \ javax.xml.ws.http, \ javax.xml.ws.soap, \ javax.xml.ws.spi, \ javax.xml.ws.wsaddressing, \ javax.xml.xpath, \ org.ietf.jgss, \ org.omg.CORBA, \ org.omg.CORBA_2_3, \ org.omg.CORBA_2_3.portable, \ org.omg.CORBA.DynAnyPackage, \ org.omg.CORBA.ORBPackage, \ org.omg.CORBA.portable, \ org.omg.CORBA.TypeCodePackage, \ org.omg.CosNaming, \ org.omg.CosNaming.NamingContextExtPackage, \ org.omg.CosNaming.NamingContextPackage, \ org.omg.Dynamic, \ org.omg.DynamicAny, \ org.omg.DynamicAny.DynAnyFactoryPackage, \ org.omg.DynamicAny.DynAnyPackage, \ org.omg.IOP, \ org.omg.IOP.CodecFactoryPackage, \ org.omg.IOP.CodecPackage, \ org.omg.Messaging, \ org.omg.PortableInterceptor, \ org.omg.PortableInterceptor.ORBInitInfoPackage, \ org.omg.PortableServer, \ org.omg.PortableServer.CurrentPackage, \ org.omg.PortableServer.POAManagerPackage, \ org.omg.PortableServer.POAPackage, \ org.omg.PortableServer.portable, \ org.omg.PortableServer.ServantLocatorPackage, \ org.omg.SendingContext, \ org.omg.stub.java.rmi, \ org.omg.stub.javax.management.remote.rmi, \ org.w3c.dom, \ org.w3c.dom.bootstrap, \ org.w3c.dom.css, \ org.w3c.dom.events, \ org.w3c.dom.html, \ org.w3c.dom.ls, \ org.w3c.dom.ranges, \ org.w3c.dom.stylesheets, \ org.w3c.dom.traversal, \ org.w3c.dom.views, \ org.w3c.dom.xpath, \ org.xml.sax, \ org.xml.sax.ext, \ org.xml.sax.helpers
For instance, if we deploy the Apache Geronimo Specs bundle providing the javax.xml.stream
package, we have to comment
the javax.xml.stream
package in the the jre-1.6 definition. Indeed, jre-1.5 doesn't provide javax.xml.stream
, it's
new in the JRE 1.6:
jre-1.6= \ [...] # javax.xml.stream, \ # javax.xml.stream.events, \ # javax.xml.stream.util, \ [...]