java.lang.Object
org.eclipse.persistence.platform.server.ServerPlatformBase
org.eclipse.persistence.platform.server.JMXServerPlatformBase
io.helidon.integrations.cdi.eclipselink.CDISEPlatform
All Implemented Interfaces:
org.eclipse.persistence.platform.server.ServerPlatform

public class CDISEPlatform extends org.eclipse.persistence.platform.server.JMXServerPlatformBase
A JMXServerPlatformBase that arranges things such that CDI, not JNDI, will be used to acquire a TransactionManager and MBeanServer.

Most users will not use this class directly, but will supply its fully-qualified name as the value of the eclipselink.target-server Eclipselink JPA extension property in a META-INF/persistence.xml file.

For example:

<property name="eclipselink.target-server"
          value="io.helidon.integrations.cdi.eclipselink.CDISEPlatform"/>
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    A Qualifier used to designate various things as being related to Eclipselink in some way.
    static class 
    A JTATransactionController whose CDISEPlatform.TransactionController.acquireTransactionManager() method uses CDI, not JNDI, to return a TransactionManager instance.
  • Field Summary

    Fields inherited from class org.eclipse.persistence.platform.server.JMXServerPlatformBase

    APP_SERVER_CLASSLOADER_APPLICATION_PU_SEARCH_STRING_POSTFIX, APP_SERVER_CLASSLOADER_APPLICATION_PU_SEARCH_STRING_PREFIX, APP_SERVER_CLASSLOADER_MODULE_EJB_SEARCH_STRING_PREFIX, APP_SERVER_CLASSLOADER_MODULE_EJB_WAR_SEARCH_STRING_POSTFIX, APP_SERVER_CLASSLOADER_MODULE_WAR_SEARCH_STRING_PREFIX, JMX_MBEANSERVER_INDEX_DEFAULT_FOR_MULTIPLE_SERVERS, JMX_REGISTRATION_PREFIX, mBeanServer, OVERRIDE_JMX_APPLICATIONNAME_PROPERTY, OVERRIDE_JMX_MODULENAME_PROPERTY

    Fields inherited from class org.eclipse.persistence.platform.server.ServerPlatformBase

    DEFAULT_SERVER_NAME_AND_VERSION, externalTransactionControllerClass, JMX_REGISTER_DEV_MBEAN_PROPERTY, JMX_REGISTER_RUN_MBEAN_PROPERTY, serverNameAndVersion, shouldRegisterDevelopmentBean, shouldRegisterRuntimeBean, threadPool, threadPoolSize
  • Constructor Summary

    Constructors
    Constructor
    Description
    CDISEPlatform(org.eclipse.persistence.sessions.DatabaseSession session)
    Creates a CDISEPlatform.
  • Method Summary

    Modifier and Type
    Method
    Description
    Class<? extends org.eclipse.persistence.sessions.ExternalTransactionController>
    Returns a non-null Class that extends AbstractTransactionController, namely CDISEPlatform.TransactionController.
    final int
    Returns JNDIConnector.UNDEFINED_LOOKUP when invoked.
    Uses CDI to find a relevant MBeanServer, caches it, and returns it.
    void
    Overrides the ServerPlatformBase.initializeExternalTransactionController() method to disable JTA if there is no TransactionManager bean present in CDI before invoking the superclass implementation.
    protected void
    Sets the name of the platform.
    void
    Uses CDI to find a relevant Executor whose Executor.execute(Runnable) method will be used to submit the supplied Runnable.
    Overrides the ServerPlatformBase.unwrapConnection(Connection) method to consider DelegatingConnections.

    Methods inherited from class org.eclipse.persistence.platform.server.JMXServerPlatformBase

    getAbstractSession, getApplicationName, getApplicationName, getMBeanSessionName, getModuleName, getModuleName, getRuntimeServicesMBean, initializeApplicationNameAndModuleName, serverSpecificRegisterMBean, serverSpecificUnregisterMBean, setApplicationName, setModuleName, setRuntimeServicesMBean

    Methods inherited from class org.eclipse.persistence.platform.server.ServerPlatformBase

    clearStatementCache, configureProfiler, disableJTA, disableRuntimeServices, enableRuntimeServices, ensureNotLoggedIn, externalTransactionControllerNotNullWarning, getDatabaseSession, getNewTempClassLoader, getPartitionID, getServerLog, getServerNameAndVersion, getThreadPool, getThreadPoolSize, isCMP, isJTA11, isJTAEnabled, isRuntimeServicesEnabled, isRuntimeServicesEnabledDefault, registerMBean, setExternalTransactionControllerClass, setIsCMP, setThreadPool, setThreadPoolSize, shouldUseDriverManager, shutdown, unregisterMBean, usesPartitions, wasFailureCommunicationBased

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CDISEPlatform

      public CDISEPlatform(org.eclipse.persistence.sessions.DatabaseSession session)
      Creates a CDISEPlatform.
      Parameters:
      session - the DatabaseSession this platform will wrap; must not be null
      See Also:
      • JMXServerPlatformBase(DatabaseSession)
  • Method Details

    • initializeServerNameAndVersion

      protected void initializeServerNameAndVersion()
      Sets the name of the platform.

      The format of the platform name is subject to change without notice.

      Overrides:
      initializeServerNameAndVersion in class org.eclipse.persistence.platform.server.ServerPlatformBase
      See Also:
      • ServerPlatformBase.getServerNameAndVersion()
    • getMBeanServer

      public MBeanServer getMBeanServer()
      Uses CDI to find a relevant MBeanServer, caches it, and returns it.

      This method may return null.

      Overrides of this method may return null.

      If there is no such MBeanServer then the MBeanServer found and cached by the superclass implementation of this method is returned instead.

      Overrides:
      getMBeanServer in class org.eclipse.persistence.platform.server.JMXServerPlatformBase
      Returns:
      an MBeanServer, or null
    • launchContainerRunnable

      public void launchContainerRunnable(Runnable runnable)
      Uses CDI to find a relevant Executor whose Executor.execute(Runnable) method will be used to submit the supplied Runnable.

      If there is no such Executor, then the superclass implementation of this method is used instead.

      Specified by:
      launchContainerRunnable in interface org.eclipse.persistence.platform.server.ServerPlatform
      Overrides:
      launchContainerRunnable in class org.eclipse.persistence.platform.server.ServerPlatformBase
      Parameters:
      runnable - the Runnable to launch; should not be null
      See Also:
      • ServerPlatformBase.launchContainerRunnable(Runnable)
    • initializeExternalTransactionController

      public void initializeExternalTransactionController()
      Overrides the ServerPlatformBase.initializeExternalTransactionController() method to disable JTA if there is no TransactionManager bean present in CDI before invoking the superclass implementation.

      This method also acquires a DataSource from CDI proactively, and installs it to preëmpt any JNDI operations.

      Specified by:
      initializeExternalTransactionController in interface org.eclipse.persistence.platform.server.ServerPlatform
      Overrides:
      initializeExternalTransactionController in class org.eclipse.persistence.platform.server.ServerPlatformBase
      Throws:
      org.eclipse.persistence.exceptions.ValidationException - if a DataSource could not be acquired
      See Also:
      • ServerPlatformBase.initializeExternalTransactionController()
      • Session.getDatasourceLogin()
      • DatasourceLogin.getConnector()
      • JNDIConnector
      • JNDIConnector.getName()
      • JNDIConnector.setDataSource(DataSource)
    • getExternalTransactionControllerClass

      public Class<? extends org.eclipse.persistence.sessions.ExternalTransactionController> getExternalTransactionControllerClass()
      Returns a non-null Class that extends AbstractTransactionController, namely CDISEPlatform.TransactionController.
      Specified by:
      getExternalTransactionControllerClass in interface org.eclipse.persistence.platform.server.ServerPlatform
      Specified by:
      getExternalTransactionControllerClass in class org.eclipse.persistence.platform.server.ServerPlatformBase
      Returns:
      a non-null Class that extends AbstractTransactionController
      See Also:
    • getJNDIConnectorLookupType

      public final int getJNDIConnectorLookupType()
      Returns JNDIConnector.UNDEFINED_LOOKUP when invoked.
      Specified by:
      getJNDIConnectorLookupType in interface org.eclipse.persistence.platform.server.ServerPlatform
      Overrides:
      getJNDIConnectorLookupType in class org.eclipse.persistence.platform.server.ServerPlatformBase
      Returns:
      JNDIConnector.UNDEFINED_LOOKUP
    • unwrapConnection

      public Connection unwrapConnection(Connection c)
      Overrides the ServerPlatformBase.unwrapConnection(Connection) method to consider DelegatingConnections.

      By design, only one level of unwrapping occurs; i.e. if the unwrapped Connection is itself a DelegatingConnection it is returned as is.

      Specified by:
      unwrapConnection in interface org.eclipse.persistence.platform.server.ServerPlatform
      Overrides:
      unwrapConnection in class org.eclipse.persistence.platform.server.ServerPlatformBase
      Parameters:
      c - the Connection to unwrap; must not be null
      Returns:
      the unwrapped Connection (which may be the supplied Connection); never null
      Throws:
      NullPointerException - if c is null
      See Also:
      • ServerPlatformBase.unwrapConnection(Connection)