migration version cache fix
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/3781c379 Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/3781c379 Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/3781c379 Branch: refs/heads/USERGRID-703 Commit: 3781c37916cdeb2fdeedfb908b27f2d647b1193a Parents: 49cf0d1 Author: Shawn Feldman <[email protected]> Authored: Fri Jun 26 14:33:13 2015 -0600 Committer: Shawn Feldman <[email protected]> Committed: Fri Jun 26 14:33:13 2015 -0600 ---------------------------------------------------------------------- .../migration/AppInfoMigrationPlugin.java | 2 ++ .../migration/MigrationModuleVersionPlugin.java | 3 -- .../data/DataMigrationManagerImpl.java | 9 ++++-- .../data/DataMigrationManagerImplTest.java | 32 +++++++++++++------- .../index/migration/EsIndexMigrationPlugin.java | 2 +- 5 files changed, 31 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3781c379/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java index 2deb4f6..0a6d47e 100644 --- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java +++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java @@ -138,6 +138,8 @@ public class AppInfoMigrationPlugin implements MigrationPlugin { .doOnCompleted(() -> { if(count.get()>0) { migrationInfoSerialization.setVersion(getName(), getMaxVersion()); + }else{ + logger.error("Failed to migrate any app infos"); } observer.complete(); }).toBlocking().lastOrDefault(null); http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3781c379/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/MigrationModuleVersionPlugin.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/MigrationModuleVersionPlugin.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/MigrationModuleVersionPlugin.java index 439c3f6..2ffe335 100644 --- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/MigrationModuleVersionPlugin.java +++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/MigrationModuleVersionPlugin.java @@ -97,9 +97,6 @@ public class MigrationModuleVersionPlugin implements MigrationPlugin{ switch ( legacyVersion ) { //we need to set the version of the entity data, and our edge shard migration. The fall through (no break) is deliberate - //if it's initial, set both - case INITIAL: - //if it's entity v2, set all, it's current case ENTITY_V2_MIGRATION: migrationInfoSerialization.setVersion( http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3781c379/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java index 3b5ba70..714aa11 100644 --- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java +++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java @@ -49,12 +49,15 @@ public class DataMigrationManagerImpl implements DataMigrationManager { private final List<MigrationPlugin> executionOrder; private final MigrationInfoSerialization migrationInfoSerialization; - + private final MigrationInfoCache migrationInfoCache; @Inject public DataMigrationManagerImpl( final Set<MigrationPlugin> plugins, - final MigrationInfoSerialization migrationInfoSerialization ) { + final MigrationInfoSerialization migrationInfoSerialization, + final MigrationInfoCache migrationInfoCache + ) { + this.migrationInfoCache = migrationInfoCache; Preconditions.checkNotNull( plugins, "plugins must not be null" ); @@ -101,6 +104,8 @@ public class DataMigrationManagerImpl implements DataMigrationManager { executionOrder.forEach(plugin -> { final ProgressObserver observer = new CassandraProgressObserver(plugin.getName()); plugin.run(observer); + migrationInfoCache.invalidateAll(); + }); } http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3781c379/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java index bbcd447..ff801eb 100644 --- a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java +++ b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java @@ -50,8 +50,8 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); - - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); Set<String> pluginNames = migrationManager.getPluginNames(); @@ -80,9 +80,10 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization,migrationInfoCache ); Set<String> pluginNames = migrationManager.getPluginNames(); @@ -126,9 +127,10 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); assertTrue(migrationManager.getExecutionOrder().get(0).getName() == "plugin2"); @@ -158,8 +160,9 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); assertTrue(migrationManager.getExecutionOrder().get(0).getName() == "plugin1"); @@ -184,8 +187,9 @@ public class DataMigrationManagerImplTest { when( migrationInfoSerialization.getStatusCode( "plugin1" ) ) .thenReturn( DataMigrationManagerImpl.StatusCode.RUNNING.status ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); boolean status = migrationManager.isRunning(); @@ -235,8 +239,9 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); Set<String> pluginNames = migrationManager.getPluginNames(); @@ -284,8 +289,9 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); migrationManager.resetToVersion( name, 0 ); @@ -322,8 +328,10 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); + - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); migrationManager.resetToVersion( name, version + 1 ); } @@ -353,8 +361,9 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); migrationManager.resetToVersion( name + "foo", version ); } @@ -384,8 +393,9 @@ public class DataMigrationManagerImplTest { final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class ); when(migrationInfoSerialization.getStatusMessage( name )).thenReturn( status ); + final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class); - DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization ); + DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache ); final String returnedStatus = migrationManager.getLastStatus( name ); http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3781c379/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/migration/EsIndexMigrationPlugin.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/migration/EsIndexMigrationPlugin.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/migration/EsIndexMigrationPlugin.java index 9ece73b..a28c701 100644 --- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/migration/EsIndexMigrationPlugin.java +++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/migration/EsIndexMigrationPlugin.java @@ -41,6 +41,6 @@ public class EsIndexMigrationPlugin extends AbstractMigrationPlugin<Application @Override public PluginPhase getPhase() { - return PluginPhase.BOOTSTRAP; + return PluginPhase.MIGRATE; } }
