Package ubic.gemma.core.util
Class AbstractAuthenticatedCLI
- java.lang.Object
-
- ubic.gemma.core.util.AbstractCLI
-
- ubic.gemma.core.util.AbstractAuthenticatedCLI
-
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
,CLI
- Direct Known Subclasses:
AbstractAutoSeekingCLI
,AbstractCrudCli
,ArrayDesignAlternativePopulateCli
,BibRefUpdaterCli
,BlacklistCli
,DatabaseViewGeneratorCLI
,ExperimentalDesignViewCli
,ExternalDatabaseAdderCli
,ExternalDatabaseOverviewCli
,ExternalDatabaseUpdaterCli
,ExternalFileGeneLoaderCLI
,FactorValueMigratorCLI
,FindObsoleteTermsCli
,FixOntologyTermLabelsCli
,GenericGenelistDesignGenerator
,GeoGrabberCli
,LoadExpressionDataCli
,LoadSimpleExpressionDataCli
,MultifunctionalityCli
,NCBIGene2GOAssociationLoaderCLI
,NcbiGeneLoaderCLI
,ProtocolAdderCli
,ProtocolDeleterCli
,ProtocolListCli
,PubMedLoaderCli
,PubMedSearcher
,TaxonLoaderCli
,UpdateEe2AdCli
,UpdateEE2CCli
,UpdateGene2CsCli
,UpdatePubMedCli
public abstract class AbstractAuthenticatedCLI extends AbstractCLI implements org.springframework.beans.factory.InitializingBean
Subclass this to create command line interface (CLI) tools that need authentication.Credentials may be supplied via the environment using the
$GEMMA_USERNAME
and$GEMMA_PASSWORD
variables. A more secure$GEMMA_PASSWORD_CMD
variable can be used to specify a command that produces the password. If no environment variables are supplied, they will be prompted if the standard input is attached to a console (i.e tty).If the
test
ortestdb
profile is active, environment variables with the$GEMMA_TEST_DB_
prefix will be looked up instead.- Author:
- pavlidis
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ubic.gemma.core.util.CLI
CLI.CommandGroup
-
-
Field Summary
-
Fields inherited from class ubic.gemma.core.util.AbstractCLI
ABORTED, FAILURE, FAILURE_FROM_ERROR_OBJECTS, log, SUCCESS
-
-
Constructor Summary
Constructors Constructor Description AbstractAuthenticatedCLI()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
afterPropertiesSet()
protected ExecutorService
createBatchTaskExecutorService()
Create anExecutorService
to be used for running batch tasks.protected abstract void
doAuthenticatedWork()
protected void
doWork()
Command line implementation.protected void
setRequireLogin()
Indicate that the command requires authentication.-
Methods inherited from class ubic.gemma.core.util.AbstractCLI
abort, addBatchOption, addErrorObject, addErrorObject, addErrorObject, addSuccessObject, addSuccessObject, addThreadsOption, allowPositionalArguments, awaitBatchExecutorService, buildOptions, executeCommand, getBatchTaskExecutor, getCliContext, getCommandAliases, getCommandGroup, getCommandName, getHelpFooter, getNumThreads, getOptions, getShortDesc, getUsage, processOptions, promptConfirmationOrAbort, setAllowPositionalArguments
-
-
-
-
Method Detail
-
afterPropertiesSet
public void afterPropertiesSet() throws Exception
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-
setRequireLogin
protected void setRequireLogin()
Indicate that the command requires authentication.
-
doWork
protected final void doWork() throws Exception
Description copied from class:AbstractCLI
Command line implementation.This is called after
AbstractCLI.buildOptions(Options)
andAbstractCLI.processOptions(CommandLine)
. so the implementation can assume that all its arguments have already been initialized and any setup behaviour have been performed.- Specified by:
doWork
in classAbstractCLI
- Throws:
Exception
- in case of unrecoverable failure, an exception is thrown and will result in aAbstractCLI.FAILURE
exit code, otherwise useAbstractCLI.addErrorObject(java.lang.Object, java.lang.String, java.lang.Throwable)
to indicate an error and resume processing
-
doAuthenticatedWork
protected abstract void doAuthenticatedWork() throws Exception
- Throws:
Exception
-
createBatchTaskExecutorService
protected ExecutorService createBatchTaskExecutorService()
Description copied from class:AbstractCLI
Create anExecutorService
to be used for running batch tasks.- Overrides:
createBatchTaskExecutorService
in classAbstractCLI
-
-