You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/02/13 23:30:17 UTC

[1/2] incubator-usergrid git commit: reimplemented filtering for migrations

Repository: incubator-usergrid
Updated Branches:
  refs/heads/USERGRID-365 f1b0c8d86 -> db2585ec2


reimplemented filtering for migrations


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/4657c8df
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/4657c8df
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/4657c8df

Branch: refs/heads/USERGRID-365
Commit: 4657c8df7f150f108dfc77af66efd54c034042d3
Parents: f1b0c8d
Author: Shawn Feldman <sf...@apache.org>
Authored: Fri Feb 13 15:04:46 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Fri Feb 13 15:04:46 2015 -0700

----------------------------------------------------------------------
 .../migration/EntityTypeMappingMigration.java   |   5 +
 .../impl/MvccEntityDataMigrationImpl.java       |   5 +
 .../core/migration/data/DataMigration.java      |   9 ++
 .../data/DataMigrationManagerImpl.java          | 127 +++++++++++++------
 .../data/MigrationInfoSerializationImpl.java    |   2 +-
 .../core/guice/MaxMigrationVersion.java         |   5 +
 .../data/DataMigrationManagerImplTest.java      |  53 ++++----
 .../impl/EdgeDataMigrationImpl.java             |   7 +-
 8 files changed, 151 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigration.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigration.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigration.java
index c4a7177..81503d5 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigration.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigration.java
@@ -96,4 +96,9 @@ public class EntityTypeMappingMigration implements DataMigration {
     public int getVersion() {
         return Versions.VERSION_1;
     }
+
+    @Override
+    public MigrationType getType() {
+        return MigrationType.Entities;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntityDataMigrationImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntityDataMigrationImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntityDataMigrationImpl.java
index cae53ba..bae24f4 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntityDataMigrationImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntityDataMigrationImpl.java
@@ -132,4 +132,9 @@ public class MvccEntityDataMigrationImpl implements DataMigration {
     public int getVersion() {
         return entityMigrationStrategy.getVersion();
     }
+
+    @Override
+    public MigrationType getType() {
+        return MigrationType.Entities;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigration.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigration.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigration.java
index f945375..cae5623 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigration.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigration.java
@@ -56,6 +56,8 @@ public interface DataMigration {
      */
     public int getVersion();
 
+    public MigrationType getType();
+
     public interface ProgressObserver{
         /**
          * Mark the migration as failed
@@ -81,4 +83,11 @@ public interface DataMigration {
         public void update(final int migrationVersion, final String message);
     }
 
+    public enum MigrationType{
+        Entities,
+        Edges,
+        Index,
+        Other
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/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 db93898..0f9cac3 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
@@ -21,6 +21,7 @@ package org.apache.usergrid.persistence.core.migration.data;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.NavigableMap;
 import java.util.Set;
 import java.util.TreeMap;
@@ -28,7 +29,12 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
 import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
+import org.apache.usergrid.persistence.core.scope.EntityIdScope;
+import org.apache.usergrid.persistence.model.entity.Id;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -43,6 +49,7 @@ import com.google.inject.Singleton;
 import rx.Observable;
 import rx.functions.Action1;
 import rx.functions.Func1;
+import rx.schedulers.Schedulers;
 
 
 @Singleton
@@ -57,21 +64,25 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
 
 
     private final Set<DataMigration> migrations;
+    private final ApplicationObservable applicationObservable;
 
 
     @Inject
     public DataMigrationManagerImpl( final MigrationInfoSerialization migrationInfoSerialization,
                                      final Set<DataMigration> migrations,
-                                     final AllEntitiesInSystemObservable allEntitiesInSystemObservable
+                                     final AllEntitiesInSystemObservable allEntitiesInSystemObservable,
+                                     final ApplicationObservable applicationObservable
     ) {
 
         Preconditions.checkNotNull( migrationInfoSerialization,
                 "migrationInfoSerialization must not be null" );
         Preconditions.checkNotNull( migrations, "migrations must not be null" );
         Preconditions.checkNotNull( allEntitiesInSystemObservable, "allentitiesobservable must not be null" );
+        Preconditions.checkNotNull( applicationObservable, "applicationObservable must not be null" );
 
         this.migrationInfoSerialization = migrationInfoSerialization;
         this.allEntitiesInSystemObservable = allEntitiesInSystemObservable;
+        this.applicationObservable = applicationObservable;
 
         this.migrations = migrations;
     }
@@ -83,10 +94,10 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
         if (!populateTreeMap())
             return;
 
-        final int currentVersion = migrationInfoSerialization.getVersion();
+        int currentVersion = migrationInfoSerialization.getCurrentVersion();
 
-        if(currentVersion <= 0){
-            resetToHighestVersion();
+        if(currentVersion < 0){
+            currentVersion = resetToHighestVersion();
         }
 
         LOG.info( "Saved schema version is {}, max migration version is {}", currentVersion,
@@ -98,46 +109,87 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
 
         final CassandraProgressObserver observer = new CassandraProgressObserver();
 
-        allEntitiesInSystemObservable.getAllEntitiesInSystem(1000)
-            .doOnNext(
-                new Action1<ApplicationEntityGroup>() {
-                    @Override
-                    public void call(
-                        final ApplicationEntityGroup applicationEntityGroup) {
-                        for (DataMigration migration : migrationsToRun.values()) {
+        Observable<DataMigration> migrations = Observable.from(migrationsToRun.values()).subscribeOn(Schedulers.io());
 
-                            migrationInfoSerialization.setStatusCode(StatusCode.RUNNING.status);
+        Observable entityMigrations = migrations
+            .filter(new Func1<DataMigration, Boolean>() {
+                @Override
+                public Boolean call(DataMigration dataMigration) {
+                    return dataMigration.getType() == DataMigration.MigrationType.Entities;
+                }
+            }).flatMap(new Func1<DataMigration, Observable<ApplicationEntityGroup>>() {
+                @Override
+                public Observable<ApplicationEntityGroup> call(final DataMigration dataMigration) {
+                    return allEntitiesInSystemObservable
+                        .getAllEntitiesInSystem(1000)
+                        .doOnNext(new Action1<ApplicationEntityGroup>() {
+                            @Override
+                            public void call(ApplicationEntityGroup entityGroup) {
+                                runMigration(dataMigration,observer,entityGroup);
+                            }
+                        });
+                }
+            });
+
+        //migrations that aren't entities
+        Observable otherMigrations = migrations
+            .filter(new Func1<DataMigration, Boolean>() {
+                @Override
+                public Boolean call(DataMigration dataMigration) {
+                    return dataMigration.getType() != DataMigration.MigrationType.Entities;
+                }
+            }).flatMap(new Func1<DataMigration, Observable<?>>() {
+                @Override
+                public Observable call(final DataMigration dataMigration) {
+                    return applicationObservable.getAllApplicationIds()
+                        .doOnNext(new Action1<Id>() {
+                            @Override
+                            public void call(Id id) {
+                                ApplicationScope scope = new ApplicationScopeImpl(id);
+                                runMigration(dataMigration, observer, new ApplicationEntityGroup(scope, null));
+                            }
+                        });
+
+                }
+            });
+
+        try {
+            Observable.merge(entityMigrations, otherMigrations).toBlocking().lastOrDefault(null);
+            migrationInfoSerialization.setStatusCode( StatusCode.COMPLETE.status );
+        }catch (Exception e){
+            LOG.error("Migration Failed");
+        }
 
-                            final int migrationVersion = migration.getVersion();
+    }
 
-                            LOG.info("Running migration version {}", migrationVersion);
+    private void runMigration(DataMigration migration, CassandraProgressObserver observer, ApplicationEntityGroup applicationEntityGroup) {
+        migrationInfoSerialization.setStatusCode(StatusCode.RUNNING.status);
 
-                            observer.update(migrationVersion, "Starting migration");
+        final int migrationVersion = migration.getVersion();
 
-                            //perform this migration, if it fails, short circuit
-                            try {
-                                migration.migrate(applicationEntityGroup, observer).toBlocking().lastOrDefault(null);
-                            } catch (Throwable throwable) {
-                                observer.failed(migrationVersion, "Exception thrown during migration", throwable);
-                                LOG.error("Unable to migrate to version {}.", migrationVersion, throwable);
-                                return ;
-                            }
+        LOG.info("Running migration version {}", migrationVersion);
 
-                            //we had an unhandled exception or the migration failed, short circuit
-                            if (observer.failed) {
-                                return ;
-                            }
+        observer.update(migrationVersion, "Starting migration");
+
+        //perform this migration, if it fails, short circuit
+        try {
+            migration.migrate(applicationEntityGroup, observer).toBlocking().lastOrDefault(null);
+        } catch (Throwable throwable) {
+            observer.failed(migrationVersion, "Exception thrown during migration", throwable);
+            LOG.error("Unable to migrate to version {}.", migrationVersion, throwable);
+            throw new RuntimeException(throwable) ;
+        }
+
+        //we had an unhandled exception or the migration failed, short circuit
+        if (observer.failed) {
+            return ;
+        }
 
-                            //set the version
-                            migrationInfoSerialization.setVersion(migrationVersion);
+        //set the version
+        migrationInfoSerialization.setVersion(migrationVersion);
 
-                            //update the observer for progress so other nodes can see it
-                            observer.update(migrationVersion, "Completed successfully");
-                        }
-                        return ;
-                    }
-                }).toBlocking().lastOrDefault(null);
-        migrationInfoSerialization.setStatusCode( StatusCode.COMPLETE.status );
+        //update the observer for progress so other nodes can see it
+        observer.update(migrationVersion, "Completed successfully");
     }
 
     private boolean populateTreeMap() {
@@ -206,9 +258,10 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
         migrationInfoSerialization.setVersion( version );
     }
 
-    private void resetToHighestVersion( ) {
+    private int resetToHighestVersion( ) {
         final int highestAllowed = migrationTreeMap.lastKey();
         resetToVersion(highestAllowed);
+        return highestAllowed;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
index aeee0bb..02de1cf 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
@@ -146,7 +146,7 @@ public class MigrationInfoSerializationImpl implements MigrationInfoSerializatio
         }
         //swallow, it doesn't exist
         catch ( NotFoundException nfe ) {
-            return 0;
+            return -1;
         }
         catch ( ConnectionException e ) {
             throw new DataMigrationException( "Unable to retrieve status", e );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/MaxMigrationVersion.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/MaxMigrationVersion.java b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/MaxMigrationVersion.java
index 8184f09..d903a7d 100644
--- a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/MaxMigrationVersion.java
+++ b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/MaxMigrationVersion.java
@@ -41,4 +41,9 @@ public class MaxMigrationVersion implements DataMigration {
     public int getVersion() {
         return Integer.MAX_VALUE;
     }
+
+    @Override
+    public MigrationType getType() {
+        return MigrationType.Other;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/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 c12adea..07d8134 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
@@ -22,17 +22,17 @@
 package org.apache.usergrid.persistence.core.migration.data;
 
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Observer;
-import java.util.Set;
+import java.util.*;
 
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
 import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.core.scope.EntityIdScope;
 import org.apache.usergrid.persistence.model.entity.Id;
+import org.apache.usergrid.persistence.model.entity.SimpleId;
 import org.junit.Test;
+import org.mockito.Mockito;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
@@ -41,13 +41,8 @@ import rx.Observable;
 import rx.Subscriber;
 
 import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.*;
 
 
 /**
@@ -70,13 +65,21 @@ public class DataMigrationManagerImplTest {
         }
     };
 
+    ApplicationObservable allApplicationsObservable = new ApplicationObservable() {
+        @Override
+        public Observable<Id> getAllApplicationIds() {
+            return Observable.just( (Id)new SimpleId("application"));
+        }
+    };
+
     @Test
     public void noMigrations() throws MigrationException {
         final MigrationInfoSerialization serialization = mock( MigrationInfoSerialization.class );
+        when(serialization.getCurrentVersion()).thenReturn(0);
 
         Set<DataMigration> emptyMigration = new HashSet<>();
 
-        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, emptyMigration, allEntitiesInSystemObservable );
+        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, emptyMigration, allEntitiesInSystemObservable,allApplicationsObservable );
 
         migrationManager.migrate();
 
@@ -89,6 +92,7 @@ public class DataMigrationManagerImplTest {
     @Test
     public void multipleMigrations() throws Throwable {
         final MigrationInfoSerialization serialization = mock( MigrationInfoSerialization.class );
+        when(serialization.getCurrentVersion()).thenReturn(0);
 
 
         final DataMigration v1 = mock( DataMigration.class );
@@ -97,7 +101,7 @@ public class DataMigrationManagerImplTest {
 
         final DataMigration v2 = mock( DataMigration.class );
         when( v2.getVersion() ).thenReturn( 2 );
-        when(v2.migrate(any(ApplicationEntityGroup.class),any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
+        when(v2.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
 
         Set<DataMigration> migrations = new HashSet<>();
@@ -105,7 +109,7 @@ public class DataMigrationManagerImplTest {
         migrations.add( v2 );
 
 
-        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, migrations,allEntitiesInSystemObservable );
+        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, migrations,allEntitiesInSystemObservable,allApplicationsObservable );
 
         migrationManager.migrate();
 
@@ -132,26 +136,28 @@ public class DataMigrationManagerImplTest {
     @Test
     public void shortCircuitVersionFails() throws Throwable {
         final MigrationInfoSerialization serialization = mock( MigrationInfoSerialization.class );
+        when(serialization.getCurrentVersion()).thenReturn(0);
 
 
-        final DataMigration v1 = mock( DataMigration.class );
+        final DataMigration v1 = mock( DataMigration.class,"mock1" );
         when( v1.getVersion() ).thenReturn( 1 );
+        when( v1.getType() ).thenReturn(DataMigration.MigrationType.Entities);
         when( v1.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
         //throw an exception
-        doThrow( new RuntimeException( "Something bad happened" ) ).when( v1 ).migrate(any(ApplicationEntityGroup.class),
-                any(DataMigration.ProgressObserver.class) );
+        when( v1.migrate(any(ApplicationEntityGroup.class),
+                any(DataMigration.ProgressObserver.class) )).thenThrow(new RuntimeException( "Something bad happened" ));
 
-        final DataMigration v2 = mock( DataMigration.class );
+        final DataMigration v2 = mock( DataMigration.class,"mock2" );
+        when( v2.getType() ).thenReturn(DataMigration.MigrationType.Entities);
         when( v2.getVersion() ).thenReturn( 2 );
 
-
         Set<DataMigration> migrations = new HashSet<>();
         migrations.add( v1 );
         migrations.add( v2 );
 
 
-        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, migrations,allEntitiesInSystemObservable );
+        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, migrations,allEntitiesInSystemObservable,allApplicationsObservable );
 
         migrationManager.migrate();
 
@@ -180,10 +186,12 @@ public class DataMigrationManagerImplTest {
 
     @Test
     public void failStopsProgress() throws Throwable {
-        final MigrationInfoSerialization serialization = mock( MigrationInfoSerialization.class );
+        final MigrationInfoSerialization serialization = mock(MigrationInfoSerialization.class);
+        when(serialization.getCurrentVersion()).thenReturn(0);
 
         final DataMigration v1 = mock( DataMigration.class );
         when( v1.getVersion() ).thenReturn( 1 );
+        when( v1.getType() ).thenReturn(DataMigration.MigrationType.Entities);
         when( v1.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
         final int returnedCode = 100;
@@ -207,6 +215,7 @@ public class DataMigrationManagerImplTest {
 
         final DataMigration v2 = mock( DataMigration.class );
         when( v2.getVersion() ).thenReturn( 2 );
+        when( v2.getType() ).thenReturn(DataMigration.MigrationType.Entities);
         when(v2.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
         Set<DataMigration> migrations = new HashSet<>();
@@ -214,7 +223,7 @@ public class DataMigrationManagerImplTest {
         migrations.add( v2 );
 
 
-        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, migrations,allEntitiesInSystemObservable );
+        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( serialization, migrations,allEntitiesInSystemObservable, allApplicationsObservable );
 
         migrationManager.migrate();
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/4657c8df/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/EdgeDataMigrationImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/EdgeDataMigrationImpl.java b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/EdgeDataMigrationImpl.java
index c506aca..975e1a2 100644
--- a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/EdgeDataMigrationImpl.java
+++ b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/EdgeDataMigrationImpl.java
@@ -75,7 +75,6 @@ public class EdgeDataMigrationImpl implements DataMigration {
         rx.Observable o =
             Observable
                 .from(applicationEntityGroup.entityIds)
-
                 .flatMap(new Func1<EntityIdScope, Observable<List<Edge>>>() {
                     //for each id in the group, get it's edges
                     @Override
@@ -83,7 +82,6 @@ public class EdgeDataMigrationImpl implements DataMigration {
                         logger.info("Migrating edges from node {} in scope {}", idScope.getId(),
                             applicationEntityGroup.applicationScope);
 
-
                         //get each edge from this node as a source
                         return edgesFromSource
 
@@ -138,4 +136,9 @@ public class EdgeDataMigrationImpl implements DataMigration {
     public int getVersion() {
         return edgeMigrationStrategy.getVersion();
     }
+
+    @Override
+    public MigrationType getType() {
+        return MigrationType.Edges;
+    }
 }


[2/2] incubator-usergrid git commit: cp tests passing

Posted by sf...@apache.org.
cp tests passing


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/db2585ec
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/db2585ec
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/db2585ec

Branch: refs/heads/USERGRID-365
Commit: db2585ec2671c4722b97adb88afdc55b54b120cd
Parents: 4657c8d
Author: Shawn Feldman <sf...@apache.org>
Authored: Fri Feb 13 15:28:01 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Fri Feb 13 15:28:01 2015 -0700

----------------------------------------------------------------------
 .../collection/guice/TestCollectionModule.java  |  3 ++
 .../data/DataMigrationManagerImpl.java          |  2 +-
 .../data/MigrationInfoSerializationImpl.java    |  2 +-
 .../core/guice/TestCommonModule.java            |  4 +++
 .../data/DataMigrationManagerImplTest.java      | 26 +++++++--------
 .../core/rx/ApplicationsTestObservable.java     | 33 ++++++++++++++++++++
 .../graph/guice/TestGraphModule.java            |  3 ++
 .../persistence/map/guice/TestMapModule.java    |  3 ++
 .../index/guice/TestIndexModule.java            |  3 ++
 .../queue/guice/TestQueueModule.java            |  3 ++
 10 files changed, 67 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/guice/TestCollectionModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/guice/TestCollectionModule.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/guice/TestCollectionModule.java
index 3f0c740..06f4565 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/guice/TestCollectionModule.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/guice/TestCollectionModule.java
@@ -25,6 +25,8 @@ import org.apache.usergrid.persistence.core.guice.MaxMigrationModule;
 import org.apache.usergrid.persistence.core.guice.TestModule;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemTestObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationsTestObservable;
 
 
 public class TestCollectionModule extends TestModule {
@@ -35,6 +37,7 @@ public class TestCollectionModule extends TestModule {
          * Runtime modules
          */
         bind(AllEntitiesInSystemObservable.class).to(AllEntitiesInSystemTestObservable.class);
+        bind(ApplicationObservable.class).to(ApplicationsTestObservable.class);
 
         install( new CommonModule() );
         install( new CollectionModule() );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/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 0f9cac3..a7fe2a4 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
@@ -96,7 +96,7 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
 
         int currentVersion = migrationInfoSerialization.getCurrentVersion();
 
-        if(currentVersion < 0){
+        if(currentVersion <= 0){
             currentVersion = resetToHighestVersion();
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
index 02de1cf..aeee0bb 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerializationImpl.java
@@ -146,7 +146,7 @@ public class MigrationInfoSerializationImpl implements MigrationInfoSerializatio
         }
         //swallow, it doesn't exist
         catch ( NotFoundException nfe ) {
-            return -1;
+            return 0;
         }
         catch ( ConnectionException e ) {
             throw new DataMigrationException( "Unable to retrieve status", e );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/TestCommonModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/TestCommonModule.java b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/TestCommonModule.java
index f23d85d..6972fc7 100644
--- a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/TestCommonModule.java
+++ b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/TestCommonModule.java
@@ -24,6 +24,8 @@ package org.apache.usergrid.persistence.core.guice;
 
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemTestObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationsTestObservable;
 
 /**
  * Module for testing common frameworks
@@ -32,6 +34,8 @@ public class TestCommonModule extends TestModule {
 
     @Override
     protected void configure() {
+        bind(ApplicationObservable.class).to(ApplicationsTestObservable.class);
+
         bind(AllEntitiesInSystemObservable.class).to(AllEntitiesInSystemTestObservable.class);
         install(new CommonModule());
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/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 07d8134..305ab67 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
@@ -75,7 +75,7 @@ public class DataMigrationManagerImplTest {
     @Test
     public void noMigrations() throws MigrationException {
         final MigrationInfoSerialization serialization = mock( MigrationInfoSerialization.class );
-        when(serialization.getCurrentVersion()).thenReturn(0);
+        when(serialization.getCurrentVersion()).thenReturn(1);
 
         Set<DataMigration> emptyMigration = new HashSet<>();
 
@@ -92,15 +92,15 @@ public class DataMigrationManagerImplTest {
     @Test
     public void multipleMigrations() throws Throwable {
         final MigrationInfoSerialization serialization = mock( MigrationInfoSerialization.class );
-        when(serialization.getCurrentVersion()).thenReturn(0);
+        when(serialization.getCurrentVersion()).thenReturn(1);
 
 
         final DataMigration v1 = mock( DataMigration.class );
-        when( v1.getVersion() ).thenReturn( 1 );
+        when( v1.getVersion() ).thenReturn( 2 );
         when( v1.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
         final DataMigration v2 = mock( DataMigration.class );
-        when( v2.getVersion() ).thenReturn( 2 );
+        when( v2.getVersion() ).thenReturn( 3 );
         when(v2.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
 
@@ -126,21 +126,21 @@ public class DataMigrationManagerImplTest {
         verify( serialization ).setStatusCode( DataMigrationManagerImpl.StatusCode.COMPLETE.status );
 
         //verify we set version 1
-        verify( serialization ).setVersion( 1 );
+        verify( serialization ).setVersion( 2 );
 
         //verify we set version 2
-        verify( serialization ).setVersion( 2 );
+        verify( serialization ).setVersion( 3 );
     }
 
 
     @Test
     public void shortCircuitVersionFails() throws Throwable {
         final MigrationInfoSerialization serialization = mock( MigrationInfoSerialization.class );
-        when(serialization.getCurrentVersion()).thenReturn(0);
+        when(serialization.getCurrentVersion()).thenReturn(1);
 
 
         final DataMigration v1 = mock( DataMigration.class,"mock1" );
-        when( v1.getVersion() ).thenReturn( 1 );
+        when( v1.getVersion() ).thenReturn( 2 );
         when( v1.getType() ).thenReturn(DataMigration.MigrationType.Entities);
         when( v1.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
@@ -150,7 +150,7 @@ public class DataMigrationManagerImplTest {
 
         final DataMigration v2 = mock( DataMigration.class,"mock2" );
         when( v2.getType() ).thenReturn(DataMigration.MigrationType.Entities);
-        when( v2.getVersion() ).thenReturn( 2 );
+        when( v2.getVersion() ).thenReturn( 3 );
 
         Set<DataMigration> migrations = new HashSet<>();
         migrations.add( v1 );
@@ -187,10 +187,10 @@ public class DataMigrationManagerImplTest {
     @Test
     public void failStopsProgress() throws Throwable {
         final MigrationInfoSerialization serialization = mock(MigrationInfoSerialization.class);
-        when(serialization.getCurrentVersion()).thenReturn(0);
+        when(serialization.getCurrentVersion()).thenReturn(1);
 
         final DataMigration v1 = mock( DataMigration.class );
-        when( v1.getVersion() ).thenReturn( 1 );
+        when( v1.getVersion() ).thenReturn( 2 );
         when( v1.getType() ).thenReturn(DataMigration.MigrationType.Entities);
         when( v1.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
@@ -214,7 +214,7 @@ public class DataMigrationManagerImplTest {
         );
 
         final DataMigration v2 = mock( DataMigration.class );
-        when( v2.getVersion() ).thenReturn( 2 );
+        when( v2.getVersion() ).thenReturn( 3 );
         when( v2.getType() ).thenReturn(DataMigration.MigrationType.Entities);
         when(v2.migrate(any(ApplicationEntityGroup.class), any(DataMigration.ProgressObserver.class))).thenReturn(Observable.empty());
 
@@ -237,7 +237,7 @@ public class DataMigrationManagerImplTest {
         verify( serialization, times( 1 ) ).setStatusCode( DataMigrationManagerImpl.StatusCode.RUNNING.status );
 
         //set the status message
-        verify( serialization ).setStatusMessage( "Migration version 1.  Starting migration" );
+        verify( serialization ).setStatusMessage( "Migration version 2.  Starting migration" );
 
         verify( serialization ).setStatusMessage( "Migration version 100.  Failed to migrate, reason is appended.  Error 'test reason'" );
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/rx/ApplicationsTestObservable.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/rx/ApplicationsTestObservable.java b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/rx/ApplicationsTestObservable.java
new file mode 100644
index 0000000..c0d52dd
--- /dev/null
+++ b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/rx/ApplicationsTestObservable.java
@@ -0,0 +1,33 @@
+/*
+ *
+ *  * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  *  contributor license agreements.  The ASF licenses this file to You
+ *  * under the Apache License, Version 2.0 (the "License"); you may not
+ *  * use this file except in compliance with the License.
+ *  * You may obtain a copy of the License at
+ *  *
+ *  *     http://www.apache.org/licenses/LICENSE-2.0
+ *  *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  * distributed under the License is distributed on an "AS IS" BASIS,
+ *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  * See the License for the specific language governing permissions and
+ *  * limitations under the License.  For additional information regarding
+ *  * copyright in this work, please see the NOTICE file in the top level
+ *  * directory of this distribution.
+ *
+ */
+package org.apache.usergrid.persistence.core.rx;
+
+import org.apache.usergrid.persistence.model.entity.Id;
+import rx.Observable;
+
+/**
+ * Classy class class.
+ */
+public class ApplicationsTestObservable implements ApplicationObservable {
+    @Override
+    public Observable<Id> getAllApplicationIds() {
+        return Observable.empty();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/guice/TestGraphModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/guice/TestGraphModule.java b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/guice/TestGraphModule.java
index 1921e98..63cb204 100644
--- a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/guice/TestGraphModule.java
+++ b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/guice/TestGraphModule.java
@@ -24,6 +24,8 @@ import org.apache.usergrid.persistence.core.guice.MaxMigrationModule;
 import org.apache.usergrid.persistence.core.guice.TestModule;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemTestObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationsTestObservable;
 
 
 /**
@@ -36,6 +38,7 @@ public class TestGraphModule extends TestModule {
         /**
          * Runtime modules
          */
+        bind(ApplicationObservable.class).to(ApplicationsTestObservable.class);
 
         bind(AllEntitiesInSystemObservable.class).to(AllEntitiesInSystemTestObservable.class);
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/map/src/test/java/org/apache/usergrid/persistence/map/guice/TestMapModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/map/src/test/java/org/apache/usergrid/persistence/map/guice/TestMapModule.java b/stack/corepersistence/map/src/test/java/org/apache/usergrid/persistence/map/guice/TestMapModule.java
index 977a7c3..18b79a3 100644
--- a/stack/corepersistence/map/src/test/java/org/apache/usergrid/persistence/map/guice/TestMapModule.java
+++ b/stack/corepersistence/map/src/test/java/org/apache/usergrid/persistence/map/guice/TestMapModule.java
@@ -5,6 +5,8 @@ import org.apache.usergrid.persistence.core.guice.TestModule;
 import org.apache.usergrid.persistence.core.guice.CommonModule;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemTestObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationsTestObservable;
 
 
 public class TestMapModule extends TestModule {
@@ -12,6 +14,7 @@ public class TestMapModule extends TestModule {
     @Override
     protected void configure() {
         bind(AllEntitiesInSystemObservable.class).to(AllEntitiesInSystemTestObservable.class);
+        bind(ApplicationObservable.class).to(ApplicationsTestObservable.class);
 
         install( new CommonModule());
         install( new MapModule() );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
index 1b500c1..96202c5 100644
--- a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
+++ b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
@@ -24,6 +24,8 @@ import org.apache.usergrid.persistence.core.guice.TestModule;
 import org.apache.usergrid.persistence.core.guice.CommonModule;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemTestObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationsTestObservable;
 
 
 public class TestIndexModule extends TestModule {
@@ -31,6 +33,7 @@ public class TestIndexModule extends TestModule {
     @Override
     protected void configure() {
         bind(AllEntitiesInSystemObservable.class).to(AllEntitiesInSystemTestObservable.class);
+        bind(ApplicationObservable.class).to(ApplicationsTestObservable.class);
 
         install( new CommonModule());
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/db2585ec/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/queue/guice/TestQueueModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/queue/guice/TestQueueModule.java b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/queue/guice/TestQueueModule.java
index 4a8d3d9..e19b6f0 100644
--- a/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/queue/guice/TestQueueModule.java
+++ b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/queue/guice/TestQueueModule.java
@@ -22,6 +22,8 @@ import org.apache.usergrid.persistence.core.guice.TestModule;
 import org.apache.usergrid.persistence.core.guice.CommonModule;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
 import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemTestObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
+import org.apache.usergrid.persistence.core.rx.ApplicationsTestObservable;
 
 
 public class TestQueueModule extends TestModule {
@@ -29,6 +31,7 @@ public class TestQueueModule extends TestModule {
     @Override
     protected void configure() {
         bind(AllEntitiesInSystemObservable.class).to(AllEntitiesInSystemTestObservable.class);
+        bind(ApplicationObservable.class).to(ApplicationsTestObservable.class);
 
         install( new CommonModule());
         install( new QueueModule() );