SMILA (incubation) API documentation

org.eclipse.smila.jobmanager.persistence
Class DefinitionPersistence

java.lang.Object
  extended by org.eclipse.smila.jobmanager.persistence.DefinitionPersistence

public class DefinitionPersistence
extends java.lang.Object

Handles read/write operations of jobmanager definitions. Write operations are handled directly by writing to internal store after validating them. Read operations are delegated to DefinitionAccessor.


Constructor Summary
DefinitionPersistence(DefinitionStorage storage, JobManager jobManager, ObjectStoreService objectStoreService)
          Create object with given underlying definition storage service.
 
Method Summary
 void addBucket(BucketDefinition bucketDefinition)
          add one bucket to definition storage.
 void addJob(JobDefinition jobDefinition)
          add a job to definition storage.
 void addWorkflow(WorkflowDefinition workflowDefinition)
          add a workflow to definition storage.
 BucketDefinition getBucket(java.lang.String name)
          get a bucket from configuration or storage.
 java.util.Collection<java.lang.String> getBuckets()
           
 DataObjectTypeDefinition getDataObjectType(java.lang.String name)
           
 java.util.Collection<java.lang.String> getDataObjectTypes()
           
 JobDefinition getJob(java.lang.String name)
          get a job name from configuration or storage.
 java.util.Collection<java.lang.String> getJobs()
           
 WorkerDefinition getWorker(java.lang.String name)
           
 java.util.Collection<java.lang.String> getWorkers()
           
 WorkflowDefinition getWorkflow(java.lang.String name)
          get a workflow definition from storage (try first) or configuration (if not found in storage).
 java.util.Collection<java.lang.String> getWorkflows()
           
 boolean hasJob(java.lang.String jobName)
           
 void removeBucket(java.lang.String name)
          remove a bucket from the storage.
 void removeJob(java.lang.String name)
          remove a job from the storage.
 void removeWorkflow(java.lang.String name)
          remove a workflow from the storage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefinitionPersistence

public DefinitionPersistence(DefinitionStorage storage,
                             JobManager jobManager,
                             ObjectStoreService objectStoreService)
Create object with given underlying definition storage service. The predefined data object type definitions, buckets and worker definitions are read from the configuration area.

Parameters:
storage - definition storage for persistence of user-submitted definitions.
jobManager - the reference to the jobmanager service
objectStoreService - a reference to the object store service.
Method Detail

getDataObjectTypes

public java.util.Collection<java.lang.String> getDataObjectTypes()
Returns:
all data object type names.

getDataObjectType

public DataObjectTypeDefinition getDataObjectType(java.lang.String name)
Parameters:
name - the name of the data object type definition
Returns:
the data object type definition for the given name, or null if not found

getWorkers

public java.util.Collection<java.lang.String> getWorkers()
Returns:
all worker names.

getWorker

public WorkerDefinition getWorker(java.lang.String name)
Parameters:
name - the name of the worker definition
Returns:
returns the worker definition with the given name, or null if not found

getBuckets

public java.util.Collection<java.lang.String> getBuckets()
                                                  throws PersistenceException
Returns:
names of preconfigured and user-defined buckets.
Throws:
PersistenceException - error reading from storage.

getBucket

public BucketDefinition getBucket(java.lang.String name)
                           throws PersistenceException
get a bucket from configuration or storage.

Parameters:
name - bucket name
Returns:
bucket definition.
Throws:
PersistenceException - error reading from storage.

addBucket

public void addBucket(BucketDefinition bucketDefinition)
               throws PersistenceException,
                      InvalidConfigException
add one bucket to definition storage. No further validation.

Parameters:
bucketDefinition - new bucket.
Throws:
PersistenceException - error writing to storage.
InvalidConfigException - error adding definition due to dependency constraints.

removeBucket

public void removeBucket(java.lang.String name)
                  throws PersistenceException,
                         InvalidConfigException
remove a bucket from the storage.

Parameters:
name - bucket name.
Throws:
PersistenceException - error deleting definition.
InvalidConfigException - error deleting definition due to dependency constraints

getJobs

public java.util.Collection<java.lang.String> getJobs()
                                               throws PersistenceException
Returns:
names of defined jobs.
Throws:
PersistenceException - error reading from storage

getJob

public JobDefinition getJob(java.lang.String name)
                     throws PersistenceException
get a job name from configuration or storage.

Parameters:
name - job name
Returns:
job definition.
Throws:
PersistenceException - error reading from storage.

hasJob

public boolean hasJob(java.lang.String jobName)
               throws PersistenceException
Parameters:
jobName - job name
Returns:
true if a job with this name is defined
Throws:
PersistenceException

removeJob

public void removeJob(java.lang.String name)
               throws PersistenceException,
                      IllegalJobStateException
remove a job from the storage.

Parameters:
name - job name.
Throws:
PersistenceException - error deleting definition
IllegalJobStateException - the job is in an illegal state (i.e. it is running and cannot be removed).

addJob

public void addJob(JobDefinition jobDefinition)
            throws PersistenceException,
                   InvalidConfigException
add a job to definition storage. No further validation.

Parameters:
jobDefinition - new job.
Throws:
PersistenceException - error writing to storage.
InvalidConfigException - the job is misconfigured (e.g. has invalid parameter settings or not enough parameters to satisfy data object type definitions or worker parameters).

getWorkflows

public java.util.Collection<java.lang.String> getWorkflows()
                                                    throws PersistenceException
Returns:
(unique) names of defined workflows.
Throws:
PersistenceException - error reading from storage

getWorkflow

public WorkflowDefinition getWorkflow(java.lang.String name)
                               throws PersistenceException
get a workflow definition from storage (try first) or configuration (if not found in storage).

Parameters:
name - workflow name
Returns:
workflow definition.
Throws:
PersistenceException - error reading from storage.

removeWorkflow

public void removeWorkflow(java.lang.String name)
                    throws PersistenceException,
                           InvalidConfigException
remove a workflow from the storage.

Parameters:
name - workflow name.
Throws:
PersistenceException - error deleting definition
InvalidConfigException - error deleting definition due to dependency constraints

addWorkflow

public void addWorkflow(WorkflowDefinition workflowDefinition)
                 throws PersistenceException,
                        InvalidConfigException
add a workflow to definition storage. No further validation.

Parameters:
workflowDefinition - new workflow.
Throws:
PersistenceException - error writing to storage.
InvalidConfigException - the configuration of the workflow is incorrect (e.g. would lead to an invalid store name.)

SMILA (incubation) API documentation