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 );
-    }
 }