<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_22) on Fri Jan 21 22:19:15 GMT 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ManagedPersistenceUnitInfoFactory (Aries JPA Container API 0.3-SNAPSHOT API)
</TITLE>

<META NAME="date" CONTENT="2011-01-21">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="ManagedPersistenceUnitInfoFactory (Aries JPA Container API 0.3-SNAPSHOT API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ManagedPersistenceUnitInfoFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfo.html" title="interface in org.apache.aries.jpa.container"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/aries/jpa/container/PersistenceUnitConstants.html" title="interface in org.apache.aries.jpa.container"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ManagedPersistenceUnitInfoFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.aries.jpa.container</FONT>
<BR>
Interface ManagedPersistenceUnitInfoFactory</H2>
<HR>
<DL>
<DT><PRE>public interface <B>ManagedPersistenceUnitInfoFactory</B></DL>
</PRE>

<P>
A Factory for <A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfo.html" title="interface in org.apache.aries.jpa.container"><CODE>ManagedPersistenceUnitInfo</CODE></A> objects.
 
 This interface marks a plug-point for implementations that wish to extend
 the Aries JPA Container by providing customized <CODE>PersistenceUnitInfo</CODE>
 objects.

 Customized implementations can be provided in two ways:
 <ul>
   <li>
     By setting a config property of the "container" bean in in the blueprint for this bundle.
   </li>
   <li>
     By adding a config property to a properties file added to this bundle using a fragment.
     The properties file should be named "org.apache.aries.jpa.container.properties" and be
     available at the root of the classpath. This properties file name is available as a
     constant ARIES_JPA_CONTAINER_PROPERTIES.
   </li>
 </ul>
 
 Note that properties provided through the properties file will override properties supplied
 through the blueprint container.
 
 The property key to use is "org.apache.aries.jpa.container.ManagedPersistenceUnitInfoFactory"
 and is accessible using the DEFAULT_PU_INFO_FACTORY_KEY field. The value associated with this
 key should be the class name of the <A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html" title="interface in org.apache.aries.jpa.container"><CODE>ManagedPersistenceUnitInfoFactory</CODE></A> implementation
 that should be used. The provided class name must be loadable by this bundle.
 
 Implementations of this interface <b>must</b> have a no-args constructor and be safe for
 use by multiple concurrent threads.
 
 No locks will be held by the JPA container or framework when calling methods on this interface.
<P>

<P>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html#ARIES_JPA_CONTAINER_PROPERTIES">ARIES_JPA_CONTAINER_PROPERTIES</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The name of the config properties file that can be used to configure
 the Aries JPA Container</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html#DEFAULT_PU_INFO_FACTORY_KEY">DEFAULT_PU_INFO_FACTORY_KEY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The config property key that should be used to provide a customized
 <A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html" title="interface in org.apache.aries.jpa.container"><CODE>ManagedPersistenceUnitInfoFactory</CODE></A> to the Aries JPA Container</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfo.html" title="interface in org.apache.aries.jpa.container">ManagedPersistenceUnitInfo</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html#createManagedPersistenceUnitMetadata(org.osgi.framework.BundleContext, org.osgi.framework.Bundle, org.osgi.framework.ServiceReference, java.util.Collection)">createManagedPersistenceUnitMetadata</A></B>(<A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</A>&nbsp;containerContext,
                                     <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Bundle.html?is-external=true" title="class or interface in org.osgi.framework">Bundle</A>&nbsp;persistenceBundle,
                                     <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</A>&nbsp;providerReference,
                                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/aries/jpa/container/parsing/ParsedPersistenceUnit.html" title="interface in org.apache.aries.jpa.container.parsing">ParsedPersistenceUnit</A>&gt;&nbsp;persistenceMetadata)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called by the Aries JPA container when persistence descriptors have
 been located in a persistence bundle.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html#destroyPersistenceBundle(org.osgi.framework.BundleContext, org.osgi.framework.Bundle)">destroyPersistenceBundle</A></B>(<A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</A>&nbsp;containerContext,
                         <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Bundle.html?is-external=true" title="class or interface in org.osgi.framework">Bundle</A>&nbsp;persistenceBundle)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when the persistence bundle is no longer being managed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html#getDefaultProviderClassName()">getDefaultProviderClassName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If no persistence units in a persistence bundle specify a JPA <CODE>PersistenceProvider</CODE> 
 implementation class, then the JPA container will call this method to obtain a default
 provider to use.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="DEFAULT_PU_INFO_FACTORY_KEY"><!-- --></A><H3>
DEFAULT_PU_INFO_FACTORY_KEY</H3>
<PRE>
static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DEFAULT_PU_INFO_FACTORY_KEY</B></PRE>
<DL>
<DD>The config property key that should be used to provide a customized
 <A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html" title="interface in org.apache.aries.jpa.container"><CODE>ManagedPersistenceUnitInfoFactory</CODE></A> to the Aries JPA Container
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.aries.jpa.container.ManagedPersistenceUnitInfoFactory.DEFAULT_PU_INFO_FACTORY_KEY">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ARIES_JPA_CONTAINER_PROPERTIES"><!-- --></A><H3>
ARIES_JPA_CONTAINER_PROPERTIES</H3>
<PRE>
static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ARIES_JPA_CONTAINER_PROPERTIES</B></PRE>
<DL>
<DD>The name of the config properties file that can be used to configure
 the Aries JPA Container
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.aries.jpa.container.ManagedPersistenceUnitInfoFactory.ARIES_JPA_CONTAINER_PROPERTIES">Constant Field Values</A></DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="createManagedPersistenceUnitMetadata(org.osgi.framework.BundleContext, org.osgi.framework.Bundle, org.osgi.framework.ServiceReference, java.util.Collection)"><!-- --></A><H3>
createManagedPersistenceUnitMetadata</H3>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfo.html" title="interface in org.apache.aries.jpa.container">ManagedPersistenceUnitInfo</A>&gt; <B>createManagedPersistenceUnitMetadata</B>(<A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</A>&nbsp;containerContext,
                                                                            <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Bundle.html?is-external=true" title="class or interface in org.osgi.framework">Bundle</A>&nbsp;persistenceBundle,
                                                                            <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</A>&nbsp;providerReference,
                                                                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/aries/jpa/container/parsing/ParsedPersistenceUnit.html" title="interface in org.apache.aries.jpa.container.parsing">ParsedPersistenceUnit</A>&gt;&nbsp;persistenceMetadata)</PRE>
<DL>
<DD>This method will be called by the Aries JPA container when persistence descriptors have
 been located in a persistence bundle.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>containerContext</CODE> - The <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework"><CODE>BundleContext</CODE></A> for the container bundle. This can be
                          used to get services from the service registry when creating
                          <CODE>PersistenceUnitInfo</CODE> objects.<DD><CODE>persistenceBundle</CODE> - The <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Bundle.html?is-external=true" title="class or interface in org.osgi.framework"><CODE>Bundle</CODE></A> defining the persistence units. This bundle may
                          be in any state, and so may not have a usable <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework"><CODE>BundleContext</CODE></A>
                          or be able to load classes.<DD><CODE>providerReference</CODE> - A <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework"><CODE>ServiceReference</CODE></A> for the <CODE>PersistenceProvider</CODE> service
                          that will be used to create <CODE>EntityManagerFactory</CODE> objects from
                          these persistence units.<DD><CODE>persistenceMetadata</CODE> - A <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><CODE>Collection</CODE></A> of <A HREF="../../../../../org/apache/aries/jpa/container/parsing/ParsedPersistenceUnit.html" title="interface in org.apache.aries.jpa.container.parsing"><CODE>ParsedPersistenceUnit</CODE></A> objects containing the
                            metadata from the persistence descriptor.
<DT><B>Returns:</B><DD>A Collection of <A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfo.html" title="interface in org.apache.aries.jpa.container"><CODE>ManagedPersistenceUnitInfo</CODE></A> objects that can be used to create <CODE>EntityManagerFactory</CODE> instances</DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultProviderClassName()"><!-- --></A><H3>
getDefaultProviderClassName</H3>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDefaultProviderClassName</B>()</PRE>
<DL>
<DD>If no persistence units in a persistence bundle specify a JPA <CODE>PersistenceProvider</CODE> 
 implementation class, then the JPA container will call this method to obtain a default
 provider to use.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>A <CODE>PersistenceProvider</CODE> implementation class name, or null if no default is
         specified.</DL>
</DD>
</DL>
<HR>

<A NAME="destroyPersistenceBundle(org.osgi.framework.BundleContext, org.osgi.framework.Bundle)"><!-- --></A><H3>
destroyPersistenceBundle</H3>
<PRE>
void <B>destroyPersistenceBundle</B>(<A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</A>&nbsp;containerContext,
                              <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Bundle.html?is-external=true" title="class or interface in org.osgi.framework">Bundle</A>&nbsp;persistenceBundle)</PRE>
<DL>
<DD>This method will be called when the persistence bundle is no longer being managed. This may
 be because the bundle is being updated, or because the <CODE>PersistenceProvider</CODE> being
 used is no longer available.
 
 When this method is called implementations should clear up any resources associated with
 persistence units defined by the persistence bundle.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>containerContext</CODE> - The <A HREF="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework"><CODE>BundleContext</CODE></A> for the container bundle.<DD><CODE>persistenceBundle</CODE> - The persistence bundle that is no longer valid.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ManagedPersistenceUnitInfoFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/aries/jpa/container/ManagedPersistenceUnitInfo.html" title="interface in org.apache.aries.jpa.container"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/aries/jpa/container/PersistenceUnitConstants.html" title="interface in org.apache.aries.jpa.container"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/aries/jpa/container/ManagedPersistenceUnitInfoFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ManagedPersistenceUnitInfoFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2009-2011 <a href="http://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
