# 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.*, \ 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"