You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/03/25 01:13:09 UTC
[4/4] incubator-usergrid git commit: Work in progress. Initial
interface changes complete.
Work in progress. Initial interface changes complete.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/a849912b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/a849912b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/a849912b
Branch: refs/heads/USERGRID-509
Commit: a849912b44d36231c165fa8789d965f84c9c576d
Parents: adf19ed
Author: Todd Nine <tn...@apigee.com>
Authored: Tue Mar 24 18:13:04 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Tue Mar 24 18:13:04 2015 -0600
----------------------------------------------------------------------
.../collection/CollectionMembers.java | 72 ++++++++++++++++++++
.../collection/EntityCollectionManager.java | 8 +--
.../persistence/collection/ScopeSet.java | 42 +++++++-----
.../cache/CachedEntityCollectionManager.java | 6 +-
.../exception/CollectionRuntimeException.java | 2 +-
.../impl/EntityCollectionManagerImpl.java | 26 ++++---
.../mvcc/MvccLogEntrySerializationStrategy.java | 4 +-
.../mvcc/stage/write/WriteUniqueVerify.java | 27 +++++---
.../MvccEntitySerializationStrategy.java | 4 +-
.../UniqueValueSerializationStrategy.java | 6 +-
.../MvccEntitySerializationStrategyImpl.java | 13 ++--
...vccEntitySerializationStrategyProxyImpl.java | 4 +-
.../MvccEntitySerializationStrategyV3Impl.java | 18 ++---
.../MvccLogEntrySerializationStrategyImpl.java | 17 ++---
.../serialization/impl/ScopeSetImpl.java | 67 ------------------
15 files changed, 164 insertions(+), 152 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/CollectionMembers.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/CollectionMembers.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/CollectionMembers.java
new file mode 100644
index 0000000..11cf39a
--- /dev/null
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/CollectionMembers.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. 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.
+ */
+
+package org.apache.usergrid.persistence.collection;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.apache.usergrid.persistence.model.entity.Id;
+
+
+/**
+ * A set that contains the collection scope and the ids
+ */
+public class CollectionMembers<T> {
+
+
+ public final CollectionScope scope;
+ public final Collection<T> identifiers;
+
+
+ public CollectionMembers( final CollectionScope scope, final Collection<T> identifiers ) {
+ this.scope = scope;
+ this.identifiers = identifiers;
+ }
+
+
+ public CollectionMembers( final CollectionScope scope, final T identifier ) {
+ this.scope = scope;
+ this.identifiers = Collections.singleton( identifier );
+ }
+
+
+
+ public CollectionMembers( final CollectionScope scope ) {
+ this.scope = scope;
+ this.identifiers = new ArrayList<>( );
+ }
+
+
+ public CollectionScope getScope() {
+ return scope;
+ }
+
+
+ public Collection<T> getIdentifiers() {
+ return identifiers;
+ }
+
+
+ public void addIdentifier( final T identifier ) {
+ this.identifiers.add( identifier );
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntityCollectionManager.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntityCollectionManager.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntityCollectionManager.java
index 3a13b77..0e5fa33 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntityCollectionManager.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntityCollectionManager.java
@@ -57,9 +57,9 @@ public interface EntityCollectionManager {
/**
* Return the latest versions of the specified entityIds
*
- * @param entityId A collection of scopes with the entity Ids set
+ * @param entityIds A collection of scopes with the entity Ids set
*/
- Observable<VersionSet> getLatestVersion( Collection<ScopeSet<Id>> entityId );
+ Observable<VersionSet> getLatestVersion( ScopeSet<Id> entityIds );
/**
@@ -67,7 +67,7 @@ public interface EntityCollectionManager {
* @param fields The collection of scopes for fields to use
* @return
*/
- Observable<FieldSet> getEntitiesFromFields( Collection<ScopeSet<Field>> fields );
+ Observable<FieldSet> getEntitiesFromFields( ScopeSet<Field> fields );
/**
* Gets the Id for a field
@@ -84,7 +84,7 @@ public interface EntityCollectionManager {
*
* @param entityIds The entity ids
*/
- Observable<EntitySet> load(Collection<ScopeSet<Id>> entityIds);
+ Observable<EntitySet> load(ScopeSet<Id> entityIds);
/**
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/ScopeSet.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/ScopeSet.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/ScopeSet.java
index 059c7cb..ebcd927 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/ScopeSet.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/ScopeSet.java
@@ -20,31 +20,39 @@
package org.apache.usergrid.persistence.collection;
-import java.util.Collection;
-
-import org.apache.usergrid.persistence.model.entity.Id;
+import java.util.HashMap;
+import java.util.Map;
/**
- * A set that contains the collection scope and the ids
+ * A set of scopes, keyed by collectionScope.
+ *
+ * @param <T> The type of value to encapsulate within the scope. Examples would be Id objects or Fields
*/
-public interface ScopeSet<T> {
+public class ScopeSet<T> {
+
+ private Map<CollectionScope, CollectionMembers<T>> members = new HashMap<>( );
- /**
- * Get the scope for this set of ids
- * @return
- */
- CollectionScope getScope();
/**
- * Get the set of Ids to load for this scope
+ * A factory method to generate a collection member with the given scope. If one exists, it will be returned
+ * @param scope
* @return
*/
- Collection<T> getIdentifiers();
+ public CollectionMembers<T> getMembers(final CollectionScope scope){
+ final CollectionMembers<T> existing = members.get( scope );
+
+ if(existing != null){
+ return existing;
+ }
+
+ final CollectionMembers<T> newInstance = new CollectionMembers<T>( scope );
+
+ members.put( scope, newInstance );
+
+ return newInstance;
+ }
+
+
- /**
- * Add the itentifier to the list
- * @param identifier
- */
- void addIdentifier(T identifier);
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/cache/CachedEntityCollectionManager.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/cache/CachedEntityCollectionManager.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/cache/CachedEntityCollectionManager.java
index 20a269b..823cbc7 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/cache/CachedEntityCollectionManager.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/cache/CachedEntityCollectionManager.java
@@ -70,7 +70,7 @@ public class CachedEntityCollectionManager implements EntityCollectionManager {
}
@Override
- public Observable<FieldSet> getEntitiesFromFields( final Collection<ScopeSet<Field>> fields ) {
+ public Observable<FieldSet> getEntitiesFromFields( final Collection<CollectionMembers<Field>> fields ) {
return targetEntityCollectionManager.getEntitiesFromFields( fields );
}
@@ -105,7 +105,7 @@ public class CachedEntityCollectionManager implements EntityCollectionManager {
@Override
- public Observable<VersionSet> getLatestVersion( final Collection<ScopeSet<Id>> entityId ) {
+ public Observable<VersionSet> getLatestVersion( final Collection<CollectionMembers<Id>> entityId ) {
return targetEntityCollectionManager.getLatestVersion( entityId );
}
@@ -117,7 +117,7 @@ public class CachedEntityCollectionManager implements EntityCollectionManager {
@Override
- public Observable<EntitySet> load( final Collection<ScopeSet<Id>> entityIds ) {
+ public Observable<EntitySet> load( final Collection<CollectionMembers<Id>> entityIds ) {
return targetEntityCollectionManager.load( entityIds );
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/exception/CollectionRuntimeException.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/exception/CollectionRuntimeException.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/exception/CollectionRuntimeException.java
index fc4cac5..69f4dee 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/exception/CollectionRuntimeException.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/exception/CollectionRuntimeException.java
@@ -23,7 +23,7 @@ import org.apache.usergrid.persistence.collection.MvccEntity;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
-public class CollectionRuntimeException extends RuntimeException {
+public abstract class CollectionRuntimeException extends RuntimeException {
private MvccEntity entity;
private ApplicationScope applicationScope;
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
index 9453c65..007fc5c 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
@@ -19,11 +19,8 @@
package org.apache.usergrid.persistence.collection.impl;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,7 +32,7 @@ import org.apache.usergrid.persistence.collection.EntityCollectionManager;
import org.apache.usergrid.persistence.collection.EntitySet;
import org.apache.usergrid.persistence.collection.FieldSet;
import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.ScopeSet;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.collection.VersionSet;
import org.apache.usergrid.persistence.collection.guice.CollectionTaskExecutor;
import org.apache.usergrid.persistence.collection.mvcc.MvccLogEntrySerializationStrategy;
@@ -51,8 +48,7 @@ import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerial
import org.apache.usergrid.persistence.collection.serialization.UniqueValue;
import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy;
import org.apache.usergrid.persistence.collection.serialization.UniqueValueSet;
-import org.apache.usergrid.persistence.collection.serialization.impl.MutableFieldSet;
-import org.apache.usergrid.persistence.collection.serialization.impl.ScopeSetImpl;
+import org.apache.usergrid.persistence.collection.serialization.impl.CollectionMembersImpl;
import org.apache.usergrid.persistence.core.guice.ProxyImpl;
import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
@@ -71,7 +67,6 @@ import com.google.common.base.Preconditions;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import com.netflix.astyanax.Keyspace;
-import com.netflix.astyanax.MutationBatch;
import com.netflix.astyanax.connectionpool.OperationResult;
import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
import com.netflix.astyanax.model.ColumnFamily;
@@ -281,9 +276,10 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager {
final Timer.Context timer = loadTimer.time();
- final ScopeSet<Id> entityScopeSet = new ScopeSetImpl<>( collectionScope, Collections.singleton( entityId ) );
+ final CollectionMembers<Id>
+ entityCollectionMembers = new CollectionMembersImpl<>( collectionScope, Collections.singleton( entityId ) );
- return load( Collections.singleton( entityScopeSet) ).flatMap(new Func1<EntitySet, Observable<Entity>>() {
+ return load( Collections.singleton( entityCollectionMembers ) ).flatMap(new Func1<EntitySet, Observable<Entity>>() {
@Override
public Observable<Entity> call(final EntitySet entitySet) {
final MvccEntity entity = entitySet.getEntity(entityId);
@@ -314,7 +310,7 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager {
@Override
- public Observable<EntitySet> load( final Collection<ScopeSet<Id>> entityIds ) {
+ public Observable<EntitySet> load( final Collection<CollectionMembers<Id>> entityIds ) {
Preconditions.checkNotNull( entityIds, "entityIds cannot be null" );
@@ -359,8 +355,10 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager {
public Id call( Field field ) {
try {
- final ScopeSet<Field> scopeSet = new ScopeSetImpl<>( collectionScope, field );
- final UniqueValueSet set = uniqueValueSerializationStrategy.load(applicationScope, Collections.singleton( scopeSet ) );
+ final CollectionMembers<Field>
+ collectionMembers = new CollectionMembersImpl<>( collectionScope, field );
+ final UniqueValueSet set = uniqueValueSerializationStrategy.load(applicationScope, Collections.singleton(
+ collectionMembers ) );
final UniqueValue value = set.getValue(collectionScope, field.getName() );
return value == null ? null : value.getEntityId();
}
@@ -379,7 +377,7 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager {
* @return
*/
@Override
- public Observable<FieldSet> getEntitiesFromFields( final Collection<ScopeSet<Field>> fields ) {
+ public Observable<FieldSet> getEntitiesFromFields( final Collection<CollectionMembers<Field>> fields ) {
// return rx.Observable.just(fields).map( new Func1<Collection<ScopeSet<Field>>, FieldSet>() {
// @Override
// public FieldSet call( Collection<ScopeSet<Field>> fields ) {
@@ -508,7 +506,7 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager {
@Override
- public Observable<VersionSet> getLatestVersion( final Collection<ScopeSet<Id>> entityIds ) {
+ public Observable<VersionSet> getLatestVersion( final Collection<CollectionMembers<Id>> entityIds ) {
final Timer.Context timer = getLatestTimer.time();
return Observable.create( new Observable.OnSubscribe<VersionSet>() {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/MvccLogEntrySerializationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/MvccLogEntrySerializationStrategy.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/MvccLogEntrySerializationStrategy.java
index 9f85f8c..daf9ee1 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/MvccLogEntrySerializationStrategy.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/MvccLogEntrySerializationStrategy.java
@@ -25,7 +25,7 @@ import java.util.UUID;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.MvccLogEntry;
-import org.apache.usergrid.persistence.collection.ScopeSet;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.collection.VersionSet;
import org.apache.usergrid.persistence.core.migration.schema.Migration;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
@@ -59,7 +59,7 @@ public interface MvccLogEntrySerializationStrategy extends Migration {
*
* @return The deserialized version of the log entry
*/
- VersionSet load( ApplicationScope applicationScope, Collection<ScopeSet<Id>> entityIds, UUID version );
+ VersionSet load( ApplicationScope applicationScope, Collection<CollectionMembers<Id>> entityIds, UUID version );
/**
* Load a list, from highest to lowest of the stage with versions <= version up to maxSize elements
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
index a881cbb..12c11a0 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
@@ -19,6 +19,8 @@ package org.apache.usergrid.persistence.collection.mvcc.stage.write;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -28,8 +30,8 @@ import com.netflix.hystrix.HystrixCommand;
import com.netflix.hystrix.HystrixCommandGroupKey;
import com.netflix.hystrix.HystrixThreadPoolProperties;
-import org.apache.usergrid.persistence.collection.ScopeSet;
-import org.apache.usergrid.persistence.collection.serialization.impl.ScopeSetImpl;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
+import org.apache.usergrid.persistence.collection.serialization.impl.CollectionMembersImpl;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.model.util.EntityUtils;
import org.apache.usergrid.persistence.core.astyanax.CassandraConfig;
@@ -155,18 +157,18 @@ public class WriteUniqueVerify implements Action1<CollectionIoEvent<MvccEntity>>
private final UniqueValueSerializationStrategy uniqueValueSerializationStrategy;
private final CassandraConfig fig;
private final ApplicationScope applicationScope;
-// private final CollectionScope scope;
- private final ScopeSet<Field> uniqueFields;
+ private final CollectionScope collectionScope;
+ private final Collection<Field> uniqueFields;
private final Entity entity;
public ConsistentReplayCommand( UniqueValueSerializationStrategy uniqueValueSerializationStrategy,
- CassandraConfig fig, final ApplicationScope applicationScope, CollectionScope
- scope, List<Field> uniqueFields, Entity entity ){
+ CassandraConfig fig, final ApplicationScope applicationScope, final CollectionScope collectionScope, Collection<Field> uniqueFields, Entity entity ){
super(REPLAY_GROUP);
this.uniqueValueSerializationStrategy = uniqueValueSerializationStrategy;
this.fig = fig;
this.applicationScope = applicationScope;
- uniqueFields = new ScopeSetImpl<Field>(scope, uniqueFields);
+ this.collectionScope = collectionScope;
+ this.uniqueFields = uniqueFields;
this.entity = entity;
}
@@ -184,8 +186,14 @@ public class WriteUniqueVerify implements Action1<CollectionIoEvent<MvccEntity>>
//allocate our max size, worst case
//now get the set of fields back
final UniqueValueSet uniqueValues;
+
+ final CollectionMembers<Field>
+ collectionMembers = new CollectionMembersImpl<Field>( collectionScope, uniqueFields );
+
try {
- uniqueValues = uniqueValueSerializationStrategy.load( applicationScope, scope,consistencyLevel, uniqueFields );
+
+ uniqueValues = uniqueValueSerializationStrategy.load( applicationScope ,consistencyLevel,
+ Collections.singleton( collectionMembers ));
}
catch ( ConnectionException e ) {
throw new RuntimeException( "Unable to read from cassandra", e );
@@ -196,7 +204,8 @@ public class WriteUniqueVerify implements Action1<CollectionIoEvent<MvccEntity>>
//loop through each field that was unique
for ( final Field field : uniqueFields ) {
- final UniqueValue uniqueValue = uniqueValues.getValue( field.getName() );
+
+ final UniqueValue uniqueValue = uniqueValues.getValue( collectionScope, field.getName() );
if ( uniqueValue == null ) {
throw new RuntimeException(
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/MvccEntitySerializationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/MvccEntitySerializationStrategy.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/MvccEntitySerializationStrategy.java
index 65be537..84b0a7e 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/MvccEntitySerializationStrategy.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/MvccEntitySerializationStrategy.java
@@ -26,7 +26,7 @@ import java.util.UUID;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.EntitySet;
import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.ScopeSet;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.core.migration.data.VersionedData;
import org.apache.usergrid.persistence.core.migration.schema.Migration;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
@@ -57,7 +57,7 @@ public interface MvccEntitySerializationStrategy extends Migration, VersionedDat
* @param entityIds
* @return
*/
- public EntitySet load(ApplicationScope applicationScope, Collection<ScopeSet<Id>> entityIds, UUID maxVersion);
+ public EntitySet load(ApplicationScope applicationScope, Collection<CollectionMembers<Id>> entityIds, UUID maxVersion);
/**
* Load a list, from highest to lowest of the entity with versions <= version up to maxSize elements
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/UniqueValueSerializationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/UniqueValueSerializationStrategy.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/UniqueValueSerializationStrategy.java
index ab1f24b..9bcbde3 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/UniqueValueSerializationStrategy.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/UniqueValueSerializationStrategy.java
@@ -25,7 +25,7 @@ import com.netflix.astyanax.MutationBatch;
import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
import com.netflix.astyanax.model.ConsistencyLevel;
import org.apache.usergrid.persistence.collection.CollectionScope;
-import org.apache.usergrid.persistence.collection.ScopeSet;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.core.migration.schema.Migration;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.model.entity.Id;
@@ -65,7 +65,7 @@ public interface UniqueValueSerializationStrategy extends Migration {
*
* @throws ConnectionException on error connecting to Cassandra
*/
- UniqueValueSet load(ApplicationScope applicationScope, Collection<ScopeSet<Field>> fields ) throws ConnectionException;
+ UniqueValueSet load(ApplicationScope applicationScope, Collection<CollectionMembers<Field>> fields ) throws ConnectionException;
/**
* Load UniqueValue that matches field from collection or null if that value does not exist.
@@ -76,7 +76,7 @@ public interface UniqueValueSerializationStrategy extends Migration {
* @return UniqueValueSet containing fields from the collection that exist in cassandra
* @throws ConnectionException on error connecting to Cassandra
*/
- UniqueValueSet load(ApplicationScope applicationScope, ConsistencyLevel consistencyLevel, Collection<ScopeSet<Field>> fields ) throws ConnectionException;
+ UniqueValueSet load(ApplicationScope applicationScope, ConsistencyLevel consistencyLevel, Collection<CollectionMembers<Field>> fields ) throws ConnectionException;
/**
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
index bfabf60..c1806da 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
@@ -35,8 +35,7 @@ import org.apache.cassandra.db.marshal.UUIDType;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.EntitySet;
import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.ScopeSet;
-import org.apache.usergrid.persistence.collection.exception.CollectionRuntimeException;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.collection.exception.DataCorruptionException;
import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
@@ -114,7 +113,7 @@ public abstract class MvccEntitySerializationStrategyImpl implements MvccEntityS
@Override
- public EntitySet load(final ApplicationScope applicationScope, final Collection<ScopeSet<Id>> entityIds,
+ public EntitySet load(final ApplicationScope applicationScope, final Collection<CollectionMembers<Id>> entityIds,
final UUID maxVersion ) {
@@ -177,8 +176,7 @@ public abstract class MvccEntitySerializationStrategyImpl implements MvccEntityS
.withColumnRange( maxVersion, null, false, 1 ).execute().getResult();
}
catch ( ConnectionException e ) {
- throw new CollectionRuntimeException( null, applicationScope,
- "An error occurred connecting to cassandra", e );
+ throw new RuntimeException("An error occurred connecting to cassandra", e );
}
} ).subscribeOn( scheduler );
}, 10 )
@@ -279,8 +277,9 @@ public abstract class MvccEntitySerializationStrategyImpl implements MvccEntityS
@Override
public Optional<MvccEntity> load( final ApplicationScope applicationScope, final CollectionScope scope, final Id entityId ) {
- final ScopeSet<Id> scopeSet = new ScopeSetImpl<>( scope, Collections.singleton( entityId ) );
- final EntitySet results = load(applicationScope, Collections.singleton( scopeSet ) , UUIDGenerator.newTimeUUID() );
+ final CollectionMembers<Id>
+ collectionMembers = new CollectionMembersImpl<>( scope, Collections.singleton( entityId ) );
+ final EntitySet results = load(applicationScope, Collections.singleton( collectionMembers ) , UUIDGenerator.newTimeUUID() );
return Optional.fromNullable( results.getEntity( entityId ));
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/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 4d60f5d..cb2f89e 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
@@ -25,7 +25,7 @@ import java.util.UUID;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.EntitySet;
import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.ScopeSet;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
import org.apache.usergrid.persistence.collection.serialization.impl.migration.CollectionMigrationPlugin;
import org.apache.usergrid.persistence.core.astyanax.MultiTennantColumnFamilyDefinition;
@@ -84,7 +84,7 @@ public class MvccEntitySerializationStrategyProxyImpl implements MvccEntitySeria
@Override
- public EntitySet load( final ApplicationScope applicationScope, final Collection<ScopeSet<Id>> entityIds, final UUID maxVersion ) {
+ public EntitySet load( final ApplicationScope applicationScope, final Collection<CollectionMembers<Id>> entityIds, final UUID maxVersion ) {
final MigrationRelationship<MvccEntitySerializationStrategy> migration = getMigrationRelationShip();
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
index 7b6124e..110311b 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
@@ -18,8 +18,7 @@ import org.apache.cassandra.db.marshal.BytesType;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.EntitySet;
import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.ScopeSet;
-import org.apache.usergrid.persistence.collection.exception.CollectionRuntimeException;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.collection.exception.DataCorruptionException;
import org.apache.usergrid.persistence.collection.exception.EntityTooLargeException;
import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
@@ -54,14 +53,11 @@ import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
import com.netflix.astyanax.model.Column;
import com.netflix.astyanax.model.ColumnList;
import com.netflix.astyanax.model.Row;
-import com.netflix.astyanax.model.Rows;
import com.netflix.astyanax.serializers.AbstractSerializer;
import com.netflix.astyanax.serializers.BooleanSerializer;
import rx.Observable;
import rx.Scheduler;
-import rx.functions.Func1;
-import rx.functions.Func2;
import rx.schedulers.Schedulers;
@@ -123,7 +119,7 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
@Override
- public EntitySet load( final ApplicationScope applicationScope, final Collection<ScopeSet<Id>> entityIds,
+ public EntitySet load( final ApplicationScope applicationScope, final Collection<CollectionMembers<Id>> entityIds,
final UUID maxVersion ) {
@@ -144,7 +140,7 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
final List<ScopedRowKey<CollectionPrefixedKey<Id>>> rowKeys = new ArrayList<>( entityIds.size() );
- for(ScopeSet<Id> collectionScope: entityIds) {
+ for(CollectionMembers<Id> collectionScope: entityIds) {
final Id ownerId = collectionScope.getScope().getOwner();
final String collectionName = collectionScope.getScope().getName();
@@ -206,8 +202,7 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
.withColumnSlice( COL_VALUE ).execute().getResult();
}
catch ( ConnectionException e ) {
- throw new CollectionRuntimeException( null, applicationScope,
- "An error occurred connecting to cassandra", e );
+ throw new RuntimeException("An error occurred connecting to cassandra", e );
}
} ).subscribeOn( scheduler );
}, 10 )
@@ -278,9 +273,10 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
public Optional<MvccEntity> load( final ApplicationScope applicationScope, final CollectionScope scope, final Id entityId ) {
- final ScopeSet<Id> scopeSet = new ScopeSetImpl<>( scope, Collections.singleton( entityId ) );
+ final CollectionMembers<Id>
+ collectionMembers = new CollectionMembersImpl<>( scope, Collections.singleton( entityId ) );
- final EntitySet results = load( applicationScope, Collections.singleton( scopeSet ), UUIDGenerator.newTimeUUID() );
+ final EntitySet results = load( applicationScope, Collections.singleton( collectionMembers ), UUIDGenerator.newTimeUUID() );
return Optional.fromNullable( results.getEntity( entityId ));
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccLogEntrySerializationStrategyImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccLogEntrySerializationStrategyImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccLogEntrySerializationStrategyImpl.java
index 4e71e38..8a628b6 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccLogEntrySerializationStrategyImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccLogEntrySerializationStrategyImpl.java
@@ -38,9 +38,8 @@ import org.apache.cassandra.db.marshal.UUIDType;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.MvccLogEntry;
-import org.apache.usergrid.persistence.collection.ScopeSet;
+import org.apache.usergrid.persistence.collection.CollectionMembers;
import org.apache.usergrid.persistence.collection.VersionSet;
-import org.apache.usergrid.persistence.collection.exception.CollectionRuntimeException;
import org.apache.usergrid.persistence.collection.mvcc.MvccLogEntrySerializationStrategy;
import org.apache.usergrid.persistence.collection.mvcc.entity.Stage;
import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccLogEntryImpl;
@@ -49,7 +48,6 @@ import org.apache.usergrid.persistence.core.astyanax.IdRowCompositeSerializer;
import org.apache.usergrid.persistence.core.astyanax.MultiTennantColumnFamily;
import org.apache.usergrid.persistence.core.astyanax.MultiTennantColumnFamilyDefinition;
import org.apache.usergrid.persistence.core.astyanax.ScopedRowKey;
-import org.apache.usergrid.persistence.core.migration.schema.Migration;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.model.entity.Id;
@@ -128,7 +126,7 @@ public class MvccLogEntrySerializationStrategyImpl implements MvccLogEntrySerial
@Override
- public VersionSet load( final ApplicationScope applicationScope, final Collection<ScopeSet<Id>> entityIds,
+ public VersionSet load( final ApplicationScope applicationScope, final Collection<CollectionMembers<Id>> entityIds,
final UUID maxVersion ) {
Preconditions.checkNotNull( applicationScope, "applicationScope is required" );
Preconditions.checkNotNull( entityIds, "entityIds is required" );
@@ -148,11 +146,11 @@ public class MvccLogEntrySerializationStrategyImpl implements MvccLogEntrySerial
final List<ScopedRowKey<CollectionPrefixedKey<Id>>> rowKeys = new ArrayList<>( entityIds.size() );
- for(ScopeSet<Id> scopeSet: entityIds) {
- final Id ownerId = scopeSet.getScope().getOwner();
- final String collectionName = scopeSet.getScope().getName();
+ for(CollectionMembers<Id> collectionMembers : entityIds) {
+ final Id ownerId = collectionMembers.getScope().getOwner();
+ final String collectionName = collectionMembers.getScope().getName();
- for ( final Id entityId : scopeSet.getIdentifiers() ) {
+ for ( final Id entityId : collectionMembers.getIdentifiers() ) {
final CollectionPrefixedKey<Id> collectionPrefixedKey =
new CollectionPrefixedKey<>( collectionName, ownerId, entityId );
@@ -175,8 +173,7 @@ public class MvccLogEntrySerializationStrategyImpl implements MvccLogEntrySerial
.iterator();
}
catch ( ConnectionException e ) {
- throw new CollectionRuntimeException( null, applicationScope, "An error occurred connecting to cassandra",
- e );
+ throw new RuntimeException( "An error occurred connecting to cassandra", e );
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a849912b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/ScopeSetImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/ScopeSetImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/ScopeSetImpl.java
deleted file mode 100644
index 98abb4b..0000000
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/ScopeSetImpl.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. 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.
- */
-
-package org.apache.usergrid.persistence.collection.serialization.impl;
-
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.usergrid.persistence.collection.CollectionScope;
-import org.apache.usergrid.persistence.collection.ScopeSet;
-
-
-public class ScopeSetImpl<T> implements ScopeSet<T> {
-
-
- public final CollectionScope scope;
- public final Collection<T> identifiers;
-
-
- public ScopeSetImpl( final CollectionScope scope, final Collection<T> identifiers ) {
- this.scope = scope;
- this.identifiers = identifiers;
- }
-
-
- public ScopeSetImpl( final CollectionScope scope, final T identifier ) {
- this.scope = scope;
- this.identifiers = Collections.singleton(identifier);
- }
-
-
-
- @Override
- public CollectionScope getScope() {
- return scope;
- }
-
-
- @Override
- public Collection<T> getIdentifiers() {
- return identifiers;
- }
-
-
- @Override
- public void addIdentifier( final T identifier ) {
- this.identifiers.add( identifier );
- }
-}