public interface ActivityRepository extends ADEPT2Service
ExecutableComponentDescription. This represents a physical
entity fulfilling the
ExecutableComponent
-interface which is called at runtime when executing the corresponding
process step/activity. The ExecutableComponentDescription has
child entities, the Operations. These define the interface (that
is, the input and output parameter) of the activity. Below
Operations there are ActivityTemplateDefinitions.
ActivityTemplateDefinitions are the entities that may be
assigned to a process step by dropping them onto a node. ConfigurationSet groups together arbitrary
Operations and forms and additional optional layer between
Operations and ActivityTemplateDefinitions. All
entities inherit the attributes from the corresponding parent entity and may
override most of these attributes.
Besides ExecutableComponentDescriptions, Operation
s, ActivityTemplateDefinitions and ConfigurationSet
s the activity repository manages identifier, code and icons. Identifier are
annotations for parameter and allow to provide more information on the
semantic and therefore the usage of a parameter. This simplifies the
automatically establishing the data flow. Code allows to have a central
provider for third party libraries and alike that is deployed at runtime and
therefore avoids the need to install it for every client. This also applies
to the management of icons that are displayed for specific activities in
worklists and other parts of the client UI.
All entities of the activity repository run through a complete lifecycle
including a version management. This resembles subversion, that is, there is one
global revision for the whole repository. When releasing only changed
entities will get a new revision. For the sake of simplicity, the released
revisions (production revisions) are organised strictly flat, that is, no
branches are allowed. Additionally, only the latest revision of the
production revisions can actually be IN_PRODUCTION, all former
revisions are OUTDATED. This allows to have one designated
revision of each entity, that can be used; this is called "the latest
revision".
Since the strictly flat structure does not suffice for development, branches
are allowed for entities that are currently modified. This resembles
workspace copies of subversion - although here they are stored on the server
and not locally. These "development branches" need to be explicitly
created. This logically copies the latest revision of all entities to the new
branch. All entities can now be modified in the branch. Their state is not
changed to IN_DEVELOPMENT before their are really modified.
A branch can be released and become a new latest revision. However, a few
restrictions apply. The branch must not have any version conflicts, that is,
it must be based on the latest revision before releasing. Otherwise there may
be lost updates in production revisions. By releasing two branches based on
the same base revision one right after the other one, the changes of the
first branch will be completely lost.
To prevent this, the second branch needs to be updated, that is, its base
revision needs to be updated to the latest one. When doing this, there may be
version conflicts that need to be resolved manually by propagating the
changes done to the production revision to the branch to be released. To
simplify resolving versioning conflicts, the update may be forced, which
means, the changes of the branch remain and changes in the production
revision will be ignored. Use this with care!
Due to the inheritance in the activity model, there may also be (inheritance)
conflicts when changing an activity model entity. For instance, a new version
of an entity may override configuration values that the corresponding parent
entity has declared as fixed. Such a conflict also prevents releasing a
branch. Note that this conflict is not between two different revisions of the
same entity but of the same (development) revision of different entities.
Thus they may affect several entities throughout the repository.
Inheritance conflicts can be detected by checking a branch. Like versioning
conflicts they need to be resolved manually.
| Modifier and Type | Method and Description |
|---|---|
ActivityTemplate |
getActivityTemplate(SessionToken session,
java.util.UUID atID)
Gets the activity template (executable component description, operation,
activity template definition and optionally a configuration set merged to
an appropriate activity template) for the designated ID.
|
ActivityTemplate |
getActivityTemplateRevision(SessionToken session,
java.lang.String ecName,
java.lang.String operationName,
java.lang.String atdName,
long revision)
Gets the designated revision (independent from its state) of the designated
activity template (executable component description, operation, activity
template definition and optionally a configuration set merged to an
appropriate activity template).
|
ActivityTemplateDefinitionManager |
getATDManager()
Gets the manager for activity template definitions which are the leafs of
activity model branches.
|
ConfigurationSetManager |
getCSManager()
Gets the manager for configuration sets which are between operations and
activity template definitions but outside of the activity model hierarchy.
|
ActivityTemplate |
getDevelopmentActivityTemplate(SessionToken session,
java.lang.String ecName,
java.lang.String operationName,
java.lang.String atdName,
long branch)
Gets the development version of the designated activity template
(executable component description, operation, activity template definition
and optionally a configuration set merged to an appropriate activity
template) in the designated branch.
|
ExecutableComponentDescriptionManager |
getECDManager()
Gets the manager for executable component descriptions which are the
physical entities for activities and the root of activity model branches.
|
IconManager |
getIconManager()
Gets the manager for handling icons that are used for process
steps/activities in worklists.
|
IdentifierManager |
getIdentifierManager()
Gets the manager for identifiers, which provide additional information for
parameters of activities.
|
ActivityTemplate |
getLatestActivityTemplate(SessionToken session,
java.lang.String ecName,
java.lang.String operationName,
java.lang.String atdName)
Gets the latest revision (independent from its state) of the designated
activity template (executable component description, operation,
activity template definition and optionally a configuration set merged to
an appropriate activity template).
|
OperationManager |
getOperationManager()
Gets the manager for operations which are located below executable
component descriptions in the activity model and provide the interface of
an activity.
|
ResourceManager |
getResourceManager()
Gets the resource manager that handles and provides (binary) resources (for
instance code) at runtime and thus avoiding the need to install code needed
for executing an activity.
|
RevisionManager |
getRevisionManager()
Gets the manager for revisions and branches of this activity repository.
|
getLocalUris, getRelease, getRuntimeRequiredServices, getServiceInstanceName, getStartupRequiredServices, getURIs, init, ping, preShutdown, shutdown, startRevisionManager getRevisionManager()
ExecutableComponentDescriptionManager getECDManager()
OperationManager getOperationManager()
ConfigurationSetManager getCSManager()
ActivityTemplateDefinitionManager getATDManager()
IdentifierManager getIdentifierManager()
ResourceManager getResourceManager()
IconManager getIconManager()
ActivityTemplate getLatestActivityTemplate(SessionToken session, java.lang.String ecName, java.lang.String operationName, java.lang.String atdName)
session - The session which is used to check for access rights on this
method.ecName - The name of the executable component description of the
activity model branch of which to retrieve the latest revision as
activity template.operationName - The name of the operation of the activity model branch
of which to retrieve the latest revision as activity template.atdName - The name of the activity template definition of the activity
model branch of which to retrieve the latest revision as activity
template.UnknownEntityException - If the
designated activity template definition (or the operation or the
executable component description) does not exist, an
UnknownEntityException will be thrown.ActivityTemplate getActivityTemplateRevision(SessionToken session, java.lang.String ecName, java.lang.String operationName, java.lang.String atdName, long revision)
session - The session which is used to check for access rights on this
method.ecName - The name of the executable component description of the
activity model branch of which to retrieve the designated revision
as activity template.operationName - The name of the operation of the activity model branch
of which to retrieve the designated revision as activity template.atdName - The name of the activity template definition of the activity
model branch of which to retrieve the designated revision as
activity template.revision - The revision of which to retrieve the designated activity
template.UnknownEntityException - If the
designated activity template definition (or the operation or the
executable component description) or the revision does not exist,
an UnknownEntityException will be thrown.ActivityTemplate getDevelopmentActivityTemplate(SessionToken session, java.lang.String ecName, java.lang.String operationName, java.lang.String atdName, long branch)
session - The session which is used to check for access rights on this
method.ecName - The name of the executable component description of the
activity model branch of which to retrieve the development version
of the designated branch as activity template.operationName - The name of the operation of the activity model branch
of which to retrieve the development version of the designated
branch as activity template.atdName - The name of the activity template definition of the activity
model branch of which to retrieve the development version of the
designated branch as activity template.branch - The branch of which to retrieve the designated activity
template.UnknownEntityException - If the
designated branch is currently unused or the designated activity
template definition (or the operation or the executable component
description) does not exist, an
UnknownEntityException will be thrown.ActivityTemplate getActivityTemplate(SessionToken session, java.util.UUID atID)
ID which is unique with respect to the
activity model branch including its revision.session - The session which is used to check for access rights on this
method.atID - The ID of the activity template which to retrieve. This ID
uniquely identifies the activity model branch including its
revision.UnknownEntityException - If no activity
template with the specified ID exists, an
UnknownEntityException will be thrown.