Class PersistenceFactoryBase

  • All Implemented Interfaces:
    PersistenceContextFactory

    public class PersistenceFactoryBase
    extends java.lang.Object
    implements PersistenceContextFactory
    Manages the PersistenceContexts that are used by a JPA-RS deployment. Provides a single point to bootstrap and look up PersistenceContexts.
    Author:
    tware
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addReplacePersistenceContext​(PersistenceContext persistenceContext)  
      PersistenceContext bootstrapPersistenceContext​(java.lang.String name, EntityManagerFactory emf, java.net.URI baseURI, java.lang.String version, boolean replace)
      Bootstrap a PersistenceContext based on an pre-existing EntityManagerFactory.
      void close()
      Stop the factory.
      void closePersistenceContext​(java.lang.String name)
      Close the PersistenceContext of a given name and clean it out of our list of PersistenceContexts.
      void closePersistenceContext​(java.lang.String name, java.lang.String version)
      Close the PersistenceContext and clean it out of our list of PersistenceContexts.
      protected static java.util.Map<java.lang.String,​java.lang.Object> createProperties​(DynamicClassLoader dcl, java.util.Map<java.lang.String,​?> originalProperties)
      Provide an initial set of properties for bootstrapping PersistenceContexts.
      PersistenceContext get​(java.lang.String persistenceUnitName, java.net.URI defaultURI, java.lang.String version, java.util.Map<java.lang.String,​java.lang.Object> initializationProperties)
      Gets existing persistence context or create new based on given parameters if it doesn't exist.
      PersistenceContext getDynamicPersistenceContext​(java.lang.String name, java.lang.String version)
      Gets cached persistence context by its name and JPARS version.
      java.util.Set<java.lang.String> getPersistenceContextNames()
      Returns names of all currently cached persistence contexts.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • dynamicPersistenceContexts

        protected final java.util.Map<java.lang.String,​java.util.Set<PersistenceContext>> dynamicPersistenceContexts
    • Constructor Detail

      • PersistenceFactoryBase

        public PersistenceFactoryBase()
    • Method Detail

      • bootstrapPersistenceContext

        public PersistenceContext bootstrapPersistenceContext​(java.lang.String name,
                                                              EntityManagerFactory emf,
                                                              java.net.URI baseURI,
                                                              java.lang.String version,
                                                              boolean replace)
        Bootstrap a PersistenceContext based on an pre-existing EntityManagerFactory.
        Parameters:
        name - persistence context name
        emf - entity manager factory
        baseURI - base URI
        version - JPARS version. See ServiceVersion for more details.
        replace - Indicates that existing persistence context with given name and version must be replaced with the newly created one. If false passed the newly created context is not added to cache at all.
        Returns:
        newly created persistence context
      • closePersistenceContext

        public void closePersistenceContext​(java.lang.String name)
        Close the PersistenceContext of a given name and clean it out of our list of PersistenceContexts.
        Specified by:
        closePersistenceContext in interface PersistenceContextFactory
        Parameters:
        name - name of the persistence context to close.
      • closePersistenceContext

        public void closePersistenceContext​(java.lang.String name,
                                            java.lang.String version)
        Close the PersistenceContext and clean it out of our list of PersistenceContexts.
        Parameters:
        name - name of the persistence context to close.
        version - persistence context version
      • createProperties

        protected static java.util.Map<java.lang.String,​java.lang.Object> createProperties​(DynamicClassLoader dcl,
                                                                                                 java.util.Map<java.lang.String,​?> originalProperties)
        Provide an initial set of properties for bootstrapping PersistenceContexts.
        Parameters:
        dcl -
        originalProperties -
        Returns:
      • get

        public PersistenceContext get​(java.lang.String persistenceUnitName,
                                      java.net.URI defaultURI,
                                      java.lang.String version,
                                      java.util.Map<java.lang.String,​java.lang.Object> initializationProperties)
        Gets existing persistence context or create new based on given parameters if it doesn't exist.
        Specified by:
        get in interface PersistenceContextFactory
      • getDynamicPersistenceContext

        public PersistenceContext getDynamicPersistenceContext​(java.lang.String name,
                                                               java.lang.String version)
        Gets cached persistence context by its name and JPARS version.
        Parameters:
        name - persistent unit name.
        version - JPARS version. See ServiceVersion for more details.
        Returns:
        persistence context or null if doesn't exist.
      • addReplacePersistenceContext

        protected void addReplacePersistenceContext​(PersistenceContext persistenceContext)