Package org.teiid.runtime
Class EmbeddedServer
- java.lang.Object
-
- org.teiid.runtime.AbstractVDBDeployer
-
- org.teiid.runtime.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 tostart(EmbeddedConfiguration)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceEmbeddedServer.ConnectionFactoryProvider<T>protected classEmbeddedServer.ProviderAwareConnectorManagerRepositorystatic classEmbeddedServer.SimpleConnectionFactoryProvider<T>
-
Field Summary
Fields Modifier and Type Field Description protected BufferServiceImplbufferServiceprotected org.teiid.dqp.internal.datamgr.ConnectorManagerRepositorycmrprotected org.teiid.dqp.internal.process.DQPCoredqpprotected AbstractEventDistributorFactoryServiceeventDistributorFactoryServiceprotected LogonImpllogonprotected MaterializationManagermaterializationMgrprotected org.teiid.query.ObjectReplicatorreplicatorprotected VDBRepositoryrepoCustom vdb repository that will immediately throw exceptions for metadata validation errorsprotected ScheduledExecutorServiceschedulerprotected ClientServiceRegistryImplservicesprotected SessionServiceImplsessionServiceprotected booleanthrowMetadataErrorsprotected org.teiid.dqp.internal.process.TransactionServerImpltransactionServiceprotected ArrayList<SocketListener>transportsprotected booleanuseCallingThreadprotected booleanwaitForLoad-
Fields inherited from class org.teiid.runtime.AbstractVDBDeployer
ALLOW_INFORMATION_SCHEMA, repositories
-
-
Constructor Summary
Constructors Constructor Description EmbeddedServer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddConnectionFactory(String name, Object connectionFactory)Adds the object as the named connection factory to replace the default JNDI lookup strategy.voidaddConnectionFactoryProvider(String name, EmbeddedServer.ConnectionFactoryProvider<?> connectionFactoryProvider)Adds theEmbeddedServer.ConnectionFactoryProviderwith the given connection name to replace the default JNDI lookup strategy.voidaddTranslator(Class<? extends org.teiid.translator.ExecutionFactory> clazz)Adds a definition of theExecutionFactoryusing the default name either from theTranslatorannotation or the class name.voidaddTranslator(String name, String type, Map<String,String> properties)Add an override translatorvoidaddTranslator(String name, org.teiid.translator.ExecutionFactory<?,?> ef)Add a namedExecutionFactory.protected booleanallowOverrideTranslators()protected voidcacheMetadataFactory(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.adminapi.impl.ModelMetaData model, org.teiid.metadata.MetadataFactory schema)static voidcreatePreParser(org.teiid.adminapi.impl.VDBMetaData deployment)voiddeployVDB(InputStream is)Deploy a vdb.xml file.voiddeployVDB(InputStream is, boolean ddl)Deploy a vdb.xml file.voiddeployVDB(String name, org.teiid.adminapi.impl.ModelMetaData... models)Deploy the given set of models as vdb name.1protected voiddeployVDB(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.query.metadata.VDBResources resources)voiddeployVDBZip(URL url)Deploy a vdb zip file.org.teiid.adminapi.AdmingetAdmin()protected org.teiid.dqp.service.BufferServicegetBufferService()protected org.teiid.metadata.MetadataFactorygetCachedMetadataFactory(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.adminapi.impl.ModelMetaData model)protected EmbeddedConfigurationgetConfiguration()protected ConcurrentHashMap<String,EmbeddedServer.ConnectionFactoryProvider<?>>getConnectionFactoryProviders()org.teiid.jdbc.TeiidDrivergetDriver()org.teiid.events.EventDistributorgetEventDistributor()org.teiid.translator.ExecutionFactory<Object,Object>getExecutionFactory(String name)protected MaterializationManagergetMaterializationManager()protected org.teiid.metadata.MetadataRepository<?,?>getMetadataRepository(String repoType)intgetPort(int transport)Return the bound port for the transport numberprotected org.teiid.dqp.internal.process.SessionAwareCache<org.teiid.dqp.internal.process.PreparedPlan>getPpcCache()protected org.teiid.dqp.internal.process.SessionAwareCache<org.teiid.dqp.internal.process.CachedResults>getRsCache()StringgetSchemaDdl(String vdbName, String schemaName)Get the effective ddl text for the given schemaprotected org.teiid.dqp.internal.datamgr.TranslatorRepositorygetTranslatorRepository()protected VDBRepositorygetVDBRepository()protected booleanretryLoad(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.adminapi.impl.ModelMetaData model, Runnable job)Return true if we can retry the loadprotected voidrunMetadataJob(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.adminapi.impl.ModelMetaData model, Runnable job)voidstart(EmbeddedConfiguration config)voidstop()Stops the server.voidundeployVDB(String vdbName)voidundeployVDB(String vdbName, String version)-
Methods inherited from class org.teiid.runtime.AbstractVDBDeployer
addMetadataRepository, assignMetadataRepositories, createMetadataFactory, getConnectorManagers, loadMetadata
-
-
-
-
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
-
sessionService
protected SessionServiceImpl sessionService
-
replicator
protected org.teiid.query.ObjectReplicator replicator
-
bufferService
protected BufferServiceImpl bufferService
-
transactionService
protected org.teiid.dqp.internal.process.TransactionServerImpl transactionService
-
waitForLoad
protected boolean waitForLoad
-
services
protected ClientServiceRegistryImpl services
-
logon
protected LogonImpl logon
-
cmr
protected org.teiid.dqp.internal.datamgr.ConnectorManagerRepository cmr
-
eventDistributorFactoryService
protected AbstractEventDistributorFactoryService eventDistributorFactoryService
-
useCallingThread
protected boolean useCallingThread
-
transports
protected ArrayList<SocketListener> transports
-
scheduler
protected ScheduledExecutorService scheduler
-
materializationMgr
protected MaterializationManager materializationMgr
-
-
Method Detail
-
addConnectionFactoryProvider
public void addConnectionFactoryProvider(String name, EmbeddedServer.ConnectionFactoryProvider<?> connectionFactoryProvider)
Adds theEmbeddedServer.ConnectionFactoryProviderwith the given connection name to replace the default JNDI lookup strategy.- Parameters:
name-connectionFactoryProvider-- See Also:
for a basic wrapper
-
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-
-
start
public void start(EmbeddedConfiguration config)
-
getBufferService
protected org.teiid.dqp.service.BufferService getBufferService()
-
getMaterializationManager
protected MaterializationManager getMaterializationManager()
-
addTranslator
public void addTranslator(Class<? extends org.teiid.translator.ExecutionFactory> clazz) throws org.teiid.translator.TranslatorException
Adds a definition of theExecutionFactoryusing the default name either from theTranslatorannotation or the class name. OnlyExecutionFactoryclasses with aTranslatorannotation can be referenced byaddTranslator(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 overrideproperties-- Throws:
org.teiid.translator.TranslatorException
-
addTranslator
public void addTranslator(String name, org.teiid.translator.ExecutionFactory<?,?> ef)
Add a namedExecutionFactory. NOTE: Only this single instance will be shared for all usage. SeeaddTranslator(String, String, Map)oraddTranslator(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.ConnectorManagerExceptionVirtualDatabaseExceptionorg.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.TranslatorExceptionorg.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerExceptionVirtualDatabaseExceptionIOException
-
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 deploymentddl- true if the file contents are DDL- Throws:
org.teiid.translator.TranslatorExceptionorg.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerExceptionVirtualDatabaseExceptionIOException
-
deployVDBZip
public void deployVDBZip(URL url) throws VirtualDatabaseException, org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException, org.teiid.translator.TranslatorException, IOException, URISyntaxException
Deploy a vdb zip file. The name and version will be derived from the xml.- Parameters:
url-- Throws:
org.teiid.translator.TranslatorExceptionorg.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerExceptionVirtualDatabaseExceptionURISyntaxExceptionIOException
-
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.ConnectorManagerExceptionVirtualDatabaseExceptionorg.teiid.translator.TranslatorException
-
getMetadataRepository
protected org.teiid.metadata.MetadataRepository<?,?> getMetadataRepository(String repoType) throws VirtualDatabaseException
- Overrides:
getMetadataRepositoryin classAbstractVDBDeployer- Throws:
VirtualDatabaseException
-
cacheMetadataFactory
protected void cacheMetadataFactory(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.adminapi.impl.ModelMetaData model, org.teiid.metadata.MetadataFactory schema)- Specified by:
cacheMetadataFactoryin classAbstractVDBDeployer
-
getCachedMetadataFactory
protected org.teiid.metadata.MetadataFactory getCachedMetadataFactory(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.adminapi.impl.ModelMetaData model)- Specified by:
getCachedMetadataFactoryin classAbstractVDBDeployer
-
retryLoad
protected boolean retryLoad(org.teiid.adminapi.impl.VDBMetaData vdb, org.teiid.adminapi.impl.ModelMetaData model, Runnable job)Description copied from class:AbstractVDBDeployerReturn true if we can retry the load- Specified by:
retryLoadin classAbstractVDBDeployer- 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:
runMetadataJobin classAbstractVDBDeployer- Throws:
org.teiid.translator.TranslatorException
-
undeployVDB
public void undeployVDB(String vdbName)
-
getConfiguration
protected EmbeddedConfiguration getConfiguration()
-
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:
getEventDistributorin interfaceorg.teiid.events.EventDistributorFactory
-
getExecutionFactory
public org.teiid.translator.ExecutionFactory<Object,Object> getExecutionFactory(String name) throws org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
- Specified by:
getExecutionFactoryin interfaceorg.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ExecutionFactoryProvider- Throws:
org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException
-
getVDBRepository
protected VDBRepository getVDBRepository()
- Specified by:
getVDBRepositoryin classAbstractVDBDeployer
-
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()
-
getConnectionFactoryProviders
protected ConcurrentHashMap<String,EmbeddedServer.ConnectionFactoryProvider<?>> getConnectionFactoryProviders()
-
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
-
-