#    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.local.impl.Activator

# Export the API so that this is an easily deployable bundle 

Export-Package: org.osgi.service.transaction.control


# We repackage the common transaction service code so that we can be deployed
# as a single bundle.

Private-Package: org.apache.aries.tx.control.service.common.*,\
                 org.apache.aries.tx.control.service.local.*

# Ensure that the API is exported substitutably

Import-Package: org.osgi.service.transaction.control, \
                *