org.objectweb.dsrg.sofa.repository
Class RepositoryCloner

java.lang.Object
  extended by org.objectweb.dsrg.sofa.repository.RepositoryCloner

public class RepositoryCloner
extends java.lang.Object

Class used for cloning repository.


Nested Class Summary
static class RepositoryCloner.RepositoryClonerException
          Exception thrown by RepositoryCloner.
 
Constructor Summary
RepositoryCloner(RepositoryAgent _stableRA, RepositoryAgent _developmentRA)
          Initialize cloner with source repository configuration loaded from default and destination repository cloner loaded from url.
RepositoryCloner(RepositoryAgent _stableRA, RepositoryConfiguration developmentRC)
          Initialize cloner with source repository configuration loaded from default and destination repository cloner loaded from url.
RepositoryCloner(java.lang.String url)
          Initialize cloner with source repository configuration loaded from default and destination repository cloner loaded from url.
 
Method Summary
 EntitiesSet clone(EntitiesSet entities, boolean dryRun, boolean seekDeps)
          Clones entities from source repository into destination repository.
 EntitiesSet clone(java.lang.String uris, boolean dryRun, boolean seekDeps)
          Clones source repository into destination repository.
 EntitiesSet clone(VersionedEntity entity)
          Clones entity from source repository into destination repository honoring dependencies between entities.
 EntitiesSet clone(VersionedEntity entity, boolean dryRun)
          Clones entity from source repository into destination repository honoring dependencies between entities.
 EntitiesSet clone(VersionedEntity entity, boolean dryRun, boolean seekDeps)
          Clones entity from source repository into destination repository.
static void main(java.lang.String[] args)
          Standard entry point of cloner.
 EntitiesSet merge(EntitiesSet entities, boolean dryRun, boolean seekDeps)
          Merges entities from development repository into production repository.
 EntitiesSet merge(VersionedEntity entity)
          Merges entity from development repository into production repository honoring dependencies between entities.
 EntitiesSet merge(VersionedEntity entity, boolean dryRun)
          Merges entity from development repository into production repository honoring dependencies between entities.
 EntitiesSet merge(VersionedEntity entity, boolean dryRun, boolean seekDeps)
          Merges entity from development repository into production repository.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RepositoryCloner

public RepositoryCloner(java.lang.String url)
                 throws java.io.IOException
Initialize cloner with source repository configuration loaded from default and destination repository cloner loaded from url.

Parameters:
url - Destination repository configuration file.
Throws:
java.io.IOException

RepositoryCloner

public RepositoryCloner(RepositoryAgent _stableRA,
                        RepositoryAgent _developmentRA)
Initialize cloner with source repository configuration loaded from default and destination repository cloner loaded from url.

Parameters:
_stableRA - Production repository, that is locked by default.
_developmentRA - Development repository, new entities are not locked until merged to stable.
Throws:
java.io.IOException

RepositoryCloner

public RepositoryCloner(RepositoryAgent _stableRA,
                        RepositoryConfiguration developmentRC)
Initialize cloner with source repository configuration loaded from default and destination repository cloner loaded from url.

Parameters:
_stableRA - Production repository, that is locked by default.
developmentRC - Development repository configuration.
Method Detail

main

public static void main(java.lang.String[] args)
Standard entry point of cloner.

Parameters:
args - Three arguments must be on input. Otherwise info is printed to error log.

clone

public EntitiesSet clone(java.lang.String uris,
                         boolean dryRun,
                         boolean seekDeps)
                  throws RepositoryCloner.RepositoryClonerException
Clones source repository into destination repository. Parts can be specified by uris with wildcards "*" like packages in Java.

Parameters:
uris - VersionedEntities with name and version suiting to these URIs are cloned
seekDeps - Seek dependencies hierarchically?
dryRun - Don't clone anything, only return, what should be cloned.
Returns:
Entities, that were/should be cloned.
Throws:
RepositoryCloner.RepositoryClonerException

clone

public EntitiesSet clone(VersionedEntity entity)
                  throws RepositoryCloner.RepositoryClonerException
Clones entity from source repository into destination repository honoring dependencies between entities.

Parameters:
entity - VersionedEntity to be cloned.
Returns:
Entities, that were be cloned.
Throws:
RepositoryCloner.RepositoryClonerException

clone

public EntitiesSet clone(VersionedEntity entity,
                         boolean dryRun)
                  throws RepositoryCloner.RepositoryClonerException
Clones entity from source repository into destination repository honoring dependencies between entities.

Parameters:
entity - VersionedEntity to be cloned.
dryRun - Dry run - don't clone anything, only return, what should be cloned.
Returns:
Entities, that were/should be cloned.
Throws:
RepositoryCloner.RepositoryClonerException

clone

public EntitiesSet clone(VersionedEntity entity,
                         boolean dryRun,
                         boolean seekDeps)
                  throws RepositoryCloner.RepositoryClonerException
Clones entity from source repository into destination repository.

Parameters:
entity - VersionedEntity to be cloned.
dryRun - Don't clone anything, only return, what should be cloned.
seekDeps - Seek dependencies hierarchically?
Returns:
Entities, that were/should be cloned.
Throws:
RepositoryCloner.RepositoryClonerException

clone

public EntitiesSet clone(EntitiesSet entities,
                         boolean dryRun,
                         boolean seekDeps)
                  throws RepositoryCloner.RepositoryClonerException
Clones entities from source repository into destination repository.

Parameters:
entities - VersionedEntity to be cloned.
dryRun - Don't clone anything, only return, what should be cloned.
seekDeps - Seek dependencies hierarchically?
Returns:
Entities, that were/should be cloned.
Throws:
RepositoryCloner.RepositoryClonerException

merge

public EntitiesSet merge(VersionedEntity entity)
                  throws RepositoryCloner.RepositoryClonerException
Merges entity from development repository into production repository honoring dependencies between entities.

Parameters:
entity - VersionedEntity to be merged.
Returns:
Entities, that were be merged.
Throws:
RepositoryCloner.RepositoryClonerException

merge

public EntitiesSet merge(VersionedEntity entity,
                         boolean dryRun)
                  throws RepositoryCloner.RepositoryClonerException
Merges entity from development repository into production repository honoring dependencies between entities.

Parameters:
entity - VersionedEntity to be merged.
dryRun - Dry run - don't merge anything, only return, what should be merged.
Returns:
Entities, that were/should be merged.
Throws:
RepositoryCloner.RepositoryClonerException

merge

public EntitiesSet merge(VersionedEntity entity,
                         boolean dryRun,
                         boolean seekDeps)
                  throws RepositoryCloner.RepositoryClonerException
Merges entity from development repository into production repository.

Parameters:
entity - VersionedEntity to be merged.
dryRun - Don't clone anything, only return, what should be merged.
seekDeps - Seek dependencies hierarchically?
Returns:
Entities, that were/should be merged.
Throws:
RepositoryCloner.RepositoryClonerException

merge

public EntitiesSet merge(EntitiesSet entities,
                         boolean dryRun,
                         boolean seekDeps)
                  throws RepositoryCloner.RepositoryClonerException
Merges entities from development repository into production repository.

Parameters:
entities - VersionedEntity to be merged.
dryRun - Don't clone anything, only return, what should be merged.
seekDeps - Seek dependencies hierarchically?
Returns:
Entities, that were/should be merged.
Throws:
RepositoryCloner.RepositoryClonerException