Package io.deephaven.dhservice.client
Class SchemaServiceGrpcImpl
java.lang.Object
io.deephaven.dhservice.client.SchemaServiceGrpcImpl
- All Implemented Interfaces:
SchemaService,SchemaServiceUtilLayer,NamedImplementation,AuthenticatedService,SchemaServiceBase,AutoCloseable
public class SchemaServiceGrpcImpl
extends Object
implements SchemaServiceUtilLayer, AuthenticatedService, AutoCloseable
Delegate all calls to a remote service.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThis is a temporary hack to provide the required constructor for SchemaServiceFactory.Nested classes/interfaces inherited from interface io.deephaven.dhservice.client.AuthenticatedService
AuthenticatedService.DefaultImplNested classes/interfaces inherited from interface com.illumon.iris.db.schema.SchemaService
SchemaService.Delegating -
Method Summary
Modifier and TypeMethodDescriptionabout()Information about a SchemaService instance.@NotNull SchemaAdd the specified schema to the service.@NotNull SchemaAdd the specified schema to the service.@NotNull SchemaaddSchema(@NotNull TableDefinitionSchema newSchema) Add the specified schema to the service.@NotNull SchemaaddSchema(@NotNull TableDefinitionSchema newSchema, @NotNull String code, @NotNull String comment) Add the specified schema to the service.booleanAttempt default authentication if this is not already authenticated.booleanauthenticate(@NotNull String keyFile) Authenticate, or re-authenticate using the given private key file.booleanauthenticate(@NotNull String user, @NotNull String password) Authenticate, or re-authenticate using the given credentials.booleanauthenticate(@NotNull String user, @NotNull String password, @Nullable String operateAsUser) Authenticate, or re-authenticate using the given credentials.voidclose()booleancontainsNamespace(@NotNull String namespace, boolean includeDeleted) Find out whether the given namespace is known to the schema service.booleancontainsSchema(@NotNull String namespace, @NotNull String tableName) Find out if the given schema exists.booleancreateNamespace(@NotNull NamespaceSet namespaceSet, @NotNull String namespaceName) Add a namespace with the given name to the schema service, in the requested namespace set.booleancreateNamespace(@NotNull NamespaceSet namespaceSet, @NotNull String namespaceName, @NotNull String code, @NotNull String comment) Add a namespace with the given name to the schema service, in the requested namespace set.voiddeleteSchema(@NotNull String namespace, @NotNull String tableName) Delete the specified schema.voiddeleteSchema(@NotNull String namespace, @NotNull String tableName, @NotNull String code, @NotNull String comment) Delete the specified schema.@NotNull Collection<Schema>Get a collection of all known schemas in the system.@Nullable SchemagetLatestSchema(@NotNull String namespace, @NotNull String tableName) Get the latest version of theSchemadefined by namespace and table namegetLatestSchemaXml(@NotNull String namespace, @NotNull String tableName) @Nullable TableDefinitionSchemagetLatestTableDefinitionSchema(@NotNull String namespace, @NotNull String tableName) Get the latest version of theTableDefinitionSchemadefined by namespace and table name@NotNull NamespaceSetgetNamespaceSet(@NotNull String namespace) Get theNamespaceSetfor a particular namespace.@Nullable SchemagetSchema(@NotNull String namespace, @NotNull String tableName, @NotNull SchemaVersion version) Get the specified version of theSchemadefined by namespace and table name@NotNull Collection<Schema>getSchemas(@NotNull NamespaceSet namespaceSet) Get a collection of all known schemas in the system, with the given namespace set.@NotNull Collection<Schema>getSchemas(@NotNull String namespace) Get a collection of all known schemas in the given namespace.@NotNull Map<NamespaceSet,Map<String, Collection<String>>> Get a map of all known tables in all known namespaces for all namespace sets.@NotNull Collection<String>listNamespaces(boolean includeDeleted) Get a collection of the namespaces available.@NotNull Collection<String>listNamespaces(@NotNull NamespaceSet namespaceSet, boolean includeDeleted) Get a collection of the namespaces available in the given namespace set.@NotNull Collection<String>listTableNames(@NotNull String namespace, boolean includeDeleted) Get a collection of all table names in the specified namespace.static SchemaServicemake()Create an instance using system defaults.static SchemaServicemake(@NotNull ClientConnectionConfig config) Create an instance with the given config.voidremoveNamespace(@NotNull String namespaceName) Remove the given namespace.voidremoveNamespace(@NotNull String namespaceName, @NotNull String code, @NotNull String comment) Remove the given namespace.booleansetTokenFactoryFactory(@Nullable TokenFactoryFactory tokenAuthenticationManager) Set the authentication client manager to use for token generation.voidshutdown()Shut down the schema service.@NotNull SchemaupdateSchema(@NotNull Schema newSchema) Update the schema with the same namespace and table name with the specified new schema.@NotNull SchemaupdateSchema(@NotNull Schema newSchema, @NotNull String code, @NotNull String comment) Update the schema with the same namespace and table name with the specified new schema.@NotNull SchemaupdateSchema(@NotNull TableDefinitionSchema newSchema) Update the schema with the same namespace and table name with the specified new schema.@NotNull SchemaupdateSchema(@NotNull TableDefinitionSchema newSchema, @NotNull String code, @NotNull String comment) Update the schema with the same namespace and table name with the specified new schema.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.dhservice.client.AuthenticatedService
authenticate, authenticate, authenticate, authenticate, getAuthenticatedUser, setTokenFactoryFactoryMethods inherited from interface com.illumon.util.type.NamedImplementation
getImplementationNameMethods inherited from interface com.illumon.iris.db.schema.SchemaService
createNamespace, deleteSchema, deleteSchema, fromDefinition, fromDefinition, fromDefinition, fromDefinition, getLatestTableDefinition, getLatestTableDefinitionRequired, getSchema, getSchemasForNamespaceSet, listNamespaces, listNamespacesMethods inherited from interface io.deephaven.enterprise.schema.internal.SchemaServiceBase
authenticate, authenticate, authenticate, containsNamespace, initializationStage, listNamespaces, listTableNamesMethods inherited from interface com.illumon.iris.db.schema.SchemaServiceUtilLayer
asElement, asSchemaXml, asSchemaXml, fromDefinition, fromElement
-
Method Details
-
make
public static SchemaService make() throws IOException, ClientConnectionConfigProvider.ProviderExceptionCreate an instance using system defaults.- Returns:
- a new instance
- Throws:
IOExceptionClientConnectionConfigProvider.ProviderException
-
make
public static SchemaService make(@NotNull @NotNull ClientConnectionConfig config) throws SSLException Create an instance with the given config.- Parameters:
config- use thisClientConnectionConfig- Returns:
- a new instance
- Throws:
SSLException
-
about
Description copied from interface:SchemaServiceBaseInformation about a SchemaService instance. Useful for debugging.- Specified by:
aboutin interfaceSchemaServiceBase- Returns:
- a string containing information about the instance
-
getLatestSchema
@Nullable public @Nullable Schema getLatestSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:SchemaServiceGet the latest version of theSchemadefined by namespace and table name- Specified by:
getLatestSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- the latest version of namespace.tablename or null if none was found
-
getLatestSchemaXml
public SchemaXml getLatestSchemaXml(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:SchemaServiceGet the latest version of theSchemadefined by namespace and table name, as an implementation supportingSchemaXml.- Specified by:
getLatestSchemaXmlin interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- the latest version of namespace.tablename or null if none was found
-
getSchema
@Nullable public @Nullable Schema getSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull SchemaVersion version) Description copied from interface:SchemaServiceGet the specified version of theSchemadefined by namespace and table name- Specified by:
getSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table nameversion- the version of this schema to retrieve- Returns:
- the requested version of the schema for namespace.tableName or null if none was found
-
getAllSchemas
Description copied from interface:SchemaServiceGet a collection of all known schemas in the system. The latest version of each will be returned. // TODO: subject to ACL visibility?- Specified by:
getAllSchemasin interfaceSchemaService- Returns:
- a collection of all known schemas
-
getSchemas
Description copied from interface:SchemaServiceGet a collection of all known schemas in the system, with the given namespace set. The latest version of each will be returned.- Specified by:
getSchemasin interfaceSchemaService- Returns:
- a collection of all known schemas in the given namespace set
-
getSchemas
Description copied from interface:SchemaServiceGet a collection of all known schemas in the given namespace. The latest version of each will be returned.- Specified by:
getSchemasin interfaceSchemaService- Returns:
- a collection of all known schemas in the given namespace
-
getLatestTableDefinitionSchema
@Nullable public @Nullable TableDefinitionSchema getLatestTableDefinitionSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:SchemaServiceGet the latest version of theTableDefinitionSchemadefined by namespace and table name- Specified by:
getLatestTableDefinitionSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- the latest version of namespace.tableName or null if none was found
-
getNamespaceSet
@NotNull public @NotNull NamespaceSet getNamespaceSet(@NotNull @NotNull String namespace) throws IllegalArgumentException Description copied from interface:SchemaServiceGet theNamespaceSetfor a particular namespace.- Specified by:
getNamespaceSetin interfaceSchemaService- Parameters:
namespace- The namespace name- Returns:
- the namespace set of the namespace
- Throws:
IllegalArgumentException- if the namespace does not exist
-
containsNamespace
Description copied from interface:SchemaServiceBaseFind out whether the given namespace is known to the schema service.- Specified by:
containsNamespacein interfaceSchemaServiceBase- Parameters:
namespace- the namespace in questionincludeDeleted- true if deleted namespaces should be considered- Returns:
- true if the namespace is found
-
containsSchema
public boolean containsSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) Description copied from interface:SchemaServiceBaseFind out if the given schema exists. Does not check for deleted schemas.- Specified by:
containsSchemain interfaceSchemaServiceBase- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- true if a schema is found for namespace.tableName
-
listNamespaces
Description copied from interface:SchemaServiceBaseGet a collection of the namespaces available.- Specified by:
listNamespacesin interfaceSchemaServiceBase- Parameters:
includeDeleted- true if deleted namespaces should be included- Returns:
- a collection of namespace names
-
listNamespaces
@NotNull public @NotNull Collection<String> listNamespaces(@NotNull @NotNull NamespaceSet namespaceSet, boolean includeDeleted) Description copied from interface:SchemaServiceGet a collection of the namespaces available in the given namespace set.- Specified by:
listNamespacesin interfaceSchemaService- Parameters:
namespaceSet- list namespaces in this set (User, System)includeDeleted- true if deleted namespaces should be included- Returns:
- a collection of namespace names
-
listTableNames
@NotNull public @NotNull Collection<String> listTableNames(@NotNull @NotNull String namespace, boolean includeDeleted) Description copied from interface:SchemaServiceBaseGet a collection of all table names in the specified namespace.- Specified by:
listTableNamesin interfaceSchemaServiceBase- Parameters:
namespace- the name of the namespaceincludeDeleted- tf deleted schemas should be included- Returns:
- a collection of all available schemas in namespace, empty list if namespace does not exit
-
listAllTables
Description copied from interface:SchemaServiceGet a map of all known tables in all known namespaces for all namespace sets.- Specified by:
listAllTablesin interfaceSchemaService- Returns:
- all the table names, mapped by namespace set and namespace
-
createNamespace
public boolean createNamespace(@NotNull @NotNull NamespaceSet namespaceSet, @NotNull @NotNull String namespaceName) throws SchemaException Description copied from interface:SchemaServiceAdd a namespace with the given name to the schema service, in the requested namespace set. Returns true if the namespace was added, false if it already exists. Throws a SchemaException if the namespace could not be added.- Specified by:
createNamespacein interfaceSchemaService- Parameters:
namespaceSet- add namespaceName to this namespace setnamespaceName- name of the new namespace- Returns:
- true if the namespace was added, false if it already exists.
- Throws:
SchemaException- if the namespace could not be added to the given namespace set
-
createNamespace
public boolean createNamespace(@NotNull @NotNull NamespaceSet namespaceSet, @NotNull @NotNull String namespaceName, @NotNull @NotNull String code, @NotNull @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceAdd a namespace with the given name to the schema service, in the requested namespace set. Returns true if the namespace was added, false if it already exists. Throws a SchemaException if the namespace could not be added.- Specified by:
createNamespacein interfaceSchemaService- Parameters:
namespaceSet- add namespaceName to this namespace setnamespaceName- name of the new namespacecode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- true if the namespace was added, false if it already exists.
- Throws:
SchemaException- if the namespace could not be added to the given namespace set
-
removeNamespace
public void removeNamespace(@NotNull @NotNull String namespaceName, @NotNull @NotNull String code, @NotNull @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceBaseRemove the given namespace. The namespace must be empty (contain no schemas).- Specified by:
removeNamespacein interfaceSchemaServiceBase- Parameters:
namespaceName- the namespace to removecode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Throws:
SchemaException- if the namespace cannot be removed
-
removeNamespace
Description copied from interface:SchemaServiceBaseRemove the given namespace. The namespace must be empty (contain no schemas).- Specified by:
removeNamespacein interfaceSchemaServiceBase- Parameters:
namespaceName- the namespace to remove- Throws:
SchemaException- if the namespace cannot be removed
-
addSchema
@NotNull public @NotNull Schema addSchema(@NotNull @NotNull Schema newSchema) throws SchemaException Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to add- Returns:
- the schema actually stored in the SchemaService
- Throws:
SchemaException- if the schema could not be added
-
addSchema
@NotNull public @NotNull Schema addSchema(@NotNull @NotNull Schema newSchema, @NotNull @NotNull String code, @NotNull @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to addcode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- the schema actually stored in the SchemaService
- Throws:
SchemaException- if the schema could not be added
-
addSchema
@NotNull public @NotNull Schema addSchema(@NotNull @NotNull TableDefinitionSchema newSchema) throws SchemaException Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to add- Returns:
- the schema actually stored in the SchemaService
- Throws:
SchemaException- if the schema could not be added or already exists
-
addSchema
@NotNull public @NotNull Schema addSchema(@NotNull @NotNull TableDefinitionSchema newSchema, @NotNull @NotNull String code, @NotNull @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to addcode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- the schema actually stored in the SchemaService
- Throws:
SchemaException- if the schema could not be added or already exists
-
updateSchema
@NotNull public @NotNull Schema updateSchema(@NotNull @NotNull Schema newSchema) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update with- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
updateSchema
@NotNull public @NotNull Schema updateSchema(@NotNull @NotNull Schema newSchema, @NotNull @NotNull String code, @NotNull @NotNull String comment) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update withcode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- the schema actually stored in the SchemaService
- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
updateSchema
@NotNull public @NotNull Schema updateSchema(@NotNull @NotNull TableDefinitionSchema newSchema) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update with.- Returns:
- the schema actually stored in the SchemaService
- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
updateSchema
@NotNull public @NotNull Schema updateSchema(@NotNull @NotNull TableDefinitionSchema newSchema, @NotNull @NotNull String code, @NotNull @NotNull String comment) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update with.code- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- the schema actually stored in the SchemaService
- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
deleteSchema
public void deleteSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceBaseDelete the specified schema.- Specified by:
deleteSchemain interfaceSchemaServiceBase- Parameters:
namespace- the namespace of the schema to deletetableName- the name of the schema to delete- Throws:
IllegalArgumentException- if the namespace or table could not be foundSchemaException- if the schema could not be deleted
-
deleteSchema
public void deleteSchema(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull String code, @NotNull @NotNull String comment) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceBaseDelete the specified schema.- Specified by:
deleteSchemain interfaceSchemaServiceBase- Parameters:
namespace- the namespace of the schema to deletetableName- the name of the schema to deletecode- pass-thru to kv persistence, indicates the code source of this deletecomment- pass-thru to kv persistence - a comment for this delete- Throws:
IllegalArgumentException- if the namespace or table could not be foundSchemaException- if the schema could not be deleted
-
shutdown
public void shutdown()Description copied from interface:SchemaServiceBaseShut down the schema service. This may involve cleaning up threads and releasing resources.- Specified by:
shutdownin interfaceSchemaServiceBase
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSchemaServiceBase
-
authenticate
public boolean authenticate()Description copied from interface:AuthenticatedServiceAttempt default authentication if this is not already authenticated.- Specified by:
authenticatein interfaceAuthenticatedService- Returns:
- true if authentication succeeded, else false
-
authenticate
Description copied from interface:AuthenticatedServiceAuthenticate, or re-authenticate using the given private key file.- Specified by:
authenticatein interfaceAuthenticatedService- Returns:
- true if authentication succeeded, else false
-
authenticate
public boolean authenticate(@NotNull @NotNull String user, @NotNull @NotNull String password, @Nullable @Nullable String operateAsUser) Description copied from interface:AuthenticatedServiceAuthenticate, or re-authenticate using the given credentials.- Specified by:
authenticatein interfaceAuthenticatedService- Parameters:
user- user to authenticatepassword- password for authenticationoperateAsUser- optional operate-as user- Returns:
- true if authentication succeeded, else false
-
authenticate
Description copied from interface:AuthenticatedServiceAuthenticate, or re-authenticate using the given credentials.- Specified by:
authenticatein interfaceAuthenticatedService- Parameters:
user- user to authenticatepassword- password for authentication- Returns:
- true if authentication succeeded, else false
-
setTokenFactoryFactory
public boolean setTokenFactoryFactory(@Nullable @Nullable TokenFactoryFactory tokenAuthenticationManager) Description copied from interface:AuthenticatedServiceSet the authentication client manager to use for token generation. If tokenAuthenticationManager is null or is not already authenticated, this call will de-authenticate the connection.- Specified by:
setTokenFactoryFactoryin interfaceAuthenticatedService- Parameters:
tokenAuthenticationManager- the authentication client manager to be used for future calls.- Returns:
- true if authentication succeeded, else false
-
getAuthenticatedUser
- Specified by:
getAuthenticatedUserin interfaceAuthenticatedService
-