Class RepositoryService

java.lang.Object
org.nuxeo.runtime.model.DefaultComponent
org.nuxeo.ecm.core.repository.RepositoryService
All Implemented Interfaces:
Adaptable, Component, Extensible, TimestampedService

public class RepositoryService extends DefaultComponent
Component and service managing low-level repository instances.
  • Field Details

    • NAME

      public static final ComponentName NAME
    • CLUSTER_START_DURATION_PROP

      public static final String CLUSTER_START_DURATION_PROP
      Since:
      11.1
      See Also:
    • CLUSTER_START_DURATION_DEFAULT

      public static final Duration CLUSTER_START_DURATION_DEFAULT
      Since:
      11.1
    • XP_REPOSITORY

      public static final String XP_REPOSITORY
      See Also:
    • basePool

      protected org.apache.commons.pool2.impl.GenericKeyedObjectPool<String,Session> basePool
    • poolConfig

      protected PoolConfiguration poolConfig
    • pool

      protected org.apache.commons.pool2.KeyedObjectPool<String,Session> pool
    • SESSIONS

      protected static final Map<String,ThreadLocal<Session>> SESSIONS
      Thread-local sessions allocated, per repository.
  • Constructor Details

    • RepositoryService

      public RepositoryService()
  • Method Details

    • shutdown

      public void shutdown()
    • getApplicationStartedOrder

      public int getApplicationStartedOrder()
      Description copied from interface: Component
      The component notification order for Component.start(ComponentContext).

      Components are notified in increasing order. Order 1000 is the default order for components that don't care. Order 100 is the repository initialization.

      Returns:
      the order, 1000 by default
    • start

      public void start(ComponentContext context)
      Description copied from interface: Component
      Start the component. This method is called after all the components were resolved and activated
      Specified by:
      start in interface Component
      Overrides:
      start in class DefaultComponent
    • stop

      public void stop(ComponentContext context)
      Description copied from interface: Component
      Stop the component.
      Specified by:
      stop in interface Component
      Overrides:
      stop in class DefaultComponent
    • initPoolConfig

      protected void initPoolConfig()
    • initPool

      protected void initPool()
    • shutdownPool

      protected void shutdownPool()
    • resetPool

      public void resetPool()
    • getPool

      public org.apache.commons.pool2.impl.GenericKeyedObjectPool<String,?> getPool()
    • initRepositories

      public void initRepositories()
      Start a tx and initialize repositories content. This method is publicly exposed since it is needed by tests to initialize repositories after cleanups (see CoreFeature).
      Since:
      8.4
    • doCreateRepositories

      protected void doCreateRepositories()
      Creates all the repositories. Requires an active transaction.
      Since:
      9.3
    • createRepository

      protected void createRepository(String repositoryName, RepositoryFactory factory)
    • doInitRepositories

      protected void doInitRepositories()
      Initializes all the repositories. Requires an active transaction.
      Since:
      9.3
    • getAdapter

      public <T> T getAdapter(Class<T> adapter)
      Description copied from interface: Adaptable
      Returns an object which is an instance of the given class associated with this object. Returns null if no such object can be found.
      Specified by:
      getAdapter in interface Adaptable
      Overrides:
      getAdapter in class DefaultComponent
      Parameters:
      adapter - the adapter class to look up
      Returns:
      a object castable to the given class, or null if this object does not have an adapter for the given class
    • initializeRepository

      protected void initializeRepository(RepositoryInitializationHandler handler, String name)
    • getRepository

      public Repository getRepository(String repositoryName)
      Gets a repository given its name.

      Null is returned if no repository with that name was registered.

      Parameters:
      repositoryName - the repository name
      Returns:
      the repository instance or null if no repository with that name was registered
    • getFactory

      protected RepositoryFactory getFactory(String repositoryName)
    • getRepositoryNames

      public List<String> getRepositoryNames()
    • getActiveSessionsCount

      public int getActiveSessionsCount()
    • getActiveSessionsCount

      public int getActiveSessionsCount(String repositoryName)
    • getSession

      public Session getSession(String repositoryName)
      Gets a session.

      The session is first looked up in the current transaction, otherwise fetched from a pool.

      Parameters:
      repositoryName - the repository name
      Returns:
      the session
      Since:
      11.1
    • getSessionFromPool

      protected Session getSessionFromPool(String repositoryName, Runnable cleanup)