# 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.


#
# Framework config properties.
#

org.osgi.framework.system.packages=\
 org.osgi.framework; version=1.5.0, \
 org.osgi.framework.launch; version=1.0.0, \
 org.osgi.framework.hooks.service; version=1.4.0, \
 org.osgi.service.packageadmin; version=1.2.0, \
 org.osgi.service.startlevel; version=1.1.0, \
 org.osgi.service.url; version=1.0.0, \
 org.osgi.util.tracker; version=1.4.0 \
 ${extra-system-packages}

extra-system-packages=${jre-${java.specification.version}} ${internal-jdk-pkgs-for-gf}

# Eclipselink does not import these packages, although it depends on them.
# See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=265763.
eclipselink.bootdelegation=javax.naming, javax.naming.*, javax.sql, javax.sql.*, oracle.sql, oracle.sql.*, \
                           org.xml.sax, org.xml.sax.*, org.w3c.dom, org.w3c.dom.*, \
                           javax.xml.parsers, javax.xml.parsers.*, javax.xml.transform, javax.xml.transform.*, javax.xml.validation, javax.xml.validation.*, \
                           javax.xml.datatype, javax.xml.datatype.*, javax.xml.namespace, javax.xml.namespace.*, javax.xml.xpath, javax.xml.xpath.*

# There is no need to use bootdelegation except for the following issues:
# 1. EclipseLink
# 2. javax.transaction is needed to avoid loader constraint violation as javax.sql depends on
# javax.transaction and we use javax.sql from JDK. 
# 3. org.omg.CORBA is needed because JDK contains only subset of the classes in this package.
# 4. NetBeans profiler packages exist in parent class loader (see issue #8612)
# 5. BTrace exists in bootclasspath.
org.osgi.framework.bootdelegation=javax.transaction, javax.transaction.*, \
                                  org.omg.CORBA, \
                                  ${eclipselink.bootdelegation}, \
                                  com.sun.btrace, com.sun.btrace.*, \
                                  org.netbeans.lib.profiler, org.netbeans.lib.profiler.*
                                  
# The OSGi R4.2 spec says boot delegation uses the boot class loader by default. We need
# to configure it to use the framework class loader because that class loader is
# configured with extra classes like jdk tools.jar, derby jars, etc. that must be
# made available in GlassFish to work.
org.osgi.framework.bundle.parent=framework

# The Felix launcher registers a shutdown hook to cleanly stop the framework
# by default, uncomment the following line to disable it.
#felix.shutdown.hook=false

# The reason for using yet another variable called com.sun.aas.installRootURI
# instead of com.sun.aas.installRoot is that on Windows, the native pathname
# uses '\' which is not in URI synatx. Felix requires a URI for the 
# bundles to be auto-started.
# GlassFish specific note:
# Auto-start osgi-main module, which takes care of starting rest of the system.
felix.auto.start.1= \
 reference:${com.sun.aas.installRootURI}modules/osgi-main.jar 

# log level 1: error, 2: warning, 3: info, 4: debug
felix.log.level=1
org.osgi.framework.startlevel.beginning=1
# Set bundle start level to be same as that of framework, 
# otherwise HK2 installed bundles won't be activated.
# See issue #5934
felix.startlevel.bundle=1
#felix.service.urlhandlers=false

# We don't use felix config file to configure various bundles
# like remotre shell, fileinstall. Instead, we use domain.xml.
# Hence the following properties are commented. See issue GlassFish issue #9677.

# Port on which remote shell listens for connections.
# osgi.shell.telnet.port=6666
# How many concurrent users can connect to this remote shell
# osgi.shell.telnet.maxconn=1
# From which hosts users can connect
# osgi.shell.telnet.ip=127.0.0.1

# Directory being watched by fileinstall.
# felix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/
# Time period fileinstaller thread in ms.
# felix.fileinstall.poll=5000
# debug level
# felix.fileinstall.debug=1
# should new bundles be started or installed only? true => start, false => only install
# felix.fileinstall.bundles.new.start=true

#
# Java SE 6 platform packages. Taken from: http://java.sun.com/javase/6/docs/api/
# Don't add/remove any new package unless you find bugs.
# Since we don't know the actual package versions,
# we export most of them with default version.
# We don't export JAXB and JAX-WS packages because higher version of
# those packages are exported by respective modules in glassfish. 
# That should not be a problem, but Felix seems to spend infinite
# time in calculating uses constraints when there are multiple providers
# for some package.
# The same issue exists for javax.annotation package, which will be present
# with 1.1 version in EE6. See issue #7658
# So, for the time being, we have stopped exporting such packages from JDK.
# Please also note that, javax.transaction and org.omg.CORBA are exported with a mandatory
# attribute, because JRE contains a partial list of classes from that package.
#
jre-1.6=, \
 javax.accessibility, \
 javax.activation; version="1.1", \
 javax.activity, \
 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.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.datatype, \
 javax.xml.namespace, \
 javax.xml.parsers, \
 javax.xml.stream; javax.xml.stream.events; javax.xml.stream.util; version=1.0, \
 javax.xml.transform, \
 javax.xml.transform.dom, \
 javax.xml.transform.sax, \
 javax.xml.transform.stax, \
 javax.xml.transform.stream, \
 javax.xml.validation, \
 javax.xml.xpath, \
 org.ietf.jgss, \
 org.omg.CORBA;partial=true; mandatory:=partial, \
 org.omg.CORBA.DynAnyPackage, \
 org.omg.CORBA.ORBPackage, \
 org.omg.CORBA.TypeCodePackage, \
 org.omg.CORBA.portable, \
 org.omg.CORBA_2_3, \
 org.omg.CORBA_2_3.portable, \
 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.ServantLocatorPackage, \
 org.omg.PortableServer.portable, \
 org.omg.SendingContext, \
 org.w3c.dom, \
 org.w3c.dom.bootstrap, \
 org.w3c.dom.events, \
 org.w3c.dom.ls, \
 org.xml.sax, \
 org.xml.sax.ext, \
 org.xml.sax.helpers
# We currently don't export JAXB and JAX-WS packages for reasons mentioned earlier.
# ${jaxb-and-jaxws-packages}

jaxb-and-jaxws-packages=, \
 javax.jws, \
 javax.jws.soap, \
 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.soap, \
 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

# For easier maintenance and extensibility reasons, we use framework
# extension bundles to augment JDK packages exported by system bundle.
# So, this property is set an empty value.
internal-jdk-pkgs-for-gf=

#dtrace support 
jre-1.7=${jre-1.6},com.sun.tracing 
