You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by gr...@apache.org on 2015/03/12 00:52:16 UTC
[1/3] incubator-usergrid git commit: Added getAllEntityFromField to
the entity manager so we can expose it in the service tier.
Repository: incubator-usergrid
Updated Branches:
refs/heads/USERGRID-396 acde0e4b9 -> c872b694e
Added getAllEntityFromField to the entity manager so we can expose it in the service tier.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/d4eb288c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/d4eb288c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/d4eb288c
Branch: refs/heads/USERGRID-396
Commit: d4eb288c8a04bf73e79b64d1a06d12fca11260ee
Parents: acde0e4
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 11 09:57:11 2015 -0700
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 11 09:57:11 2015 -0700
----------------------------------------------------------------------
.../apache/usergrid/corepersistence/CpEntityManager.java | 7 ++++++-
.../org/apache/usergrid/persistence/EntityManager.java | 9 ++++++++-
.../persistence/cassandra/EntityManagerImpl.java | 11 +++++++++++
3 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4eb288c/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 5619382..4b62fbe 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -33,6 +33,7 @@ import java.util.TreeMap;
import java.util.TreeSet;
import java.util.UUID;
+import org.apache.usergrid.persistence.collection.FieldSet;
import org.apache.usergrid.persistence.core.future.BetterFuture;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -500,7 +501,6 @@ public class CpEntityManager implements EntityManager {
CollectionScope collectionScope = getCollectionScopeNameFromEntityType(appId, type );
EntityCollectionManager ecm = managerCache.getEntityCollectionManager( collectionScope );
-
Id entityId = new SimpleId( entity.getUuid(), entity.getType() );
if ( logger.isDebugEnabled() ) {
@@ -729,6 +729,11 @@ public class CpEntityManager implements EntityManager {
create( entityType, null );
}
+ @Override
+ public Observable<FieldSet> getAllEntityFromFields(CollectionScope collectionScope,Collection<Field> fields){
+ EntityCollectionManager ecm = managerCache.getEntityCollectionManager( collectionScope );
+ return ecm.getAllEntities( fields );
+ }
@Override
public EntityRef getAlias( String aliasType, String alias ) throws Exception {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4eb288c/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
index 4054d77..459032c 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
@@ -17,6 +17,8 @@
package org.apache.usergrid.persistence;
+import org.apache.usergrid.persistence.collection.CollectionScope;
+import org.apache.usergrid.persistence.collection.FieldSet;
import org.apache.usergrid.persistence.index.query.Query;
import java.nio.ByteBuffer;
import java.util.Collection;
@@ -25,6 +27,7 @@ import java.util.Map;
import java.util.Set;
import java.util.UUID;
import me.prettyprint.hector.api.mutation.Mutator;
+import rx.Observable;
import org.apache.usergrid.persistence.cassandra.CassandraService;
import org.apache.usergrid.persistence.cassandra.GeoIndexManager;
@@ -34,6 +37,7 @@ import org.apache.usergrid.persistence.entities.Role;
import org.apache.usergrid.persistence.index.query.CounterResolution;
import org.apache.usergrid.persistence.index.query.Identifier;
import org.apache.usergrid.persistence.index.query.Query.Level;
+import org.apache.usergrid.persistence.model.field.Field;
/**
@@ -712,4 +716,7 @@ public interface EntityManager {
* Get health status of application's index.
*/
public Health getIndexHealth();
-}
+
+ public Observable<FieldSet> getAllEntityFromFields(CollectionScope collectionScope,Collection<Field> fields);
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4eb288c/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
index be43920..adf106a 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
@@ -69,6 +69,8 @@ import org.apache.usergrid.persistence.SimpleRoleRef;
import org.apache.usergrid.persistence.TypedEntity;
import org.apache.usergrid.persistence.cassandra.CounterUtils.AggregateCounterSelection;
import org.apache.usergrid.persistence.cassandra.util.TraceParticipant;
+import org.apache.usergrid.persistence.collection.CollectionScope;
+import org.apache.usergrid.persistence.collection.FieldSet;
import org.apache.usergrid.persistence.entities.Application;
import org.apache.usergrid.persistence.entities.Event;
import org.apache.usergrid.persistence.entities.Group;
@@ -83,6 +85,7 @@ import org.apache.usergrid.persistence.index.query.Identifier;
import org.apache.usergrid.persistence.index.query.Query;
import org.apache.usergrid.persistence.index.query.Query.CounterFilterPredicate;
import org.apache.usergrid.persistence.index.query.Query.Level;
+import org.apache.usergrid.persistence.model.field.Field;
import org.apache.usergrid.persistence.schema.CollectionInfo;
import org.apache.usergrid.utils.ClassUtils;
import org.apache.usergrid.utils.CompositeUtils;
@@ -107,6 +110,7 @@ import me.prettyprint.hector.api.mutation.Mutator;
import me.prettyprint.hector.api.query.MultigetSliceCounterQuery;
import me.prettyprint.hector.api.query.QueryResult;
import me.prettyprint.hector.api.query.SliceCounterQuery;
+import rx.Observable;
import static java.lang.String.CASE_INSENSITIVE_ORDER;
import static java.util.Arrays.asList;
@@ -2947,4 +2951,11 @@ public class EntityManagerImpl implements EntityManager {
public Health getIndexHealth() {
return Health.GREEN; // no good way to assess index status using old-school entity manager
}
+
+
+ @Override
+ public Observable<FieldSet> getAllEntityFromFields( final CollectionScope collectionScope,
+ final Collection<Field> fields ) {
+ throw new UnsupportedOperationException( "Not supported." );
+ }
}
[2/3] incubator-usergrid git commit: Shorted to just get the Entity
by Alias. Corrected spelling Added test that does a get, delete,
get to make sure entities are removed. Refactored entities to getEntityByAlias
Added getEntityByAlias that works based off
Posted by gr...@apache.org.
Shorted to just get the Entity by Alias.
Corrected spelling
Added test that does a get,delete,get to make sure entities are removed.
Refactored entities to getEntityByAlias
Added getEntityByAlias that works based off of existing entities.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/a60d6aa3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/a60d6aa3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/a60d6aa3
Branch: refs/heads/USERGRID-396
Commit: a60d6aa31f089a8b63be7b66f1aed0224837c22b
Parents: d4eb288
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 11 15:36:11 2015 -0700
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 11 15:36:11 2015 -0700
----------------------------------------------------------------------
.../corepersistence/CpEntityManager.java | 30 ++++++++++++++++++--
.../usergrid/persistence/EntityManager.java | 4 ++-
.../cassandra/EntityManagerImpl.java | 6 ++--
.../usergrid/persistence/EntityManagerIT.java | 24 ++++++++++++++++
.../UniqueValueSerializationStrategyImpl.java | 2 +-
.../services/AbstractCollectionService.java | 14 ++++-----
6 files changed, 62 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a60d6aa3/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 4b62fbe..4ed37e5 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -730,11 +730,30 @@ public class CpEntityManager implements EntityManager {
}
@Override
- public Observable<FieldSet> getAllEntityFromFields(CollectionScope collectionScope,Collection<Field> fields){
- EntityCollectionManager ecm = managerCache.getEntityCollectionManager( collectionScope );
- return ecm.getAllEntities( fields );
+ public Observable<FieldSet> getAllEntityFromFields(String aliasType,String aliasValue ){
+ return null;
+// EntityCollectionManager ecm = managerCache.getEntityCollectionManager( aliasType );
+//
+// Schema.
+// return ecm.getAllEntities( aliasValue );
+ }
+
+ @Override
+ public Entity getEntityByAlias(String collectionType, String aliasType) throws Exception {
+
+ EntityRef newEntityRef = getAlias(collectionType,aliasType);
+
+ if(newEntityRef == null) {
+ return null;
+ }
+
+ return get( newEntityRef );
+
+
+
}
+
@Override
public EntityRef getAlias( String aliasType, String alias ) throws Exception {
@@ -2133,11 +2152,16 @@ public class CpEntityManager implements EntityManager {
getApplicationScope().getApplication(), collectionName);
final EntityCollectionManager ecm = managerCache.getEntityCollectionManager( collectionScope );
+//TODO: can't we just sub in the getEntityRepair method here so for every read of a uniqueEntityField we can verify it is correct?
//convert to a string, that's what we store
final Id results = ecm.getIdField( new StringField(
propertyName, propertyValue.toString() ) ).toBlocking() .lastOrDefault( null );
+ Observable<FieldSet> fieldSetObservable = ecm.getAllEntities( Arrays.<Field>asList( new StringField( propertyName, propertyValue.toString() ) );
+
+ FieldSet fieldSet = fieldSetObservable.toBlocking().last();
+ fieldSet.
return results;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a60d6aa3/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
index 459032c..4b85c0d 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
@@ -98,6 +98,8 @@ public interface EntityManager {
public void createApplicationCollection( String entityType ) throws Exception;
+ Entity getEntityByAlias( String collectionType, String aliasType ) throws Exception;
+
public EntityRef getAlias( String aliasType, String alias ) throws Exception;
/**
@@ -717,6 +719,6 @@ public interface EntityManager {
*/
public Health getIndexHealth();
- public Observable<FieldSet> getAllEntityFromFields(CollectionScope collectionScope,Collection<Field> fields);
+ public Observable<FieldSet> getAllEntityFromFields(String aliasType,String aliasValue );
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a60d6aa3/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
index adf106a..42a588c 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
@@ -69,7 +69,6 @@ import org.apache.usergrid.persistence.SimpleRoleRef;
import org.apache.usergrid.persistence.TypedEntity;
import org.apache.usergrid.persistence.cassandra.CounterUtils.AggregateCounterSelection;
import org.apache.usergrid.persistence.cassandra.util.TraceParticipant;
-import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.FieldSet;
import org.apache.usergrid.persistence.entities.Application;
import org.apache.usergrid.persistence.entities.Event;
@@ -85,7 +84,6 @@ import org.apache.usergrid.persistence.index.query.Identifier;
import org.apache.usergrid.persistence.index.query.Query;
import org.apache.usergrid.persistence.index.query.Query.CounterFilterPredicate;
import org.apache.usergrid.persistence.index.query.Query.Level;
-import org.apache.usergrid.persistence.model.field.Field;
import org.apache.usergrid.persistence.schema.CollectionInfo;
import org.apache.usergrid.utils.ClassUtils;
import org.apache.usergrid.utils.CompositeUtils;
@@ -2954,8 +2952,8 @@ public class EntityManagerImpl implements EntityManager {
@Override
- public Observable<FieldSet> getAllEntityFromFields( final CollectionScope collectionScope,
- final Collection<Field> fields ) {
+ public Observable<FieldSet> getAllEntityFromFields( final String aliasType,
+ final String aliasValue ) {
throw new UnsupportedOperationException( "Not supported." );
}
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a60d6aa3/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
index f8c667d..cd08607 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
@@ -44,6 +44,7 @@ import org.apache.usergrid.utils.UUIDUtils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -578,4 +579,27 @@ public class EntityManagerIT extends AbstractCoreIT {
assertNotNull( em.get( user.getUuid() ));
}
+
+ @Test
+ public void testInvalidNameRepair() throws Exception {
+ LOG.info("EntityManagerIT.testInvalidNameReapir");
+
+ EntityManager em = app.getEntityManager();
+
+ Map<String, Object> properties = new LinkedHashMap<String, Object>();
+ properties.put( "name", "XR-51B" );
+ properties.put( "fuel", "Nutrinox" );
+
+ Entity user = em.create( "robot", properties );
+ assertNotNull( user );
+
+ em.refreshIndex();
+
+ assertNotNull( em.get( user.getUuid() ));
+
+ em.delete( user );
+
+ assertNull( em.get( user.getUuid() ));
+
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a60d6aa3/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
index be95b08..cf84215 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
@@ -176,7 +176,7 @@ public class UniqueValueSerializationStrategyImpl implements UniqueValueSerializ
throws ConnectionException {
Preconditions.checkNotNull( fields, "fields are required" );
- Preconditions.checkArgument( fields.size() > 0, "More than 1 field msut be specified" );
+ Preconditions.checkArgument( fields.size() > 0, "More than 1 field must be specified" );
final List<ScopedRowKey<CollectionPrefixedKey<Field>>> keys = new ArrayList<>( fields.size() );
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a60d6aa3/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
index c3be45f..1117fbc 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
@@ -76,11 +76,7 @@ public class AbstractCollectionService extends AbstractService {
nameProperty = "name";
}
- EntityRef entityRef = em.getAlias( getEntityType(), name );
- if ( entityRef == null ) {
- return null;
- }
- Entity entity = em.get( entityRef );
+ Entity entity = em.getEntityByAlias( getEntityType(), name );
if ( entity != null ) {
entity = importEntity( request, entity );
}
@@ -152,7 +148,7 @@ public class AbstractCollectionService extends AbstractService {
nameProperty = "name";
}
- EntityRef entity = em.getAlias( getEntityType(), name );
+ EntityRef entity = em.get( getEntityType(), name );
if ( entity == null ) {
logger.info( "miss on entityType: {} with name: {}", getEntityType(), name );
@@ -178,7 +174,7 @@ public class AbstractCollectionService extends AbstractService {
/*
* Level level = Level.REFS; if (isEmpty(parameters)) {
* level = Level.ALL_PROPERTIES; }
- *
+ *
* Results results = em.searchCollectionForProperty(owner,
* getCollectionName(), null, nameProperty, name, null, null, 1, level);
* EntityRef entity = results.getRef();
@@ -248,9 +244,9 @@ public class AbstractCollectionService extends AbstractService {
}
logger.debug("Limiting collection to " + Query.DEFAULT_LIMIT);
- int count = Query.DEFAULT_LIMIT;
+ int count = Query.DEFAULT_LIMIT;
- Results r = em.getCollection( context.getOwner(), context.getCollectionName(),
+ Results r = em.getCollection( context.getOwner(), context.getCollectionName(),
null, count, Level.ALL_PROPERTIES, isCollectionReversed( context ) );
importEntities( context, r );
[3/3] incubator-usergrid git commit: [USERGRID-386] Changed over to
new method em.getAllEntityFromFields. Added unsupported messages to
EntityManagerImpl Changed type of getAllEntityFromFields Added new method to
CpEntityManager that converts a CpEntity
Posted by gr...@apache.org.
[USERGRID-386] Changed over to new method em.getAllEntityFromFields.
Added unsupported messages to EntityManagerImpl
Changed type of getAllEntityFromFields
Added new method to CpEntityManager that converts a CpEntity to a regular Entity.
Then adds method to use the getAllEntities method that repairs the entity incase it was deleted.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/c872b694
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/c872b694
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/c872b694
Branch: refs/heads/USERGRID-396
Commit: c872b694ed7f9b77220bad81813161ac11b9890f
Parents: a60d6aa
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 11 16:52:04 2015 -0700
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 11 16:52:04 2015 -0700
----------------------------------------------------------------------
.../corepersistence/CpEntityManager.java | 49 ++++++++++++++------
.../usergrid/persistence/EntityManager.java | 3 +-
.../cassandra/EntityManagerImpl.java | 13 ++++--
.../services/AbstractCollectionService.java | 4 +-
4 files changed, 46 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c872b694/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 4ed37e5..b7272f1 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -340,6 +340,17 @@ public class CpEntityManager implements EntityManager {
return entity;
}
+ public Entity convertMvccEntityToEntity( org.apache.usergrid.persistence.model.entity.Entity entity){
+ if(entity == null) {
+ return null;
+ }
+ Class clazz = Schema.getDefaultSchema().getEntityClass( entity.getId().getType() );
+
+ Entity oldFormatEntity = EntityFactory.newEntity(entity.getId().getUuid(),entity.getId().getType(),clazz);
+ oldFormatEntity.setProperties( CpEntityMapUtils.toMap( entity ) );
+
+ return oldFormatEntity;
+ }
@Override
public Entity get( EntityRef entityRef ) throws Exception {
@@ -730,17 +741,33 @@ public class CpEntityManager implements EntityManager {
}
@Override
- public Observable<FieldSet> getAllEntityFromFields(String aliasType,String aliasValue ){
- return null;
-// EntityCollectionManager ecm = managerCache.getEntityCollectionManager( aliasType );
-//
-// Schema.
-// return ecm.getAllEntities( aliasValue );
+ public Entity getAllEntityFromFields( String collectionType, String aliasType ){
+ String collName = Schema.defaultCollectionName( collectionType );
+
+ CollectionScope collectionScope = getCollectionScopeNameFromEntityType(
+ getApplicationScope().getApplication(), collName);
+
+ String propertyName = Schema.getDefaultSchema().aliasProperty( collName );
+
+
+ final EntityCollectionManager ecm = managerCache.getEntityCollectionManager( collectionScope );
+ //TODO: can't we just sub in the getEntityRepair method here so for every read of a uniqueEntityField we can verify it is correct?
+
+ StringField uniqueLookupRepairField = new StringField( propertyName, aliasType.toString());
+
+ Observable<FieldSet> fieldSetObservable = ecm.getAllEntities( Arrays.<Field>asList( uniqueLookupRepairField) );
+
+ FieldSet fieldSet = fieldSetObservable.toBlocking().last();
+
+ if(fieldSet.isEmpty()) {
+ return null;
+ }
+
+ return convertMvccEntityToEntity( fieldSet.getEntity( uniqueLookupRepairField ).getEntity().get() );
}
@Override
public Entity getEntityByAlias(String collectionType, String aliasType) throws Exception {
-
EntityRef newEntityRef = getAlias(collectionType,aliasType);
if(newEntityRef == null) {
@@ -748,9 +775,6 @@ public class CpEntityManager implements EntityManager {
}
return get( newEntityRef );
-
-
-
}
@@ -2157,11 +2181,6 @@ public class CpEntityManager implements EntityManager {
//convert to a string, that's what we store
final Id results = ecm.getIdField( new StringField(
propertyName, propertyValue.toString() ) ).toBlocking() .lastOrDefault( null );
-
- Observable<FieldSet> fieldSetObservable = ecm.getAllEntities( Arrays.<Field>asList( new StringField( propertyName, propertyValue.toString() ) );
-
- FieldSet fieldSet = fieldSetObservable.toBlocking().last();
- fieldSet.
return results;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c872b694/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
index 4b85c0d..eb6379b 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java
@@ -19,6 +19,7 @@ package org.apache.usergrid.persistence;
import org.apache.usergrid.persistence.collection.CollectionScope;
import org.apache.usergrid.persistence.collection.FieldSet;
+import org.apache.usergrid.persistence.collection.MvccEntity;
import org.apache.usergrid.persistence.index.query.Query;
import java.nio.ByteBuffer;
import java.util.Collection;
@@ -719,6 +720,6 @@ public interface EntityManager {
*/
public Health getIndexHealth();
- public Observable<FieldSet> getAllEntityFromFields(String aliasType,String aliasValue );
+ public Entity getAllEntityFromFields( String aliasType, String aliasValue );
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c872b694/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
index 42a588c..a019e86 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
@@ -69,7 +69,6 @@ import org.apache.usergrid.persistence.SimpleRoleRef;
import org.apache.usergrid.persistence.TypedEntity;
import org.apache.usergrid.persistence.cassandra.CounterUtils.AggregateCounterSelection;
import org.apache.usergrid.persistence.cassandra.util.TraceParticipant;
-import org.apache.usergrid.persistence.collection.FieldSet;
import org.apache.usergrid.persistence.entities.Application;
import org.apache.usergrid.persistence.entities.Event;
import org.apache.usergrid.persistence.entities.Group;
@@ -108,7 +107,6 @@ import me.prettyprint.hector.api.mutation.Mutator;
import me.prettyprint.hector.api.query.MultigetSliceCounterQuery;
import me.prettyprint.hector.api.query.QueryResult;
import me.prettyprint.hector.api.query.SliceCounterQuery;
-import rx.Observable;
import static java.lang.String.CASE_INSENSITIVE_ORDER;
import static java.util.Arrays.asList;
@@ -538,7 +536,7 @@ public class EntityManagerImpl implements EntityManager {
/**
* Return all UUIDs that have this unique value
*
- * @param ownerEntityId The entity id that owns this entity collection
+ * @param ownerEntityRef The entity id that owns this entity collection
* @param collectionName The entity collection name
* @param propertyName The name of the unique property
* @param propertyValue The value of the unique property
@@ -1775,6 +1773,12 @@ public class EntityManagerImpl implements EntityManager {
@Override
+ public Entity getEntityByAlias( final String collectionType, final String aliasType ) throws Exception {
+ throw new UnsupportedOperationException("Not supported.");
+ }
+
+
+ @Override
public EntityRef getAlias( String aliasType, String alias ) throws Exception {
return getAlias( new SimpleEntityRef(Application.ENTITY_TYPE, applicationId), aliasType, alias );
}
@@ -2952,8 +2956,7 @@ public class EntityManagerImpl implements EntityManager {
@Override
- public Observable<FieldSet> getAllEntityFromFields( final String aliasType,
- final String aliasValue ) {
+ public Entity getAllEntityFromFields( final String aliasType, final String aliasValue ) {
throw new UnsupportedOperationException( "Not supported." );
}
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c872b694/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
index 1117fbc..26eb6b9 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/AbstractCollectionService.java
@@ -76,7 +76,7 @@ public class AbstractCollectionService extends AbstractService {
nameProperty = "name";
}
- Entity entity = em.getEntityByAlias( getEntityType(), name );
+ Entity entity = em.getAllEntityFromFields( getEntityType(), name );
if ( entity != null ) {
entity = importEntity( request, entity );
}
@@ -148,7 +148,7 @@ public class AbstractCollectionService extends AbstractService {
nameProperty = "name";
}
- EntityRef entity = em.get( getEntityType(), name );
+ EntityRef entity = em.getAlias( getEntityType(), name );
if ( entity == null ) {
logger.info( "miss on entityType: {} with name: {}", getEntityType(), name );