blob: 8dd868323d2df9645ed69788f4b2d7f97674631d [file] [log] [blame]
# 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.
Bundle-Activator: org.apache.aries.tx.control.service.xa.impl.Activator
# Export the API so that this is an easily deployable bundle
Export-Package: org.osgi.service.transaction.control,\
org.osgi.service.transaction.control.recovery
# This bundle repackages code from a variety of places to make the
# implementation as easy as possible to deploy. There are some
# particularly important things though:
#
# * The JTA API package (javax.transaction) is private as we don't
# want it to leak into our class space. This is because javax.transaction
# is a split package in the JRE, and causes big problems due to its
# relationship with javax.transaction.xa and javax.sql. By hiding it
# internally we can protect our users from pain.
#
# * We must take javax.transaction.xa as an import because it is used
# by javax.sql and the Transaction Control API
#
# * We repackage the Geronimo Transaction Manager, and its Howl dependency.
# This further isolates users from the toxic javax.transaction split package
#
# * We repackage the common transaction service code so that we can be deployed
# as a single bundle.
Private-Package: javax.resource.spi, \
javax.transaction, \
org.apache.aries.tx.control.service.common.*, \
org.apache.aries.tx.control.service.xa.impl, \
org.apache.geronimo.transaction.*, \
org.objectweb.howl.log.*
# This bundle carefully controls its imports. As third party code is
# embedded in this bundle we can to restrict our imports to only support
# the pieces that we actually use (i.e. ignore optional features).
# This must be done carefully!
#
# Note that we also fix the import for javax.transaction.xa so that it can
# come from the JRE.
Import-Package: !javax.resource.*, \
!org.objectweb.howl.*, \
javax.transaction.xa;version=0, \
org.osgi.service.transaction.control, \
*
Provide-Capability: osgi.service;objectClass="org.osgi.service.transaction.control.TransactionControl";osgi.local.enabled="true";osgi.xa.enabled="true";uses:="org.osgi.service.transaction.control"