From ffefbb5002df45a2cd07bac652dbc65ea3acccdf Mon Sep 17 00:00:00 2001 From: Thierry Lacour Date: Mon, 30 Jul 2018 14:48:10 +0200 Subject: [PATCH] Related to #144 Summer cleaning before fixing context shenanigans --- .gitignore | 18 ++-- build.gradle | 13 --- src/main/groovy/toGit/ScriptBase.groovy | 13 ++- .../toGit/context/ActionsContext.groovy | 6 +- .../groovy/toGit/context/AfterContext.groovy | 2 - .../groovy/toGit/context/BeforeContext.groovy | 2 - src/main/groovy/toGit/context/Context.groovy | 3 + .../groovy/toGit/context/ContextHelper.groovy | 11 +-- .../toGit/context/CriteriaContext.groovy | 6 +- .../groovy/toGit/context/DslContext.groovy | 5 ++ .../toGit/context/ExtractionsContext.groovy | 6 +- .../groovy/toGit/context/FilterContext.groovy | 2 - .../toGit/context/FiltersContext.groovy | 2 - .../toGit/context/MigrationContext.groovy | 2 - .../groovy/toGit/context/SourceContext.groovy | 7 ++ .../groovy/toGit/context/TargetContext.groovy | 7 ++ .../groovy/toGit/context/base/Context.groovy | 4 - .../toGit/context/base/DslContext.groovy | 15 ---- .../toGit/context/traits/HasActions.groovy | 8 -- .../toGit/context/traits/HasCriteria.groovy | 8 -- .../context/traits/HasExtractions.groovy | 8 -- .../toGit/context/traits/SourceContext.groovy | 8 -- .../toGit/context/traits/TargetContext.groovy | 8 -- .../toGit/migration/MigrationManager.groovy | 2 +- .../migration/sources/MigrationSource.groovy | 2 +- .../sources/ccbase/ClearCaseSource.groovy | 2 +- .../context/ClearCaseCriteriaContext.groovy | 2 +- .../ClearCaseExtractionsContext.groovy | 2 +- .../context/ClearCaseSourceContext.groovy | 5 +- .../sources/ccucm/CcucmSource.groovy | 2 +- .../ccucm/context/CcucmCriteriaContext.groovy | 2 +- .../context/CcucmExtractionsContext.groovy | 2 +- .../ccucm/context/CcucmSourceContext.groovy | 5 +- .../ccucm/criteria/BaselineNames.groovy | 4 +- .../sources/dummy/DummySource.groovy | 2 +- .../sources/dummy/DummySourceContext.groovy | 5 +- .../context/ArtifactoryTargetContext.groovy | 5 +- .../targets/dummy/DummyTargetContext.groovy | 5 +- .../git/context/GitTargetContext.groovy | 5 +- .../groovy/toGit/Plan_cc2gitBasicTest.groovy | 89 ------------------- src/test/groovy/toGit/TestHelper.groovy | 5 -- .../context/dummy/ActionsContextTest.groovy | 52 +++++++++-- .../functional/ccucm2gitExamplesTest.groovy | 21 ----- 43 files changed, 115 insertions(+), 268 deletions(-) create mode 100644 src/main/groovy/toGit/context/Context.groovy create mode 100644 src/main/groovy/toGit/context/DslContext.groovy create mode 100644 src/main/groovy/toGit/context/SourceContext.groovy create mode 100644 src/main/groovy/toGit/context/TargetContext.groovy delete mode 100644 src/main/groovy/toGit/context/base/Context.groovy delete mode 100644 src/main/groovy/toGit/context/base/DslContext.groovy delete mode 100644 src/main/groovy/toGit/context/traits/HasActions.groovy delete mode 100644 src/main/groovy/toGit/context/traits/HasCriteria.groovy delete mode 100644 src/main/groovy/toGit/context/traits/HasExtractions.groovy delete mode 100644 src/main/groovy/toGit/context/traits/SourceContext.groovy delete mode 100644 src/main/groovy/toGit/context/traits/TargetContext.groovy delete mode 100644 src/test/groovy/toGit/Plan_cc2gitBasicTest.groovy delete mode 100644 src/test/groovy/toGit/functional/ccucm2gitExamplesTest.groovy diff --git a/.gitignore b/.gitignore index 6011c39..a7cc066 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,21 @@ -# Gradle +# dev .gradle build/ gradle-app.setting !gradle-wrapper.jar /.nb-gradle/ -# IDEA +bin/ +.project +.settings +.classpath + +.vscode + .idea/ *.iml - -# Output out/ -# Jekyll _site .sass-cache @@ -22,8 +25,3 @@ _site # Specific command files customers/* *.swp - -# 2git log files -2git-[-_0-9]*.log -logs -cc2git diff --git a/build.gradle b/build.gradle index f0621b9..a252f36 100644 --- a/build.gradle +++ b/build.gradle @@ -77,16 +77,3 @@ github { githubRelease.group = "Publishing" githubRelease.description = "Creates a release on GitHub" - -// -------------------- -// testing -// -------------------- - -task functionalTest(type: Test) { - dependsOn('testClasses') - include 'toGit/functional/**' -} - -test { - exclude 'toGit/functional/**' -} diff --git a/src/main/groovy/toGit/ScriptBase.groovy b/src/main/groovy/toGit/ScriptBase.groovy index 94e6b63..104bd4e 100644 --- a/src/main/groovy/toGit/ScriptBase.groovy +++ b/src/main/groovy/toGit/ScriptBase.groovy @@ -1,11 +1,8 @@ package toGit import org.slf4j.LoggerFactory -import toGit.context.MigrationContext -import toGit.context.base.Context -import toGit.context.base.DslContext -import toGit.context.traits.SourceContext -import toGit.context.traits.TargetContext +import toGit.context.* +import toGit.context.* import toGit.migration.MigrationManager import toGit.migration.sources.MigrationSource import toGit.migration.sources.ccbase.context.ClearCaseSourceContext @@ -71,9 +68,9 @@ abstract class ScriptBase extends Script implements Context { if (!sourceTypes.containsKey(type)) throw new Exception("Source '$type' not supported.") // Initialize and configure the source - def sourceContext = sourceTypes[type].newInstance() as SourceContext - executeInContext(closure, sourceContext) - MigrationSource newSource = sourceContext.source + def SourceContext = sourceTypes[type].newInstance() + executeInContext(closure, SourceContext) + MigrationSource newSource = SourceContext.source // Set MigrationManager's source MigrationManager.instance.source = newSource diff --git a/src/main/groovy/toGit/context/ActionsContext.groovy b/src/main/groovy/toGit/context/ActionsContext.groovy index 393f13c..620905b 100644 --- a/src/main/groovy/toGit/context/ActionsContext.groovy +++ b/src/main/groovy/toGit/context/ActionsContext.groovy @@ -4,16 +4,16 @@ import groovy.text.SimpleTemplateEngine import net.praqma.util.execute.CommandLine import org.apache.commons.io.FileUtils import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.traits.HasActions import toGit.migration.MigrationManager import toGit.migration.plan.Action import toGit.utils.FileHelper -class ActionsContext implements Context, HasActions { +class ActionsContext implements Context { final static log = LoggerFactory.getLogger(this.class) + final List actions = [] + /** * Copies the contents of the source directory to the default target directory. */ diff --git a/src/main/groovy/toGit/context/AfterContext.groovy b/src/main/groovy/toGit/context/AfterContext.groovy index 6e5439c..d6cc059 100644 --- a/src/main/groovy/toGit/context/AfterContext.groovy +++ b/src/main/groovy/toGit/context/AfterContext.groovy @@ -1,8 +1,6 @@ package toGit.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.base.DslContext import toGit.migration.MigrationManager import static ContextHelper.executeInContext diff --git a/src/main/groovy/toGit/context/BeforeContext.groovy b/src/main/groovy/toGit/context/BeforeContext.groovy index 1cd6150..c88c5a8 100644 --- a/src/main/groovy/toGit/context/BeforeContext.groovy +++ b/src/main/groovy/toGit/context/BeforeContext.groovy @@ -1,8 +1,6 @@ package toGit.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.base.DslContext import toGit.migration.MigrationManager import static toGit.context.ContextHelper.executeInContext diff --git a/src/main/groovy/toGit/context/Context.groovy b/src/main/groovy/toGit/context/Context.groovy new file mode 100644 index 0000000..0c86374 --- /dev/null +++ b/src/main/groovy/toGit/context/Context.groovy @@ -0,0 +1,3 @@ +package toGit.context + +interface Context {} diff --git a/src/main/groovy/toGit/context/ContextHelper.groovy b/src/main/groovy/toGit/context/ContextHelper.groovy index 4235ebb..41e9033 100644 --- a/src/main/groovy/toGit/context/ContextHelper.groovy +++ b/src/main/groovy/toGit/context/ContextHelper.groovy @@ -1,10 +1,5 @@ package toGit.context -import toGit.context.base.Context -import toGit.context.traits.HasActions -import toGit.context.traits.HasCriteria -import toGit.context.traits.HasExtractions - class ContextHelper { private ContextHelper() { } @@ -19,9 +14,9 @@ class ContextHelper { if (closure) { //FIXME Workaround for the CEA arrays not being cleared //FIXME This is due to contexts being global and no new instances being made - if (context instanceof HasCriteria) context.criteria.clear() - if (context instanceof HasExtractions) context.extractions.clear() - if (context instanceof HasActions) context.actions.clear() + if (context instanceof CriteriaContext) context.criteria.clear() + if (context instanceof ExtractionsContext) context.extractions.clear() + if (context instanceof ActionsContext) context.actions.clear() closure.delegate = context closure.resolveStrategy = Closure.DELEGATE_FIRST diff --git a/src/main/groovy/toGit/context/CriteriaContext.groovy b/src/main/groovy/toGit/context/CriteriaContext.groovy index 6239b59..5d142b5 100644 --- a/src/main/groovy/toGit/context/CriteriaContext.groovy +++ b/src/main/groovy/toGit/context/CriteriaContext.groovy @@ -1,15 +1,15 @@ package toGit.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.traits.HasCriteria import toGit.migration.plan.Criteria import toGit.migration.plan.Snapshot -class CriteriaContext implements Context, HasCriteria { +class CriteriaContext implements Context { final static log = LoggerFactory.getLogger(this.class) + final List criteria = [] + /** * Filters {@link Snapshot}s using a custom Groovy closure * @param closure Closure to run diff --git a/src/main/groovy/toGit/context/DslContext.groovy b/src/main/groovy/toGit/context/DslContext.groovy new file mode 100644 index 0000000..24b6136 --- /dev/null +++ b/src/main/groovy/toGit/context/DslContext.groovy @@ -0,0 +1,5 @@ +package toGit.context + +@interface DslContext { + Class value() +} diff --git a/src/main/groovy/toGit/context/ExtractionsContext.groovy b/src/main/groovy/toGit/context/ExtractionsContext.groovy index 5e15b1e..cc52bcd 100644 --- a/src/main/groovy/toGit/context/ExtractionsContext.groovy +++ b/src/main/groovy/toGit/context/ExtractionsContext.groovy @@ -1,15 +1,15 @@ package toGit.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.traits.HasExtractions import toGit.migration.plan.Extraction import toGit.migration.plan.Snapshot -class ExtractionsContext implements Context, HasExtractions { +class ExtractionsContext implements Context { final static log = LoggerFactory.getLogger(this.class) + final List extractions = [] + /** * Runs a custom closure to map values * @param closure Closure to run diff --git a/src/main/groovy/toGit/context/FilterContext.groovy b/src/main/groovy/toGit/context/FilterContext.groovy index 25e6d0b..fb38ee2 100644 --- a/src/main/groovy/toGit/context/FilterContext.groovy +++ b/src/main/groovy/toGit/context/FilterContext.groovy @@ -1,8 +1,6 @@ package toGit.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.base.DslContext import toGit.migration.MigrationManager import toGit.migration.plan.Filter diff --git a/src/main/groovy/toGit/context/FiltersContext.groovy b/src/main/groovy/toGit/context/FiltersContext.groovy index 4977694..4bf41b4 100644 --- a/src/main/groovy/toGit/context/FiltersContext.groovy +++ b/src/main/groovy/toGit/context/FiltersContext.groovy @@ -1,8 +1,6 @@ package toGit.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.base.DslContext import toGit.migration.plan.Filter import static ContextHelper.executeInContext diff --git a/src/main/groovy/toGit/context/MigrationContext.groovy b/src/main/groovy/toGit/context/MigrationContext.groovy index b0b2e99..feb80bc 100644 --- a/src/main/groovy/toGit/context/MigrationContext.groovy +++ b/src/main/groovy/toGit/context/MigrationContext.groovy @@ -1,8 +1,6 @@ package toGit.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.base.DslContext import toGit.migration.MigrationManager import static ContextHelper.executeInContext diff --git a/src/main/groovy/toGit/context/SourceContext.groovy b/src/main/groovy/toGit/context/SourceContext.groovy new file mode 100644 index 0000000..a90be36 --- /dev/null +++ b/src/main/groovy/toGit/context/SourceContext.groovy @@ -0,0 +1,7 @@ +package toGit.context + +import toGit.migration.sources.MigrationSource + +abstract class SourceContext implements Context { + MigrationSource source +} diff --git a/src/main/groovy/toGit/context/TargetContext.groovy b/src/main/groovy/toGit/context/TargetContext.groovy new file mode 100644 index 0000000..b814585 --- /dev/null +++ b/src/main/groovy/toGit/context/TargetContext.groovy @@ -0,0 +1,7 @@ +package toGit.context + +import toGit.migration.targets.MigrationTarget + +abstract class TargetContext implements Context { + MigrationTarget target +} diff --git a/src/main/groovy/toGit/context/base/Context.groovy b/src/main/groovy/toGit/context/base/Context.groovy deleted file mode 100644 index eb32e49..0000000 --- a/src/main/groovy/toGit/context/base/Context.groovy +++ /dev/null @@ -1,4 +0,0 @@ -package toGit.context.base - -interface Context { -} diff --git a/src/main/groovy/toGit/context/base/DslContext.groovy b/src/main/groovy/toGit/context/base/DslContext.groovy deleted file mode 100644 index 7b6e7b6..0000000 --- a/src/main/groovy/toGit/context/base/DslContext.groovy +++ /dev/null @@ -1,15 +0,0 @@ -package toGit.context.base - -import java.lang.annotation.ElementType -import java.lang.annotation.Retention -import java.lang.annotation.RetentionPolicy -import java.lang.annotation.Target - -/** - * Marks a {@link Closure} as a context. - */ -@Retention(RetentionPolicy.SOURCE) -@Target([ElementType.PARAMETER]) -@interface DslContext { - Class value() -} diff --git a/src/main/groovy/toGit/context/traits/HasActions.groovy b/src/main/groovy/toGit/context/traits/HasActions.groovy deleted file mode 100644 index dd877d0..0000000 --- a/src/main/groovy/toGit/context/traits/HasActions.groovy +++ /dev/null @@ -1,8 +0,0 @@ -package toGit.context.traits - -import toGit.context.base.Context -import toGit.migration.plan.Action - -trait HasActions implements Context { - List actions = [] -} diff --git a/src/main/groovy/toGit/context/traits/HasCriteria.groovy b/src/main/groovy/toGit/context/traits/HasCriteria.groovy deleted file mode 100644 index 0665836..0000000 --- a/src/main/groovy/toGit/context/traits/HasCriteria.groovy +++ /dev/null @@ -1,8 +0,0 @@ -package toGit.context.traits - -import toGit.context.base.Context -import toGit.migration.plan.Criteria - -trait HasCriteria implements Context { - List criteria = [] -} diff --git a/src/main/groovy/toGit/context/traits/HasExtractions.groovy b/src/main/groovy/toGit/context/traits/HasExtractions.groovy deleted file mode 100644 index bdb8d3a..0000000 --- a/src/main/groovy/toGit/context/traits/HasExtractions.groovy +++ /dev/null @@ -1,8 +0,0 @@ -package toGit.context.traits - -import toGit.context.base.Context -import toGit.migration.plan.Extraction - -trait HasExtractions implements Context { - List extractions = [] -} diff --git a/src/main/groovy/toGit/context/traits/SourceContext.groovy b/src/main/groovy/toGit/context/traits/SourceContext.groovy deleted file mode 100644 index a7bf679..0000000 --- a/src/main/groovy/toGit/context/traits/SourceContext.groovy +++ /dev/null @@ -1,8 +0,0 @@ -package toGit.context.traits - -import toGit.context.base.Context -import toGit.migration.sources.MigrationSource - -trait SourceContext implements Context { - MigrationSource source -} diff --git a/src/main/groovy/toGit/context/traits/TargetContext.groovy b/src/main/groovy/toGit/context/traits/TargetContext.groovy deleted file mode 100644 index 4d19888..0000000 --- a/src/main/groovy/toGit/context/traits/TargetContext.groovy +++ /dev/null @@ -1,8 +0,0 @@ -package toGit.context.traits - -import toGit.context.base.Context -import toGit.migration.targets.MigrationTarget - -trait TargetContext implements Context { - MigrationTarget target -} diff --git a/src/main/groovy/toGit/migration/MigrationManager.groovy b/src/main/groovy/toGit/migration/MigrationManager.groovy index 7425caa..8d9a2fa 100644 --- a/src/main/groovy/toGit/migration/MigrationManager.groovy +++ b/src/main/groovy/toGit/migration/MigrationManager.groovy @@ -4,7 +4,7 @@ import org.slf4j.LoggerFactory import toGit.context.ActionsContext import toGit.context.CriteriaContext import toGit.context.ExtractionsContext -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.plan.MigrationPlan import toGit.migration.sources.MigrationSource import toGit.migration.targets.MigrationTarget diff --git a/src/main/groovy/toGit/migration/sources/MigrationSource.groovy b/src/main/groovy/toGit/migration/sources/MigrationSource.groovy index c70e8d8..ba56fe4 100644 --- a/src/main/groovy/toGit/migration/sources/MigrationSource.groovy +++ b/src/main/groovy/toGit/migration/sources/MigrationSource.groovy @@ -1,6 +1,6 @@ package toGit.migration.sources -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.plan.Criteria import toGit.migration.plan.Snapshot diff --git a/src/main/groovy/toGit/migration/sources/ccbase/ClearCaseSource.groovy b/src/main/groovy/toGit/migration/sources/ccbase/ClearCaseSource.groovy index 665046d..3906212 100644 --- a/src/main/groovy/toGit/migration/sources/ccbase/ClearCaseSource.groovy +++ b/src/main/groovy/toGit/migration/sources/ccbase/ClearCaseSource.groovy @@ -1,7 +1,7 @@ package toGit.migration.sources.ccbase import org.slf4j.LoggerFactory -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.plan.Criteria import toGit.migration.plan.Snapshot import toGit.migration.sources.MigrationSource diff --git a/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseCriteriaContext.groovy b/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseCriteriaContext.groovy index 9ceaef9..d377871 100644 --- a/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseCriteriaContext.groovy +++ b/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseCriteriaContext.groovy @@ -2,7 +2,7 @@ package toGit.migration.sources.ccbase.context import org.slf4j.Logger import org.slf4j.LoggerFactory -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.sources.ccbase.criteria.AfterLabel import toGit.migration.sources.ccbase.criteria.LabelName diff --git a/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseExtractionsContext.groovy b/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseExtractionsContext.groovy index fa269fa..72ce0ba 100644 --- a/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseExtractionsContext.groovy +++ b/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseExtractionsContext.groovy @@ -2,7 +2,7 @@ package toGit.migration.sources.ccbase.context import org.slf4j.Logger import org.slf4j.LoggerFactory -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.sources.ccbase.extractions.LabelExtraction trait ClearCaseExtractionsContext implements Context { diff --git a/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseSourceContext.groovy b/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseSourceContext.groovy index 5fe551d..7448542 100644 --- a/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseSourceContext.groovy +++ b/src/main/groovy/toGit/migration/sources/ccbase/context/ClearCaseSourceContext.groovy @@ -1,11 +1,10 @@ package toGit.migration.sources.ccbase.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.traits.SourceContext +import toGit.context.SourceContext import toGit.migration.sources.ccbase.ClearCaseSource -class ClearCaseSourceContext implements Context, SourceContext { +class ClearCaseSourceContext extends SourceContext { final static log = LoggerFactory.getLogger(this.class) public ClearCaseSourceContext() { diff --git a/src/main/groovy/toGit/migration/sources/ccucm/CcucmSource.groovy b/src/main/groovy/toGit/migration/sources/ccucm/CcucmSource.groovy index 960aa8b..f644f62 100644 --- a/src/main/groovy/toGit/migration/sources/ccucm/CcucmSource.groovy +++ b/src/main/groovy/toGit/migration/sources/ccucm/CcucmSource.groovy @@ -7,7 +7,7 @@ import net.praqma.clearcase.ucm.entities.Stream as CoolStream import net.praqma.clearcase.ucm.utils.BaselineFilter import net.praqma.clearcase.ucm.view.SnapshotView as CoolSnapshotView import org.slf4j.LoggerFactory -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.plan.Criteria import toGit.migration.plan.Snapshot import toGit.migration.sources.MigrationSource diff --git a/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmCriteriaContext.groovy b/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmCriteriaContext.groovy index a8b350b..e37d744 100644 --- a/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmCriteriaContext.groovy +++ b/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmCriteriaContext.groovy @@ -3,7 +3,7 @@ package toGit.migration.sources.ccucm.context import net.praqma.clearcase.ucm.entities.Baseline as CoolBaseline import org.slf4j.Logger import org.slf4j.LoggerFactory -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.sources.ccucm.criteria.AfterDate import toGit.migration.sources.ccucm.criteria.BaselineName import toGit.migration.sources.ccucm.criteria.BaselineNames diff --git a/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmExtractionsContext.groovy b/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmExtractionsContext.groovy index 0c60ca6..6bc24e7 100644 --- a/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmExtractionsContext.groovy +++ b/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmExtractionsContext.groovy @@ -2,7 +2,7 @@ package toGit.migration.sources.ccucm.context import org.slf4j.Logger import org.slf4j.LoggerFactory -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.sources.ccucm.extractions.BaselineProperty trait CcucmExtractionsContext implements Context { diff --git a/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmSourceContext.groovy b/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmSourceContext.groovy index 4ede5e4..963373e 100644 --- a/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmSourceContext.groovy +++ b/src/main/groovy/toGit/migration/sources/ccucm/context/CcucmSourceContext.groovy @@ -2,12 +2,11 @@ package toGit.migration.sources.ccucm.context import net.praqma.clearcase.ucm.view.SnapshotView import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.traits.SourceContext +import toGit.context.SourceContext import toGit.migration.sources.ccucm.CcucmOptions import toGit.migration.sources.ccucm.CcucmSource -class CcucmSourceContext implements Context, SourceContext { +class CcucmSourceContext extends SourceContext { final static log = LoggerFactory.getLogger(this.class) diff --git a/src/main/groovy/toGit/migration/sources/ccucm/criteria/BaselineNames.groovy b/src/main/groovy/toGit/migration/sources/ccucm/criteria/BaselineNames.groovy index 24fbb93..6351d95 100644 --- a/src/main/groovy/toGit/migration/sources/ccucm/criteria/BaselineNames.groovy +++ b/src/main/groovy/toGit/migration/sources/ccucm/criteria/BaselineNames.groovy @@ -11,11 +11,11 @@ class BaselineNames extends Criteria { List baselines BaselineNames(String... baselines) { - this.baselines = baselines + thislines = baselines } BaselineNames(List baselines) { - this.baselines = baselines + thislines = baselines } @Override diff --git a/src/main/groovy/toGit/migration/sources/dummy/DummySource.groovy b/src/main/groovy/toGit/migration/sources/dummy/DummySource.groovy index 0eeb80a..a3b78a2 100644 --- a/src/main/groovy/toGit/migration/sources/dummy/DummySource.groovy +++ b/src/main/groovy/toGit/migration/sources/dummy/DummySource.groovy @@ -1,6 +1,6 @@ package toGit.migration.sources.dummy -import toGit.context.base.Context +import toGit.context.Context import toGit.migration.plan.Criteria import toGit.migration.plan.Snapshot import toGit.migration.sources.MigrationSource diff --git a/src/main/groovy/toGit/migration/sources/dummy/DummySourceContext.groovy b/src/main/groovy/toGit/migration/sources/dummy/DummySourceContext.groovy index 75c33ba..a3aeaf3 100644 --- a/src/main/groovy/toGit/migration/sources/dummy/DummySourceContext.groovy +++ b/src/main/groovy/toGit/migration/sources/dummy/DummySourceContext.groovy @@ -1,9 +1,8 @@ package toGit.migration.sources.dummy -import toGit.context.base.Context -import toGit.context.traits.SourceContext +import toGit.context.SourceContext -class DummySourceContext implements Context, SourceContext { +class DummySourceContext extends SourceContext { public DummySourceContext() { source = new DummySource() } diff --git a/src/main/groovy/toGit/migration/targets/artifactory/context/ArtifactoryTargetContext.groovy b/src/main/groovy/toGit/migration/targets/artifactory/context/ArtifactoryTargetContext.groovy index d0ac2a3..cee0c40 100644 --- a/src/main/groovy/toGit/migration/targets/artifactory/context/ArtifactoryTargetContext.groovy +++ b/src/main/groovy/toGit/migration/targets/artifactory/context/ArtifactoryTargetContext.groovy @@ -1,12 +1,11 @@ package toGit.migration.targets.artifactory.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.traits.TargetContext +import toGit.context.TargetContext import toGit.migration.targets.artifactory.ArtifactoryOptions import toGit.migration.targets.artifactory.ArtifactoryTarget -class ArtifactoryTargetContext implements TargetContext { +class ArtifactoryTargetContext extends TargetContext { final static log = LoggerFactory.getLogger(this.class) diff --git a/src/main/groovy/toGit/migration/targets/dummy/DummyTargetContext.groovy b/src/main/groovy/toGit/migration/targets/dummy/DummyTargetContext.groovy index c4a5bcb..e1acb3d 100644 --- a/src/main/groovy/toGit/migration/targets/dummy/DummyTargetContext.groovy +++ b/src/main/groovy/toGit/migration/targets/dummy/DummyTargetContext.groovy @@ -1,9 +1,8 @@ package toGit.migration.targets.dummy -import toGit.context.base.Context -import toGit.context.traits.TargetContext +import toGit.context.TargetContext -class DummyTargetContext implements Context, TargetContext { +class DummyTargetContext extends TargetContext { public DummyTargetContext() { target = new DummyTarget() } diff --git a/src/main/groovy/toGit/migration/targets/git/context/GitTargetContext.groovy b/src/main/groovy/toGit/migration/targets/git/context/GitTargetContext.groovy index bbb70c0..8b75054 100644 --- a/src/main/groovy/toGit/migration/targets/git/context/GitTargetContext.groovy +++ b/src/main/groovy/toGit/migration/targets/git/context/GitTargetContext.groovy @@ -1,12 +1,11 @@ package toGit.migration.targets.git.context import org.slf4j.LoggerFactory -import toGit.context.base.Context -import toGit.context.traits.TargetContext +import toGit.context.TargetContext import toGit.migration.targets.git.GitOptions import toGit.migration.targets.git.GitTarget -class GitTargetContext implements Context, TargetContext { +class GitTargetContext extends TargetContext { final static log = LoggerFactory.getLogger(this.class) diff --git a/src/test/groovy/toGit/Plan_cc2gitBasicTest.groovy b/src/test/groovy/toGit/Plan_cc2gitBasicTest.groovy deleted file mode 100644 index a6b2dd2..0000000 --- a/src/test/groovy/toGit/Plan_cc2gitBasicTest.groovy +++ /dev/null @@ -1,89 +0,0 @@ -package toGit - -import org.junit.After -import org.junit.Before -import org.junit.Ignore -import org.junit.Test -import toGit.migration.MigrationManager -import toGit.migration.sources.ccucm.CcucmSource -import toGit.migration.targets.git.GitTarget - -class Plan_cc2gitBasicTest { - static String script = $/ - source('ccucm') { - - } - - target('git') { - - } - - migrate { - before { - actions { - custom { println "before" } - } - } - - filters { - filter { - criteria { - baselineName '.*' - } - extractions { - - } - actions { - custom { println "act!" } - } - filter { - // empty - } - } - } - - after { - actions { - custom { println "after" } - } - } - } -/$.stripIndent() - - File commandFile - - @Before - void setup() { - commandFile = File.createTempFile("cc2git-basic-", ".groovy") - commandFile.write script - commandFile.deleteOnExit() - } - - /** - * TODO: Prototyping toGit.functional tests. Ignored for now. - */ - @Test - @Ignore - void cc2git_basic() { - new Executor().execute(commandFile.absolutePath) - def manager = MigrationManager.instance - - assert manager.source instanceof CcucmSource - assert manager.targets.values()[0] instanceof GitTarget - - assert manager.plan != null - assert manager.plan.befores.size() == 1 - assert manager.plan.afters.size() == 1 - assert manager.plan.filters.size() == 1 - - assert manager.plan.filters[0].criteria.size() == 1 - assert manager.plan.filters[0].extractions.size() == 1 - assert manager.plan.filters[0].actions.size() == 1 - assert manager.plan.filters[0].filters.size() == 1 - } - - @After - void cleanup() { - - } -} diff --git a/src/test/groovy/toGit/TestHelper.groovy b/src/test/groovy/toGit/TestHelper.groovy index 928fc49..7ea7891 100644 --- a/src/test/groovy/toGit/TestHelper.groovy +++ b/src/test/groovy/toGit/TestHelper.groovy @@ -1,11 +1,6 @@ package toGit class TestHelper { - static File cloneExampleCommandFile(String name) { - def script = this.class.getResource("/examples/${name}.groovy") - return createCommandFile(script.text) - } - static File createCommandFile(String script) { def commandFile = File.createTempFile("command-", ".groovy") commandFile.write script diff --git a/src/test/groovy/toGit/context/dummy/ActionsContextTest.groovy b/src/test/groovy/toGit/context/dummy/ActionsContextTest.groovy index 5f78130..b9dc18d 100644 --- a/src/test/groovy/toGit/context/dummy/ActionsContextTest.groovy +++ b/src/test/groovy/toGit/context/dummy/ActionsContextTest.groovy @@ -9,6 +9,10 @@ import toGit.migration.targets.dummy.DummyTarget public class ActionsContextTest { + // + // A whole bunch of basic tests + // + private static void testAction(String action) { def commandFile = TestHelper.createCommandFile(actionScriptFor(action)) new Executor().execute(commandFile.absolutePath) @@ -48,37 +52,71 @@ public class ActionsContextTest { } @Test - public void testCopy() throws Exception { + public void testCopy() { testAction("copy()") } @Test - public void testMove() throws Exception { + public void testMove() { testAction("move()") } @Test - public void testCmd() throws Exception { + public void testCmd() { testAction("cmd 'echo hi'") } @Test - public void testCmdWithPath() throws Exception { + public void testCmdWithPath() { testAction("cmd 'echo hi', '/usr/anon'") } @Test - public void testCustom() throws Exception { + public void testCustom() { testAction("custom { println 'hi' }") } @Test - public void testMethodMissing() throws Exception { + public void testMethodMissing() { testAction("foogleburg 'winstonfungler', 5") } @Test - public void testFlattenDir() throws Exception { + public void testFlattenDir() { testAction("flattenDir '.', 3") } + + // + // Testing if contexts pass things down sanely + // + + @Test + @org.junit.Ignore + public void closuresPassedDown() { + + def command = $/ + source ('dummy') + target ('dummy') + + def foo = { + custom { + println "foo" + } + } + + migrate { + filters { + filter { + actions { + foo() + } + } + } + } + /$ + + def commandFile = TestHelper.createCommandFile(command) + new Executor().execute(commandFile.absolutePath) + assertPlan() + } } \ No newline at end of file diff --git a/src/test/groovy/toGit/functional/ccucm2gitExamplesTest.groovy b/src/test/groovy/toGit/functional/ccucm2gitExamplesTest.groovy deleted file mode 100644 index 0554d59..0000000 --- a/src/test/groovy/toGit/functional/ccucm2gitExamplesTest.groovy +++ /dev/null @@ -1,21 +0,0 @@ -package toGit.functional - -import org.junit.Test -import toGit.Executor -import toGit.TestHelper -import toGit.migration.MigrationManager -import toGit.migration.sources.ccucm.CcucmSource -import toGit.migration.targets.git.GitTarget - -class ccucm2gitExamplesTest { - - @Test - public void ccucm2git() { - def commandFile = TestHelper.cloneExampleCommandFile("ccucm2git") - new Executor().execute(commandFile.absolutePath) - - def manager = MigrationManager.instance - assert manager.source instanceof CcucmSource - assert manager.targets.values()['git'] instanceof GitTarget - } -}