You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/03/30 21:58:23 UTC
[19/50] incubator-usergrid git commit: AppInfoMigrationPlugin should
manage its own version numbering.
AppInfoMigrationPlugin should manage its own version numbering.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/44b56908
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/44b56908
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/44b56908
Branch: refs/heads/two-dot-o-dev
Commit: 44b56908ad64ec63212bfb7b751678e06706dd30
Parents: 6078526
Author: Dave Johnson <dm...@apigee.com>
Authored: Thu Mar 12 17:36:09 2015 -0400
Committer: Dave Johnson <dm...@apigee.com>
Committed: Thu Mar 12 17:36:09 2015 -0400
----------------------------------------------------------------------
.../migration/AppInfoMigrationPlugin.java | 16 +++++++++++++++-
.../migration/MigrationModuleVersionPlugin.java | 19 ++++++++++++-------
.../apache/usergrid/rest/MigrateResource.java | 12 ++----------
3 files changed, 29 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/44b56908/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 1c38615..59fafd5 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
@@ -21,6 +21,7 @@ package org.apache.usergrid.corepersistence.migration;
import com.google.inject.Inject;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
import org.apache.usergrid.persistence.*;
+import org.apache.usergrid.persistence.core.migration.data.MigrationInfoSerialization;
import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin;
import org.apache.usergrid.persistence.core.migration.data.PluginPhase;
import org.apache.usergrid.persistence.core.migration.data.ProgressObserver;
@@ -51,6 +52,9 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
public static String PLUGIN_NAME = "appinfo-migration";
@Inject
+ private MigrationInfoSerialization migrationInfoSerialization;
+
+ @Inject
protected EntityManagerFactory emf; // protected for test purposes only
@Override
@@ -61,6 +65,13 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
@Override
public void run(ProgressObserver observer) {
+ final int version = migrationInfoSerialization.getVersion( getName() );
+
+ if ( version == getMaxVersion() ) {
+ logger.debug("Skipping Migration Plugin: " + getName());
+ return;
+ }
+
observer.start();
EntityManager em = emf.getEntityManager( CpNamingUtils.MANAGEMENT_APPLICATION_ID);
@@ -132,6 +143,8 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
em.delete(oldAppInfo);
}
+ migrationInfoSerialization.setVersion( getName(), getMaxVersion() );
+
} catch (Exception e) {
// stop on any exception and return failure
@@ -146,6 +159,7 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
}
observer.complete();
+
}
private Entity getApplicationInfo( EntityManagerFactory emf, UUID appId ) throws Exception {
@@ -162,7 +176,7 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
@Override
public int getMaxVersion() {
- return CoreDataVersions.APPINFO_FIX.getVersion();
+ return 1; // standalone plugin, happens once
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/44b56908/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 c979ed5..439c3f6 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
@@ -95,20 +95,25 @@ public class MigrationModuleVersionPlugin implements MigrationPlugin{
//now we store versions for each of our modules
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
+
+ //if it's entity v2, set all, it's current
case ENTITY_V2_MIGRATION:
- migrationInfoSerialization.setVersion( CollectionMigrationPlugin.PLUGIN_NAME, serializationStrategyV2.getImplementationVersion() );
- //if it's edge shard, we need to run the v2 migration
+ migrationInfoSerialization.setVersion(
+ CollectionMigrationPlugin.PLUGIN_NAME, serializationStrategyV2.getImplementationVersion() );
+
+ //if it's edge shard, we need to run the v2 migration
case EDGE_SHARD_MIGRATION:
//set our shard migration to the migrated version
- migrationInfoSerialization.setVersion( GraphMigrationPlugin.PLUGIN_NAME, edgeMetadataSerializationV2.getImplementationVersion() );
+ migrationInfoSerialization.setVersion(
+ GraphMigrationPlugin.PLUGIN_NAME, edgeMetadataSerializationV2.getImplementationVersion() );
+
case ID_MIGRATION:
- migrationInfoSerialization.setVersion( CoreMigrationPlugin.PLUGIN_NAME, CoreDataVersions.ID_MAP_FIX.getVersion() );
- case APPINFO_MIGRATION:
- migrationInfoSerialization.setVersion( AppInfoMigrationPlugin.PLUGIN_NAME, AppInfoVersions.APPINFO_FIX.getVersion() );
+ migrationInfoSerialization.setVersion(
+ CoreMigrationPlugin.PLUGIN_NAME, CoreDataVersions.ID_MAP_FIX.getVersion() );
}
//save the version
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/44b56908/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
index a6d2daa..f249512 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
@@ -88,7 +88,7 @@ public class MigrateResource extends AbstractContextResource {
logger.info( "Migrating Data " );
try {
- getMigrationManager().migrate();
+ getDataMigrationManager().migrate();
}
catch ( Exception e ) {
logger.error( "Unable to migrate data", e );
@@ -114,7 +114,7 @@ public class MigrateResource extends AbstractContextResource {
@QueryParam( "callback" ) @DefaultValue( "" ) String callback )
throws Exception {
- logger.debug( "newOrganization" );
+ logger.debug( "setMigrationVersion" );
Preconditions.checkNotNull( json, "You must provide a json body" );
@@ -193,13 +193,5 @@ public class MigrateResource extends AbstractContextResource {
private DataMigrationManager getDataMigrationManager() {
return guiceInjector.getInstance( DataMigrationManager.class );
}
-
-
- /**
- * Get the Data migraiton manager
- */
- private MigrationManager getMigrationManager() {
- return guiceInjector.getInstance( MigrationManager.class );
- }
}