/*
* Copyright (c) OSGi Alliance (2013). All Rights Reserved.
*
* Licensed 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.
*/
/**
* The JPA Bridge combines 3 services:
* <ul>
* <li>XA DataSource - A Data source configured for the current database.
* <li>Transaction Manager - Provides the transactional context
* <li>Persistence Provider - The JPA provider.
* </ul>
*
* This bridge then provides the Persistence Provider with a {@code PersistenceUnit} object. This
* object is the sole interface for the JPA provider, it provides it with the (XA) Datasource, the
* class loaders, options, properties, etc. In return, the provider returns a Entity Manager Factory.
* The bridge then registers a managed Entity Manager proxy service for consumption by applications.
* <p>
* If the application starts to use the Entity Manager, then the proxy creates a new Entity Manager
* through the Entity Manager Factory and makes it join the current transaction. The connections are
* registered with the Transaction Manager so that they are automatically closed when the
* Transaction is finished.
*/
package osgi.jpa.managed.support;