Class EmbeddedServer

  • All Implemented Interfaces:
    org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ExecutionFactoryProvider, org.teiid.events.EventDistributorFactory

    public class EmbeddedServer
    extends AbstractVDBDeployer
    implements org.teiid.events.EventDistributorFactory, org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ExecutionFactoryProvider
    A simplified server environment for embedded use. Needs to be started prior to use with a call to start(EmbeddedConfiguration)
    • Field Detail

      • dqp

        protected org.teiid.dqp.internal.process.DQPCore dqp
      • repo

        protected VDBRepository repo
        Custom vdb repository that will immediately throw exceptions for metadata validation errors
      • throwMetadataErrors

        protected boolean throwMetadataErrors
      • replicator

        protected org.teiid.query.ObjectReplicator replicator
      • transactionService

        protected org.teiid.dqp.internal.process.TransactionServerImpl transactionService
      • waitForLoad

        protected boolean waitForLoad
      • cmr

        protected org.teiid.dqp.internal.datamgr.ConnectorManagerRepository cmr
      • useCallingThread

        protected boolean useCallingThread
    • Constructor Detail

      • EmbeddedServer

        public EmbeddedServer()
    • Method Detail

      • addConnectionFactory

        public void addConnectionFactory​(String name,
                                         Object connectionFactory)
        Adds the object as the named connection factory to replace the default JNDI lookup strategy.
        Parameters:
        name -
        connectionFactory -
      • getBufferService

        protected org.teiid.dqp.service.BufferService getBufferService()
      • addTranslator

        public void addTranslator​(Class<? extends org.teiid.translator.ExecutionFactory> clazz)
                           throws org.teiid.translator.TranslatorException
        Adds a definition of the ExecutionFactory using the default name either from the Translator annotation or the class name. Only ExecutionFactory classes with a Translator annotation can be referenced by addTranslator(String, String, Map)
        Parameters:
        clazz -
        Throws:
        org.teiid.translator.TranslatorException
      • addTranslator

        public void addTranslator​(String name,
                                  String type,
                                  Map<String,​String> properties)
                           throws org.teiid.translator.TranslatorException
        Add an override translator
        Parameters:
        name -
        type - the name of an existing translator to override
        properties -
        Throws:
        org.teiid.translator.TranslatorException
      • addTranslator

        public void addTranslator​(String name,
                                  org.teiid.translator.ExecutionFactory<?,​?> ef)
        Add a named ExecutionFactory. NOTE: Only this single instance will be shared for all usage. See addTranslator(String, String, Map) or addTranslator(Class)
        Parameters:
        name -
        ef - the already started ExecutionFactory
      • deployVDB

        public void deployVDB​(String name,
                              org.teiid.adminapi.impl.ModelMetaData... models)
                       throws org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException,
                              VirtualDatabaseException,
                              org.teiid.translator.TranslatorException
        Deploy the given set of models as vdb name.1
        Parameters:
        name -
        models -
        Throws:
        org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
        VirtualDatabaseException
        org.teiid.translator.TranslatorException
      • deployVDB

        public void deployVDB​(InputStream is)
                       throws VirtualDatabaseException,
                              org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException,
                              org.teiid.translator.TranslatorException,
                              IOException
        Deploy a vdb.xml file. The name and version will be derived from the xml.
        Parameters:
        is - which will be closed by this deployment
        Throws:
        org.teiid.translator.TranslatorException
        org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
        VirtualDatabaseException
        IOException
      • deployVDB

        public void deployVDB​(InputStream is,
                              boolean ddl)
                       throws VirtualDatabaseException,
                              org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException,
                              org.teiid.translator.TranslatorException,
                              IOException
        Deploy a vdb.xml file. The name and version will be derived from the xml.
        Parameters:
        is - which will be closed by this deployment
        ddl - true if the file contents are DDL
        Throws:
        org.teiid.translator.TranslatorException
        org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
        VirtualDatabaseException
        IOException
      • allowOverrideTranslators

        protected boolean allowOverrideTranslators()
      • deployVDB

        protected void deployVDB​(org.teiid.adminapi.impl.VDBMetaData vdb,
                                 org.teiid.query.metadata.VDBResources resources)
                          throws org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException,
                                 VirtualDatabaseException,
                                 org.teiid.translator.TranslatorException
        Throws:
        org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
        VirtualDatabaseException
        org.teiid.translator.TranslatorException
      • cacheMetadataFactory

        protected void cacheMetadataFactory​(org.teiid.adminapi.impl.VDBMetaData vdb,
                                            org.teiid.adminapi.impl.ModelMetaData model,
                                            org.teiid.metadata.MetadataFactory schema)
        Specified by:
        cacheMetadataFactory in class AbstractVDBDeployer
      • getCachedMetadataFactory

        protected org.teiid.metadata.MetadataFactory getCachedMetadataFactory​(org.teiid.adminapi.impl.VDBMetaData vdb,
                                                                              org.teiid.adminapi.impl.ModelMetaData model)
        Specified by:
        getCachedMetadataFactory in class AbstractVDBDeployer
      • retryLoad

        protected boolean retryLoad​(org.teiid.adminapi.impl.VDBMetaData vdb,
                                    org.teiid.adminapi.impl.ModelMetaData model,
                                    Runnable job)
        Description copied from class: AbstractVDBDeployer
        Return true if we can retry the load
        Specified by:
        retryLoad in class AbstractVDBDeployer
        Returns:
      • runMetadataJob

        protected void runMetadataJob​(org.teiid.adminapi.impl.VDBMetaData vdb,
                                      org.teiid.adminapi.impl.ModelMetaData model,
                                      Runnable job)
                               throws org.teiid.translator.TranslatorException
        Specified by:
        runMetadataJob in class AbstractVDBDeployer
        Throws:
        org.teiid.translator.TranslatorException
      • undeployVDB

        public void undeployVDB​(String vdbName)
      • undeployVDB

        public void undeployVDB​(String vdbName,
                                String version)
      • stop

        public void stop()
        Stops the server. Once stopped it cannot be restarted.
      • getDriver

        public org.teiid.jdbc.TeiidDriver getDriver()
      • getEventDistributor

        public org.teiid.events.EventDistributor getEventDistributor()
        Specified by:
        getEventDistributor in interface org.teiid.events.EventDistributorFactory
      • getExecutionFactory

        public org.teiid.translator.ExecutionFactory<Object,​Object> getExecutionFactory​(String name)
                                                                                       throws org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
        Specified by:
        getExecutionFactory in interface org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ExecutionFactoryProvider
        Throws:
        org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
      • getSchemaDdl

        public String getSchemaDdl​(String vdbName,
                                   String schemaName)
        Get the effective ddl text for the given schema
        Parameters:
        vdbName -
        schemaName -
        Returns:
        the ddl or null if the vdb/schema does not exist
      • getPort

        public int getPort​(int transport)
        Return the bound port for the transport number
        Parameters:
        transport -
        Returns:
      • getTranslatorRepository

        protected org.teiid.dqp.internal.datamgr.TranslatorRepository getTranslatorRepository()
      • getRsCache

        protected org.teiid.dqp.internal.process.SessionAwareCache<org.teiid.dqp.internal.process.CachedResults> getRsCache()
      • getPpcCache

        protected org.teiid.dqp.internal.process.SessionAwareCache<org.teiid.dqp.internal.process.PreparedPlan> getPpcCache()
      • getAdmin

        public org.teiid.adminapi.Admin getAdmin()
      • createPreParser

        public static void createPreParser​(org.teiid.adminapi.impl.VDBMetaData deployment)
                                    throws org.teiid.core.TeiidException
        Throws:
        org.teiid.core.TeiidException