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/11 17:32:10 UTC
incubator-usergrid git commit: Refactor Application Entity Group
Repository: incubator-usergrid
Updated Branches:
refs/heads/USERGRID-365 fb0e91055 -> ea680f1a0
Refactor Application Entity Group
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/ea680f1a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/ea680f1a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/ea680f1a
Branch: refs/heads/USERGRID-365
Commit: ea680f1a0045c02cca376bc82767d2c88132fa90
Parents: fb0e910
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Feb 11 09:29:57 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Feb 11 09:29:57 2015 -0700
----------------------------------------------------------------------
.../migration/EntityTypeMappingMigration.java | 20 ++++-----
.../impl/AllEntitiesInSystemObservableImpl.java | 25 ++++++++---
.../rx/impl/ApplicationObservableImpl.java | 2 +
.../migration/EntityDataMigrationIT.java | 30 ++++++-------
.../migration/EntityTypeMappingMigrationIT.java | 4 +-
.../migration/GraphShardVersionMigrationIT.java | 34 ++++++++-------
.../rx/AllEntitiesInSystemObservableIT.java | 11 ++---
.../usergrid/persistence/LargeEntityIT.java | 5 ++-
.../impl/MvccEntityDataMigrationImpl.java | 24 ++++++-----
...vccEntitySerializationStrategyProxyImpl.java | 14 ++++---
...cEntitySerializationStrategyProxyV1Impl.java | 9 ++--
...cEntitySerializationStrategyProxyV2Impl.java | 5 ++-
.../data/DataMigrationManagerImpl.java | 23 ++--------
.../data/MigrationInfoSerialization.java | 4 ++
.../data/MigrationInfoSerializationImpl.java | 31 ++++++++++++++
.../core/rx/AllEntitiesInSystemObservable.java | 4 ++
.../core/scope/ApplicationEntityGroup.java | 5 +--
.../persistence/core/scope/EntityIdScope.java | 44 ++++++++++++++++++++
.../data/DataMigrationManagerImplTest.java | 3 +-
.../impl/EdgeDataMigrationImpl.java | 7 ++--
.../persistence/model/entity/EntityMap.java | 14 ++++---
21 files changed, 211 insertions(+), 107 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/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 8352cff..c4a7177 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
@@ -29,6 +29,7 @@ import org.apache.usergrid.corepersistence.util.CpNamingUtils;
import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
import org.apache.usergrid.persistence.core.migration.data.DataMigration;
import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
+import org.apache.usergrid.persistence.core.scope.EntityIdScope;
import org.apache.usergrid.persistence.map.MapManager;
import org.apache.usergrid.persistence.map.MapScope;
import org.apache.usergrid.persistence.model.entity.Id;
@@ -66,19 +67,18 @@ public class EntityTypeMappingMigration implements DataMigration {
final MapScope ms = CpNamingUtils.getEntityTypeMapScope(applicationEntityGroup.applicationScope.getApplication());
final MapManager mapManager = managerCache.getMapManager(ms);
- return Observable.from(applicationEntityGroup.entityIds).subscribeOn(Schedulers.io())
- .map(new Func1<Id, Long>() {
+ return Observable.from(applicationEntityGroup.entityIds)
+ .subscribeOn(Schedulers.io())
+ .map(new Func1<EntityIdScope, Long>() {
@Override
- public Long call(Id id) {
- for (Id entityId : applicationEntityGroup.entityIds) {
- final UUID entityUuid = entityId.getUuid();
- final String entityType = entityId.getType();
+ public Long call(EntityIdScope idScope) {
+ final UUID entityUuid = idScope.getId().getUuid();
+ final String entityType = idScope.getId().getType();
- mapManager.putString(entityUuid.toString(), entityType);
+ mapManager.putString(entityUuid.toString(), entityType);
- if (atomicLong.incrementAndGet() % 100 == 0) {
- updateStatus(atomicLong, observer);
- }
+ if (atomicLong.incrementAndGet() % 100 == 0) {
+ updateStatus(atomicLong, observer);
}
return atomicLong.get();
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllEntitiesInSystemObservableImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllEntitiesInSystemObservableImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllEntitiesInSystemObservableImpl.java
index 4608bd2..ed087ce 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllEntitiesInSystemObservableImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllEntitiesInSystemObservableImpl.java
@@ -20,14 +20,18 @@
package org.apache.usergrid.corepersistence.rx.impl;
+import java.util.ArrayList;
import java.util.List;
+import com.google.inject.Inject;
import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.persistence.collection.CollectionScope;
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.graph.GraphManager;
import org.apache.usergrid.persistence.graph.GraphManagerFactory;
import org.apache.usergrid.persistence.graph.serialization.TargetIdObservable;
@@ -48,6 +52,7 @@ public class AllEntitiesInSystemObservableImpl implements AllEntitiesInSystemObs
private final GraphManagerFactory graphManagerFactory;
private final TargetIdObservable targetIdObservable;
+ @Inject
public AllEntitiesInSystemObservableImpl(ApplicationObservable applicationObservable, GraphManagerFactory graphManagerFactory, TargetIdObservable targetIdObservable){
this.applicationObservable = applicationObservable;
@@ -89,12 +94,22 @@ public class AllEntitiesInSystemObservableImpl implements AllEntitiesInSystemObs
return Observable
.merge(applicationNode, entityNodes)
.buffer(bufferSize)
- .map(new Func1<List<Id>, ApplicationEntityGroup>() {
+ .map(new Func1<List<Id>, List<EntityIdScope>>() {
@Override
- public ApplicationEntityGroup call(final List<Id> ids) {
- //CpNamingUtils.getCollectionScopeNameFromEntityType(applicationId,);
-
- return new ApplicationEntityGroup(applicationScope, ids);
+ public List<EntityIdScope> call(List<Id> ids) {
+ List<EntityIdScope> scopes = new ArrayList<>(ids.size());
+ for (Id id : ids) {
+ CollectionScope scope = CpNamingUtils.getCollectionScopeNameFromEntityType(applicationId, id.getType());
+ EntityIdScope idScope = new EntityIdScope(id, scope);
+ scopes.add(idScope);
+ }
+ return scopes;
+ }
+ })
+ .map(new Func1<List<EntityIdScope>, ApplicationEntityGroup>() {
+ @Override
+ public ApplicationEntityGroup call(final List<EntityIdScope> scopes) {
+ return new ApplicationEntityGroup(applicationScope, scopes);
}
});
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/ApplicationObservableImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/ApplicationObservableImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/ApplicationObservableImpl.java
index 10a043d..9a5e084 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/ApplicationObservableImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/ApplicationObservableImpl.java
@@ -23,6 +23,7 @@ package org.apache.usergrid.corepersistence.rx.impl;
import java.util.Arrays;
import java.util.UUID;
+import com.google.inject.Inject;
import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
import org.apache.usergrid.persistence.core.rx.ApplicationObservable;
import org.apache.usergrid.persistence.graph.GraphManagerFactory;
@@ -57,6 +58,7 @@ public class ApplicationObservableImpl implements ApplicationObservable {
private final EntityCollectionManagerFactory entityCollectionManagerFactory;
private final GraphManagerFactory graphManagerFactory;
+ @Inject
public ApplicationObservableImpl(EntityCollectionManagerFactory entityCollectionManagerFactory, GraphManagerFactory graphManagerFactory){
this.entityCollectionManagerFactory = entityCollectionManagerFactory;
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityDataMigrationIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityDataMigrationIT.java b/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityDataMigrationIT.java
index a23ce93..651766b 100644
--- a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityDataMigrationIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityDataMigrationIT.java
@@ -25,10 +25,12 @@ import java.util.Iterator;
import java.util.Set;
import org.apache.usergrid.persistence.collection.mvcc.MvccEntityMigrationStrategy;
+import org.apache.usergrid.persistence.collection.serialization.impl.MvccEntityDataMigrationImpl;
import org.apache.usergrid.persistence.collection.serialization.impl.MvccEntitySerializationStrategyProxyV2Impl;
import org.apache.usergrid.persistence.core.migration.data.DataMigration;
import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
+import org.apache.usergrid.persistence.core.scope.EntityIdScope;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -81,14 +83,14 @@ public class EntityDataMigrationIT extends AbstractCoreIT {
*/
@Rule
public MigrationTestRule migrationTestRule =
- new MigrationTestRule( app, CpSetup.getInjector() ,MvccEntitySerializationStrategyProxyV2Impl.class );
+ new MigrationTestRule( app, CpSetup.getInjector() ,MvccEntityDataMigrationImpl.class );
private AllEntitiesInSystemObservable allEntitiesInSystemObservable;
@Before
public void setup() {
emf = setup.getEmf();
injector = CpSetup.getInjector();
- entityDataMigration = injector.getInstance( MvccEntitySerializationStrategyProxyV2Impl.class );
+ entityDataMigration = injector.getInstance( MvccEntityDataMigrationImpl.class );
dataMigrationManager = injector.getInstance( DataMigrationManager.class );
migrationInfoSerialization = injector.getInstance( MigrationInfoSerialization.class );
MvccEntityMigrationStrategy strategy = injector.getInstance(Key.get(MvccEntityMigrationStrategy.class));
@@ -140,15 +142,15 @@ public class EntityDataMigrationIT extends AbstractCoreIT {
final ApplicationEntityGroup entity ) {
//add all versions from history to our comparison
- for ( final Id id : entity.entityIds ) {
+ for ( final EntityIdScope id : entity.entityIds ) {
CollectionScope scope = CpNamingUtils
.getCollectionScopeNameFromEntityType(
- entity.applicationScope.getApplication(),
- id.getType() );
+ entity.applicationScope.getApplication(),
+ id.getId().getType());
final Iterator<MvccEntity> versions = v1Strategy
- .loadDescendingHistory( scope, id, UUIDGenerator.newTimeUUID(),
+ .loadDescendingHistory( scope, id.getId(), UUIDGenerator.newTimeUUID(),
100 );
while ( versions.hasNext() ) {
@@ -159,7 +161,7 @@ public class EntityDataMigrationIT extends AbstractCoreIT {
createdEntityIds.remove( mvccEntity.getId() );
- entityIds.add( id );
+ entityIds.add( id.getId() );
}
}
}
@@ -202,15 +204,15 @@ public class EntityDataMigrationIT extends AbstractCoreIT {
public void call(
final ApplicationEntityGroup entity ) {
//add all versions from history to our comparison
- for ( final Id id : entity.entityIds ) {
+ for ( final EntityIdScope id : entity.entityIds ) {
CollectionScope scope = CpNamingUtils
.getCollectionScopeNameFromEntityType(
- entity.applicationScope.getApplication(),
- id.getType() );
+ entity.applicationScope.getApplication(),
+ id.getId().getType());
final Iterator<MvccEntity> versions = v2Strategy
- .loadDescendingHistory( scope, id,
+ .loadDescendingHistory( scope, id.getId(),
UUIDGenerator.newTimeUUID(), 100 );
while ( versions.hasNext() ) {
@@ -242,14 +244,14 @@ public class EntityDataMigrationIT extends AbstractCoreIT {
entity.applicationScope.getApplication().getUuid() );
//add all versions from history to our comparison
- for ( final Id id : entity.entityIds ) {
+ for ( final EntityIdScope id : entity.entityIds ) {
try {
- final Entity emEntity = em.get( SimpleEntityRef.fromId( id ) );
+ final Entity emEntity = em.get( SimpleEntityRef.fromId( id.getId() ) );
if(emEntity != null){
- entityIds.remove( id );
+ entityIds.remove( id.getId() );
}
}
catch ( Exception e ) {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigrationIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigrationIT.java b/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigrationIT.java
index 3da0b85..8a09952 100644
--- a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigrationIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/EntityTypeMappingMigrationIT.java
@@ -25,6 +25,7 @@ import java.util.Set;
import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
+import org.apache.usergrid.persistence.core.scope.EntityIdScope;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -147,7 +148,8 @@ public class EntityTypeMappingMigrationIT extends AbstractCoreIT {
final EntityManager em = emf.getEntityManager(
entity.applicationScope.getApplication().getUuid());
- for (final Id id : entity.entityIds) {
+ for (final EntityIdScope idScope : entity.entityIds) {
+ final Id id = idScope.getId();
try {
final Entity returned = em.get(id.getUuid());
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/GraphShardVersionMigrationIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/GraphShardVersionMigrationIT.java b/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/GraphShardVersionMigrationIT.java
index 2d6d0d9..6d718d7 100644
--- a/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/GraphShardVersionMigrationIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/corepersistence/migration/GraphShardVersionMigrationIT.java
@@ -26,6 +26,8 @@ import java.util.Set;
import org.apache.usergrid.persistence.core.migration.data.DataMigration;
import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
+import org.apache.usergrid.persistence.core.scope.EntityIdScope;
+import org.apache.usergrid.persistence.graph.serialization.impl.EdgeDataMigrationImpl;
import org.apache.usergrid.persistence.graph.serialization.impl.EdgeMetadataSerializationProxyImpl;
import org.junit.Before;
import org.junit.Rule;
@@ -69,14 +71,14 @@ public class GraphShardVersionMigrationIT extends AbstractCoreIT {
* Rule to do the resets we need
*/
@Rule
- public MigrationTestRule migrationTestRule = new MigrationTestRule( app, CpSetup.getInjector() ,EdgeMetadataSerializationProxyImpl.class );
+ public MigrationTestRule migrationTestRule = new MigrationTestRule( app, CpSetup.getInjector() ,EdgeDataMigrationImpl.class );
private AllEntitiesInSystemObservable allEntitiesInSystemObservable;
@Before
public void setup() {
injector = CpSetup.getInjector();
- graphShardVersionMigration = injector.getInstance( EdgeMetadataSerializationProxyImpl.class );
+ graphShardVersionMigration = injector.getInstance( EdgeDataMigrationImpl.class );
managerCache = injector.getInstance( ManagerCache.class );
dataMigrationManager = injector.getInstance( DataMigrationManager.class );
migrationInfoSerialization = injector.getInstance( MigrationInfoSerialization.class );
@@ -127,31 +129,31 @@ public class GraphShardVersionMigrationIT extends AbstractCoreIT {
final GraphManager gm =
managerCache.getGraphManager( entity.applicationScope );
- for ( final Id id : entity.entityIds ) {
+ for ( final EntityIdScope idScope : entity.entityIds ) {
/**
* Get our edge types from the source
*/
- gm.getEdgeTypesFromSource( new SimpleSearchEdgeType( id, null, null ) )
- .doOnNext( new Action1<String>() {
+ gm.getEdgeTypesFromSource( new SimpleSearchEdgeType(idScope.getId(), null, null ) )
+ .doOnNext(new Action1<String>() {
@Override
- public void call( final String s ) {
- sourceTypes.put( id, s );
+ public void call(final String s) {
+ sourceTypes.put(idScope.getId(), s);
}
- } ).toBlocking().lastOrDefault( null );
+ }).toBlocking().lastOrDefault( null );
/**
* Get the edge types to the target
*/
- gm.getEdgeTypesToTarget( new SimpleSearchEdgeType( id, null, null ) )
+ gm.getEdgeTypesToTarget( new SimpleSearchEdgeType( idScope.getId(), null, null ) )
.doOnNext( new Action1<String>() {
@Override
public void call( final String s ) {
- targetTypes.put( id, s );
+ targetTypes.put( idScope.getId(), s );
}
} ).toBlocking().lastOrDefault( null );
- allEntities.remove( id );
+ allEntities.remove( idScope.getId() );
}
}
} ).toBlocking().lastOrDefault( null );
@@ -195,16 +197,16 @@ public class GraphShardVersionMigrationIT extends AbstractCoreIT {
final GraphManager gm =
managerCache.getGraphManager( entity.applicationScope );
- for ( final Id id : entity.entityIds ) {
+ for ( final EntityIdScope idScope : entity.entityIds ) {
/**
* Get our edge types from the source
*/
gm.getEdgeTypesFromSource(
- new SimpleSearchEdgeType( id, null, null ) )
+ new SimpleSearchEdgeType( idScope.getId(), null, null ) )
.doOnNext( new Action1<String>() {
@Override
public void call( final String s ) {
- sourceTypes.remove( id, s );
+ sourceTypes.remove( idScope.getId(), s );
}
} ).toBlocking().lastOrDefault( null );
@@ -213,11 +215,11 @@ public class GraphShardVersionMigrationIT extends AbstractCoreIT {
* Get the edge types to the target
*/
gm.getEdgeTypesToTarget(
- new SimpleSearchEdgeType( id, null, null ) )
+ new SimpleSearchEdgeType( idScope.getId(), null, null ) )
.doOnNext( new Action1<String>() {
@Override
public void call( final String s ) {
- targetTypes.remove( id, s );
+ targetTypes.remove( idScope.getId(), s );
}
} ).toBlocking().lastOrDefault( null );
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/core/src/test/java/org/apache/usergrid/corepersistence/rx/AllEntitiesInSystemObservableIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/corepersistence/rx/AllEntitiesInSystemObservableIT.java b/stack/core/src/test/java/org/apache/usergrid/corepersistence/rx/AllEntitiesInSystemObservableIT.java
index 30c9ac3..fb37487 100644
--- a/stack/core/src/test/java/org/apache/usergrid/corepersistence/rx/AllEntitiesInSystemObservableIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/corepersistence/rx/AllEntitiesInSystemObservableIT.java
@@ -27,6 +27,7 @@ import org.apache.usergrid.corepersistence.rx.impl.AllEntitiesInSystemObservable
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.EntityIdScope;
import org.apache.usergrid.persistence.graph.serialization.TargetIdObservable;
import org.junit.Test;
import org.slf4j.Logger;
@@ -113,14 +114,14 @@ public class AllEntitiesInSystemObservableIT extends AbstractCoreIT {
return;
}
- for(Id id: entity.entityIds) {
+ for(EntityIdScope idScope: entity.entityIds) {
//we should only emit each node once
- if ( id.getType().equals( type1 ) ) {
- assertTrue( "Element should be present on removal", type1Identities.remove( id ) );
+ if ( idScope.getId().getType().equals( type1 ) ) {
+ assertTrue( "Element should be present on removal", type1Identities.remove(idScope.getId() ) );
}
- else if ( id.getType().equals( type2 ) ) {
- assertTrue( "Element should be present on removal", type2Identities.remove( id ) );
+ else if ( idScope.getId().getType().equals( type2 ) ) {
+ assertTrue( "Element should be present on removal", type2Identities.remove(idScope.getId() ) );
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java
index c95f7d6..b18955d 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java
@@ -44,7 +44,8 @@ import static org.junit.Assert.assertEquals;
@Concurrent()
-public class LargeEntityIT extends AbstractCoreIT {
+public class
+ LargeEntityIT extends AbstractCoreIT {
private static final Logger LOG = LoggerFactory.getLogger( LargeEntityIT.class );
@Rule
@@ -82,7 +83,7 @@ public class LargeEntityIT extends AbstractCoreIT {
LOG.debug( "testLargeEntityCrud" );
- SetConfigTestBypass.setValueByPass( serializationFig, "getMaxEntitySize", 641814 + "" );
+ SetConfigTestBypass.setValueByPass( serializationFig, "getMaxEntitySize", 641834 + "" );
final URL resource = this.getClass().getClassLoader().getResource( TEST_DATA_FILE );
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/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 287c469..864a3af 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
@@ -32,10 +32,13 @@ import org.apache.usergrid.persistence.core.migration.data.DataMigrationExceptio
import org.apache.usergrid.persistence.core.migration.schema.MigrationStrategy;
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.util.UUIDGenerator;
import rx.Observable;
+import rx.functions.Action1;
import rx.functions.Func1;
+import rx.schedulers.Schedulers;
import java.util.Iterator;
import java.util.List;
@@ -62,22 +65,22 @@ public class MvccEntityDataMigrationImpl implements DataMigration {
final AtomicLong atomicLong = new AtomicLong();
final MutationBatch totalBatch = keyspace.prepareMutationBatch();
- final List<Id> entityIds = applicationEntityGroup.entityIds;
+ final List<EntityIdScope> entityIds = applicationEntityGroup.entityIds;
final UUID now = UUIDGenerator.newTimeUUID();
//go through each entity in the system, and load it's entire
// history
return Observable.from(entityIds)
-
- .map(new Func1<Id, Id>() {
+ .subscribeOn(Schedulers.io())
+ .map(new Func1<EntityIdScope, Id>() {
@Override
- public Id call(Id entityId) {
+ public Id call(EntityIdScope idScope) {
ApplicationScope applicationScope = applicationEntityGroup.applicationScope;
if (!(applicationScope instanceof CollectionScope)) {
- throw new IllegalArgumentException("getCollectionScopeFromEntityId must return a collection scope");
+ return idScope.getId();
}
CollectionScope currentScope = (CollectionScope) applicationScope;
@@ -85,7 +88,7 @@ public class MvccEntityDataMigrationImpl implements DataMigration {
//for each element in the history in the previous version,
// copy it to the CF in v2
Iterator<MvccEntity> allVersions = migration.from()
- .loadDescendingHistory(currentScope, entityId, now,
+ .loadDescendingHistory(currentScope, idScope.getId(), now,
1000);
while (allVersions.hasNext()) {
@@ -101,14 +104,15 @@ public class MvccEntityDataMigrationImpl implements DataMigration {
}
}
executeBatch(totalBatch, observer, atomicLong);
- return entityId;
+ return idScope.getId();
}
})
- .map(new Func1<Id, Long>() {
+ .buffer(100)
+ .doOnNext(new Action1<List<Id>>() {
@Override
- public Long call(Id id) {
+ public void call(List<Id> ids) {
executeBatch(totalBatch, observer, atomicLong);
- return atomicLong.get();
+
}
});
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyImpl.java
index 9e87da4..2624cd4 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyImpl.java
@@ -26,6 +26,7 @@ import org.apache.usergrid.persistence.collection.mvcc.MvccEntityMigrationStrate
import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
import org.apache.usergrid.persistence.core.astyanax.MultiTennantColumnFamilyDefinition;
import org.apache.usergrid.persistence.core.migration.data.DataMigrationManager;
+import org.apache.usergrid.persistence.core.migration.data.MigrationInfoSerialization;
import org.apache.usergrid.persistence.model.entity.Id;
import java.util.*;
@@ -39,21 +40,22 @@ import java.util.*;
public abstract class MvccEntitySerializationStrategyProxyImpl implements MvccEntitySerializationStrategy, MvccEntityMigrationStrategy {
- private final DataMigrationManager dataMigrationManager;
protected final Keyspace keyspace;
protected final MvccEntitySerializationStrategy previous;
protected final MvccEntitySerializationStrategy current;
+ private final MigrationInfoSerialization migrationInfoSerialization;
@Inject
- public MvccEntitySerializationStrategyProxyImpl(final DataMigrationManager dataMigrationManager,
- final Keyspace keyspace,
+ public MvccEntitySerializationStrategyProxyImpl(final Keyspace keyspace,
final MvccEntitySerializationStrategy previous,
- final MvccEntitySerializationStrategy current) {
- this.dataMigrationManager = dataMigrationManager;
+ final MvccEntitySerializationStrategy current,
+ final MigrationInfoSerialization migrationInfoSerialization) {
+
this.keyspace = keyspace;
this.previous = previous;
this.current = current;
+ this.migrationInfoSerialization = migrationInfoSerialization;
}
@@ -137,7 +139,7 @@ public abstract class MvccEntitySerializationStrategyProxyImpl implements MvccEn
* Return true if we're on an old version
*/
private boolean isOldVersion() {
- return dataMigrationManager.getCurrentVersion() < getVersion();
+ return migrationInfoSerialization.getCurrentVersion() < getVersion();
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV1Impl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV1Impl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV1Impl.java
index 75b33e3..f2c8d33 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV1Impl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV1Impl.java
@@ -29,6 +29,7 @@ import org.apache.usergrid.persistence.core.migration.data.DataMigrationManager;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.netflix.astyanax.Keyspace;
+import org.apache.usergrid.persistence.core.migration.data.MigrationInfoSerialization;
/**
@@ -41,11 +42,11 @@ public class MvccEntitySerializationStrategyProxyV1Impl extends MvccEntitySerial
@Inject
- public MvccEntitySerializationStrategyProxyV1Impl(final DataMigrationManager dataMigrationManager,
- final Keyspace keyspace,
+ public MvccEntitySerializationStrategyProxyV1Impl(final Keyspace keyspace,
@V1Impl final MvccEntitySerializationStrategy previous,
- @V2Impl final MvccEntitySerializationStrategy current) {
- super(dataMigrationManager, keyspace, previous, current);
+ @V2Impl final MvccEntitySerializationStrategy current,
+ final MigrationInfoSerialization migrationInfoSerialization) {
+ super( keyspace, previous, current,migrationInfoSerialization);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV2Impl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV2Impl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV2Impl.java
index 4f31b52..d897ee4 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV2Impl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyProxyV2Impl.java
@@ -7,6 +7,7 @@ import org.apache.usergrid.persistence.collection.mvcc.MvccEntityMigrationStrate
import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
import org.apache.usergrid.persistence.core.guice.*;
import org.apache.usergrid.persistence.core.migration.data.DataMigrationManager;
+import org.apache.usergrid.persistence.core.migration.data.MigrationInfoSerialization;
/**
@@ -19,11 +20,11 @@ public class MvccEntitySerializationStrategyProxyV2Impl extends MvccEntitySerial
@Inject
- public MvccEntitySerializationStrategyProxyV2Impl( final DataMigrationManager dataMigrationManager,
+ public MvccEntitySerializationStrategyProxyV2Impl( final MigrationInfoSerialization migrationInfoSerialization,
final Keyspace keyspace,
@V1ProxyImpl final MvccEntitySerializationStrategy previous,
@V3Impl final MvccEntitySerializationStrategy current) {
- super(dataMigrationManager,keyspace,previous,current);
+ super(keyspace,previous,current,migrationInfoSerialization);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/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 8a84d9f..a9b4f56 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
@@ -55,17 +55,7 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
private final MigrationInfoSerialization migrationInfoSerialization;
private final AllEntitiesInSystemObservable allEntitiesInSystemObservable;
- /**
- * Cache to cache versions temporarily
- */
- private final LoadingCache<String, Integer> versionCache = CacheBuilder.newBuilder()
- //cache the local value for 1 minute
- .expireAfterWrite(1, TimeUnit.MINUTES).build( new CacheLoader<String, Integer>() {
- @Override
- public Integer load( final String key ) throws Exception {
- return migrationInfoSerialization.getVersion();
- }
- } );
+
private final Set<DataMigration> migrations;
@@ -137,8 +127,6 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
//set the version
migrationInfoSerialization.setVersion(migrationVersion);
- versionCache.invalidateAll();
-
//update the observer for progress so other nodes can see it
observer.update(migrationVersion, "Completed successfully");
}
@@ -192,18 +180,13 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
@Override
public void invalidate() {
- versionCache.invalidateAll();
+ migrationInfoSerialization.invalidate();
}
@Override
public int getCurrentVersion() {
- try {
- return versionCache.get( "currentVersion" );
- }
- catch ( ExecutionException e ) {
- throw new DataMigrationException( "Unable to get current version", e );
- }
+ return migrationInfoSerialization.getCurrentVersion();
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerialization.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerialization.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerialization.java
index db2a747..3caa6aa 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerialization.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/MigrationInfoSerialization.java
@@ -60,4 +60,8 @@ public interface MigrationInfoSerialization extends Migration {
* @return The integer that's saved
*/
public int getStatusCode();
+
+ public int getCurrentVersion();
+
+ public void invalidate();
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/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 603ebb3..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
@@ -22,7 +22,11 @@ package org.apache.usergrid.persistence.core.migration.data;
import java.util.Collection;
import java.util.Collections;
import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
import org.apache.cassandra.db.marshal.BytesType;
import org.apache.cassandra.db.marshal.UTF8Type;
@@ -45,6 +49,17 @@ import com.netflix.astyanax.serializers.StringSerializer;
@Singleton
public class MigrationInfoSerializationImpl implements MigrationInfoSerialization {
+ /**
+ * Cache to cache versions temporarily
+ */
+ private final LoadingCache<String, Integer> versionCache = CacheBuilder.newBuilder()
+ //cache the local value for 1 minute
+ .expireAfterWrite(1, TimeUnit.MINUTES).build( new CacheLoader<String, Integer>() {
+ @Override
+ public Integer load( final String key ) throws Exception {
+ return getVersion();
+ }
+ } );
/**
* Just a hard coded scope since we need it
@@ -118,6 +133,8 @@ public class MigrationInfoSerializationImpl implements MigrationInfoSerializatio
catch ( ConnectionException e ) {
throw new DataMigrationException( "Unable to save status", e );
}
+
+ versionCache.invalidateAll();
}
@@ -164,6 +181,20 @@ public class MigrationInfoSerializationImpl implements MigrationInfoSerializatio
}
}
+ @Override
+ public int getCurrentVersion() {
+ try {
+ return versionCache.get("currentversion");
+ }catch (Exception ee){
+ throw new RuntimeException(ee);
+ }
+ }
+
+ @Override
+ public void invalidate() {
+ versionCache.invalidateAll();
+ }
+
@Override
public Collection<MultiTennantColumnFamilyDefinition> getColumnFamilies() {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/AllEntitiesInSystemObservable.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/AllEntitiesInSystemObservable.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/AllEntitiesInSystemObservable.java
index 1ec017e..bc6021c 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/AllEntitiesInSystemObservable.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/AllEntitiesInSystemObservable.java
@@ -20,6 +20,8 @@
package org.apache.usergrid.persistence.core.rx;
import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.model.entity.Id;
import rx.Observable;
@@ -36,5 +38,7 @@ public interface AllEntitiesInSystemObservable {
* you may be more than 1 ApplicationEntityGroup with the same application and different ids
*/
public Observable<ApplicationEntityGroup> getAllEntitiesInSystem(final int bufferSize);
+
+
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/ApplicationEntityGroup.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/ApplicationEntityGroup.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/ApplicationEntityGroup.java
index a767f4a..9b2d7e4 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/ApplicationEntityGroup.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/ApplicationEntityGroup.java
@@ -29,12 +29,11 @@ import java.util.List;
*/
public final class ApplicationEntityGroup {
public final ApplicationScope applicationScope;
- public final List<Id> entityIds;
+ public final List<EntityIdScope> entityIds;
- public ApplicationEntityGroup(final ApplicationScope applicationScope, final List<Id> entityIds) {
+ public ApplicationEntityGroup(final ApplicationScope applicationScope, final List<EntityIdScope> entityIds) {
this.applicationScope = applicationScope;
this.entityIds = entityIds;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/EntityIdScope.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/EntityIdScope.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/EntityIdScope.java
new file mode 100644
index 0000000..554c150
--- /dev/null
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/scope/EntityIdScope.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * * 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.scope;
+
+import org.apache.usergrid.persistence.model.entity.Id;
+
+/**
+ * Tuple containing collectionscope and entityid
+ */
+public class EntityIdScope{
+ private final Id id;
+ private final ApplicationScope collectionScope;
+
+ public EntityIdScope(Id id, ApplicationScope collectionScope){
+ this.id = id;
+ this.collectionScope = collectionScope;
+ }
+
+
+ public Id getId() {
+ return id;
+ }
+
+ public ApplicationScope getCollectionScope() {
+ return collectionScope;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/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 bf8678f..c12adea 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
@@ -30,6 +30,7 @@ import java.util.Set;
import org.apache.usergrid.persistence.core.rx.AllEntitiesInSystemObservable;
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.junit.Test;
import org.mockito.invocation.InvocationOnMock;
@@ -61,7 +62,7 @@ public class DataMigrationManagerImplTest {
return Observable.create(new Observable.OnSubscribe<ApplicationEntityGroup>() {
@Override
public void call(Subscriber<? super ApplicationEntityGroup> subscriber) {
- ApplicationEntityGroup entityGroup = new ApplicationEntityGroup(mock(ApplicationScope.class),new ArrayList<Id>());
+ ApplicationEntityGroup entityGroup = new ApplicationEntityGroup(mock(ApplicationScope.class),new ArrayList<EntityIdScope>());
subscriber.onNext(entityGroup);
subscriber.onCompleted();
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/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 cfece16..7ddde13 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
@@ -25,6 +25,7 @@ import com.netflix.astyanax.MutationBatch;
import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
import org.apache.usergrid.persistence.core.migration.data.DataMigration;
import org.apache.usergrid.persistence.core.scope.ApplicationEntityGroup;
+import org.apache.usergrid.persistence.core.scope.EntityIdScope;
import org.apache.usergrid.persistence.graph.Edge;
import org.apache.usergrid.persistence.graph.GraphManager;
import org.apache.usergrid.persistence.graph.GraphManagerFactory;
@@ -76,11 +77,11 @@ public class EdgeDataMigrationImpl implements DataMigration {
Observable
.from(applicationEntityGroup.entityIds)
- .flatMap(new Func1<Id, Observable<List<Edge>>>() {
+ .flatMap(new Func1<EntityIdScope, Observable<List<Edge>>>() {
//for each id in the group, get it's edges
@Override
- public Observable<List<Edge>> call(final Id id) {
- logger.info("Migrating edges from node {} in scope {}", id,
+ public Observable<List<Edge>> call(final EntityIdScope idScope) {
+ logger.info("Migrating edges from node {} in scope {}", idScope.getId(),
applicationEntityGroup.applicationScope);
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ea680f1a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/EntityMap.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/EntityMap.java b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/EntityMap.java
index 59a2439..5dbd1fb 100644
--- a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/EntityMap.java
+++ b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/EntityMap.java
@@ -30,24 +30,28 @@ public class EntityMap extends HashMap<String,Object> {
@JsonIgnore
public Id getId(){
- return new SimpleId((UUID)get(ID_KEY), (String)get(TYPE_KEY));
+ return containsKey(ID_KEY) ? new SimpleId((UUID)get(ID_KEY), (String)get(TYPE_KEY)):null;
}
@JsonIgnore
public void setId(Id id){
- put(ID_KEY,id.getUuid());
- put(TYPE_KEY,id.getType());
+ if(id!=null) {
+ put(ID_KEY, id.getUuid());
+ put(TYPE_KEY, id.getType());
+ }
}
@JsonIgnore
public UUID getVersion(){
- return (UUID) get(VERSION_KEY);
+ return containsKey(VERSION_KEY) ? (UUID) get(VERSION_KEY):null;
}
@JsonIgnore
public void setVersion(UUID version){
- put(VERSION_KEY,version);
+ if(version!=null) {
+ put(VERSION_KEY, version);
+ }
}
public static EntityMap fromEntity(Entity entity) {