You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/07/11 15:35:54 UTC

[44/50] [abbrv] usergrid git commit: Merge branch 'release-2.1.1' of https://git-wip-us.apache.org/repos/asf/usergrid into usergrid-1268-akka-211

Merge branch 'release-2.1.1' of https://git-wip-us.apache.org/repos/asf/usergrid into usergrid-1268-akka-211

# Conflicts:
#	stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerFactoryImpl.java
#	stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java


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

Branch: refs/heads/release-2.1.1
Commit: 37972a2ed8c21c144f7e56d76afef37775f5012d
Parents: e6c59ee 86ae2cd
Author: Dave Johnson <sn...@apache.org>
Authored: Thu Jul 7 12:30:10 2016 -0400
Committer: Dave Johnson <sn...@apache.org>
Committed: Thu Jul 7 12:30:10 2016 -0400

----------------------------------------------------------------------
 .../EntityCollectionManagerFactoryImpl.java     | 103 ++++++++---------
 .../impl/EntityCollectionManagerImpl.java       | 112 ++++++++-----------
 .../mvcc/stage/write/WriteUniqueVerify.java     |   4 +-
 3 files changed, 103 insertions(+), 116 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/37972a2e/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerFactoryImpl.java
----------------------------------------------------------------------
diff --cc stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerFactoryImpl.java
index 3877fe3,01eab7d..fcaa51d
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerFactoryImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerFactoryImpl.java
@@@ -19,38 -21,37 +19,33 @@@
  package org.apache.usergrid.persistence.collection.impl;
  
  
--import java.util.concurrent.ExecutionException;
--
++import com.google.common.base.Preconditions;
++import com.google.common.cache.CacheBuilder;
++import com.google.common.cache.CacheLoader;
++import com.google.common.cache.LoadingCache;
++import com.google.inject.Inject;
++import com.google.inject.Singleton;
++import com.netflix.astyanax.Keyspace;
 +import org.apache.usergrid.persistence.actorsystem.ActorSystemManager;
  import org.apache.usergrid.persistence.collection.EntityCollectionManager;
  import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
--import org.apache.usergrid.persistence.collection.cache.EntityCacheFig;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.MarkCommit;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.MarkStart;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.UniqueCleanup;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.VersionCompact;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.RollbackAction;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteCommit;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteOptimisticVerify;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteStart;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteUniqueVerify;
++import org.apache.usergrid.persistence.collection.mvcc.stage.write.*;
  import org.apache.usergrid.persistence.collection.scheduler.CollectionExecutorScheduler;
  import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
  import org.apache.usergrid.persistence.collection.serialization.MvccLogEntrySerializationStrategy;
  import org.apache.usergrid.persistence.collection.serialization.SerializationFig;
  import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy;
 +import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValuesService;
+ import org.apache.usergrid.persistence.core.astyanax.CassandraConfig;
  import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
  import org.apache.usergrid.persistence.core.rx.RxTaskScheduler;
  import org.apache.usergrid.persistence.core.scope.ApplicationScope;
  
--import com.google.common.base.Preconditions;
--import com.google.common.cache.CacheBuilder;
--import com.google.common.cache.CacheLoader;
--import com.google.common.cache.LoadingCache;
--import com.google.inject.Inject;
--import com.google.inject.Singleton;
--import com.netflix.astyanax.Keyspace;
++import java.util.concurrent.ExecutionException;
  
  
  
@@@ -60,7 -61,7 +55,6 @@@
  @Singleton
  public class EntityCollectionManagerFactoryImpl implements EntityCollectionManagerFactory {
  
--
      private final WriteStart writeStart;
      private final WriteUniqueVerify writeVerifyUnique;
      private final WriteOptimisticVerify writeOptimisticVerify;
@@@ -77,35 -78,20 +71,40 @@@
      private final Keyspace keyspace;
      private final MetricsFactory metricsFactory;
      private final RxTaskScheduler rxTaskScheduler;
 +    private final ActorSystemManager actorSystemManager;
 +    private final UniqueValuesService uniqueValuesService;
 +
+     private final CassandraConfig cassandraConfig;
  
      private LoadingCache<ApplicationScope, EntityCollectionManager> ecmCache =
          CacheBuilder.newBuilder().maximumSize( 1000 )
                      .build( new CacheLoader<ApplicationScope, EntityCollectionManager>() {
                          public EntityCollectionManager load( ApplicationScope scope ) {
 -                                  //create the target EM that will perform logic
 +                            //create the target EM that will perform logic
                              final EntityCollectionManager target = new EntityCollectionManagerImpl(
 -                                writeStart, writeVerifyUnique,
 -                                writeOptimisticVerify, writeCommit, rollback, markStart, markCommit,  uniqueCleanup, versionCompact,
 -                                entitySerializationStrategy, uniqueValueSerializationStrategy,
 -                                mvccLogEntrySerializationStrategy, keyspace,
 -                                metricsFactory, serializationFig,
 -                                rxTaskScheduler, scope, cassandraConfig );
++
 +                                writeStart,
 +                                writeVerifyUnique,
 +                                writeOptimisticVerify,
 +                                writeCommit,
 +                                rollback,
 +                                markStart,
 +                                markCommit,
 +                                uniqueCleanup,
 +                                versionCompact,
++
 +                                entitySerializationStrategy,
 +                                uniqueValueSerializationStrategy,
 +                                mvccLogEntrySerializationStrategy,
++
 +                                keyspace,
 +                                metricsFactory,
 +                                serializationFig,
 +                                rxTaskScheduler,
 +                                actorSystemManager,
 +                                uniqueValuesService,
++                                cassandraConfig,
 +                                scope );
  
                              return target;
                          }
@@@ -113,47 -99,38 +112,49 @@@
  
  
      @Inject
 -    public EntityCollectionManagerFactoryImpl( final WriteStart writeStart, final WriteUniqueVerify writeVerifyUnique,
 -                                               final WriteOptimisticVerify writeOptimisticVerify,
 -                                               final WriteCommit writeCommit, final RollbackAction rollback,
 -                                               final MarkStart markStart, final MarkCommit markCommit,
 -                                               final UniqueCleanup uniqueCleanup, final VersionCompact versionCompact,
 -                                               final SerializationFig serializationFig, final
 -                                                   MvccEntitySerializationStrategy entitySerializationStrategy,
 -                                               final UniqueValueSerializationStrategy uniqueValueSerializationStrategy,
 -                                               final MvccLogEntrySerializationStrategy mvccLogEntrySerializationStrategy,
 -                                               final Keyspace keyspace, final EntityCacheFig entityCacheFig,
 -                                               final MetricsFactory metricsFactory,
 -                                               @CollectionExecutorScheduler  final RxTaskScheduler rxTaskScheduler,
 -                                               final CassandraConfig cassandraConfig) {
 -
 -        this.writeStart = writeStart;
 -        this.writeVerifyUnique = writeVerifyUnique;
 -        this.writeOptimisticVerify = writeOptimisticVerify;
 -        this.writeCommit = writeCommit;
 -        this.rollback = rollback;
 -        this.markStart = markStart;
 -        this.markCommit = markCommit;
 -        this.uniqueCleanup = uniqueCleanup;
 -        this.versionCompact = versionCompact;
 -        this.serializationFig = serializationFig;
 -        this.entitySerializationStrategy = entitySerializationStrategy;
 -        this.uniqueValueSerializationStrategy = uniqueValueSerializationStrategy;
 +    public EntityCollectionManagerFactoryImpl(
-             final WriteStart writeStart,
-             final WriteUniqueVerify writeVerifyUnique,
++            final WriteStart            writeStart,
++            final WriteUniqueVerify     writeVerifyUnique,
 +            final WriteOptimisticVerify writeOptimisticVerify,
-             final WriteCommit writeCommit,
-             final RollbackAction rollback,
-             final MarkStart markStart,
-             final MarkCommit markCommit,
-             final UniqueCleanup uniqueCleanup,
-             final VersionCompact versionCompact,
-             final SerializationFig serializationFig,
-             final MvccEntitySerializationStrategy entitySerializationStrategy,
-             final UniqueValueSerializationStrategy uniqueValueSerializationStrategy,
++            final WriteCommit           writeCommit,
++            final RollbackAction        rollback,
++            final MarkStart             markStart,
++            final MarkCommit            markCommit,
++            final UniqueCleanup         uniqueCleanup,
++            final VersionCompact        versionCompact,
++            final SerializationFig      serializationFig,
++            final MvccEntitySerializationStrategy   entitySerializationStrategy,
++            final UniqueValueSerializationStrategy  uniqueValueSerializationStrategy,
 +            final MvccLogEntrySerializationStrategy mvccLogEntrySerializationStrategy,
-             final Keyspace keyspace,
-             final EntityCacheFig entityCacheFig,
-             final MetricsFactory metricsFactory, @CollectionExecutorScheduler
-             final RxTaskScheduler rxTaskScheduler,
-             final ActorSystemManager actorSystemManager,
-             final UniqueValuesService uniqueValuesService ) {
- 
-         this.writeStart = writeStart;
-         this.writeVerifyUnique = writeVerifyUnique;
-         this.writeOptimisticVerify = writeOptimisticVerify;
-         this.writeCommit = writeCommit;
-         this.rollback = rollback;
-         this.markStart = markStart;
-         this.markCommit = markCommit;
-         this.uniqueCleanup = uniqueCleanup;
-         this.versionCompact = versionCompact;
-         this.serializationFig = serializationFig;
-         this.entitySerializationStrategy = entitySerializationStrategy;
-         this.uniqueValueSerializationStrategy = uniqueValueSerializationStrategy;
++            final Keyspace              keyspace,
++            final MetricsFactory        metricsFactory,
++            @CollectionExecutorScheduler
++            final RxTaskScheduler       rxTaskScheduler,
++            final ActorSystemManager    actorSystemManager,
++            final UniqueValuesService   uniqueValuesService,
++            final CassandraConfig       cassandraConfig ) {
++
++        this.writeStart =               writeStart;
++        this.writeVerifyUnique =        writeVerifyUnique;
++        this.writeOptimisticVerify =    writeOptimisticVerify;
++        this.writeCommit =              writeCommit;
++        this.rollback =                 rollback;
++        this.markStart =                markStart;
++        this.markCommit =               markCommit;
++        this.uniqueCleanup =            uniqueCleanup;
++        this.versionCompact =           versionCompact;
++        this.serializationFig =         serializationFig;
++        this.entitySerializationStrategy =       entitySerializationStrategy;
++        this.uniqueValueSerializationStrategy =  uniqueValueSerializationStrategy;
          this.mvccLogEntrySerializationStrategy = mvccLogEntrySerializationStrategy;
--        this.keyspace = keyspace;
--        this.metricsFactory = metricsFactory;
--        this.rxTaskScheduler = rxTaskScheduler;
-         this.actorSystemManager = actorSystemManager;
-         this.uniqueValuesService = uniqueValuesService;
 -        this.cassandraConfig = cassandraConfig;
++        this.keyspace =                 keyspace;
++        this.metricsFactory =           metricsFactory;
++        this.rxTaskScheduler =          rxTaskScheduler;
++        this.actorSystemManager =       actorSystemManager;
++        this.uniqueValuesService =      uniqueValuesService;
++        this.cassandraConfig =          cassandraConfig;
      }
 +
      @Override
      public EntityCollectionManager createCollectionManager(ApplicationScope applicationScope) {
          Preconditions.checkNotNull(applicationScope);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/37972a2e/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
----------------------------------------------------------------------
diff --cc stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
index 6a04c7c,06b086c..9dce7ef
--- 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,44 -19,43 +19,32 @@@
  package org.apache.usergrid.persistence.collection.impl;
  
  
--import java.util.ArrayList;
--import java.util.Collection;
--import java.util.Collections;
--import java.util.Iterator;
--import java.util.List;
--import java.util.UUID;
--
++import com.codahale.metrics.Timer;
++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;
  import com.netflix.astyanax.model.ConsistencyLevel;
 -import org.apache.usergrid.persistence.collection.serialization.impl.LogEntryIterator;
 -import org.apache.usergrid.persistence.core.astyanax.CassandraConfig;
 -import org.slf4j.Logger;
 -import org.slf4j.LoggerFactory;
 -
 -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.MvccLogEntry;
 -import org.apache.usergrid.persistence.collection.VersionSet;
++import com.netflix.astyanax.model.CqlResult;
++import com.netflix.astyanax.serializers.StringSerializer;
 +import org.apache.usergrid.persistence.actorsystem.ActorSystemManager;
- import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValuesService;
- import org.apache.usergrid.persistence.collection.serialization.impl.LogEntryIterator;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- 
- 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.MvccLogEntry;
- import org.apache.usergrid.persistence.collection.VersionSet;
++import org.apache.usergrid.persistence.collection.*;
  import org.apache.usergrid.persistence.collection.mvcc.stage.CollectionIoEvent;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.MarkCommit;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.MarkStart;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.UniqueCleanup;
  import org.apache.usergrid.persistence.collection.mvcc.stage.delete.VersionCompact;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.RollbackAction;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteCommit;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteOptimisticVerify;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteStart;
--import org.apache.usergrid.persistence.collection.mvcc.stage.write.WriteUniqueVerify;
--import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
--import org.apache.usergrid.persistence.collection.serialization.MvccLogEntrySerializationStrategy;
--import org.apache.usergrid.persistence.collection.serialization.SerializationFig;
--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.mvcc.stage.write.*;
++import org.apache.usergrid.persistence.collection.serialization.*;
++import org.apache.usergrid.persistence.collection.serialization.impl.LogEntryIterator;
  import org.apache.usergrid.persistence.collection.serialization.impl.MinMaxLogEntryIterator;
  import org.apache.usergrid.persistence.collection.serialization.impl.MutableFieldSet;
++import org.apache.usergrid.persistence.collection.uniquevalues.UniqueValuesService;
++import org.apache.usergrid.persistence.core.astyanax.CassandraConfig;
  import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
  import org.apache.usergrid.persistence.core.metrics.ObservableTimer;
  import org.apache.usergrid.persistence.core.rx.ObservableIterator;
@@@ -68,22 -67,22 +56,13 @@@ import org.apache.usergrid.persistence.
  import org.apache.usergrid.persistence.model.entity.Id;
  import org.apache.usergrid.persistence.model.field.Field;
  import org.apache.usergrid.persistence.model.util.UUIDGenerator;
--
--import com.codahale.metrics.Timer;
--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;
--import com.netflix.astyanax.model.CqlResult;
--import com.netflix.astyanax.serializers.StringSerializer;
--
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
  import rx.Observable;
  import rx.Subscriber;
  
++import java.util.*;
++
  
  /**
   * Simple implementation.  Should perform  writes, delete and load.
@@@ -125,31 -125,20 +105,35 @@@ public class EntityCollectionManagerImp
      private final ApplicationScope applicationScope;
      private final RxTaskScheduler rxTaskScheduler;
  
 +    private final UniqueValuesService uniqueValuesService;
 +    private final ActorSystemManager actorSystemManager;
 +
  
      @Inject
-     public EntityCollectionManagerImpl( final WriteStart writeStart,
-                                         final WriteUniqueVerify writeVerifyUnique,
 -    public EntityCollectionManagerImpl( final WriteStart writeStart, final WriteUniqueVerify writeVerifyUnique,
--                                        final WriteOptimisticVerify writeOptimisticVerify,
-                                         final WriteCommit writeCommit,
-                                         final RollbackAction rollback,
-                                         final MarkStart markStart,
-                                         final MarkCommit markCommit,
-                                         final UniqueCleanup uniqueCleanup,
-                                         final VersionCompact versionCompact,
 -                                        final WriteCommit writeCommit, final RollbackAction rollback,
 -                                        final MarkStart markStart, final MarkCommit markCommit,
 -                                        final UniqueCleanup uniqueCleanup, final VersionCompact versionCompact,
--                                        final MvccEntitySerializationStrategy entitySerializationStrategy,
--                                        final UniqueValueSerializationStrategy uniqueValueSerializationStrategy,
--                                        final MvccLogEntrySerializationStrategy mvccLogEntrySerializationStrategy,
-                                         final Keyspace keyspace,
-                                         final MetricsFactory metricsFactory,
-                                         final SerializationFig serializationFig,
-                                         final RxTaskScheduler rxTaskScheduler,
-                                         ActorSystemManager actorSystemManager,
-                                         UniqueValuesService uniqueValuesService,
-                                         @Assisted final ApplicationScope applicationScope ) {
 -                                        final Keyspace keyspace, final MetricsFactory metricsFactory,
 -                                        final SerializationFig serializationFig, final RxTaskScheduler rxTaskScheduler,
 -                                        @Assisted final ApplicationScope applicationScope,
 -                                        final CassandraConfig cassandraConfig) {
++    public EntityCollectionManagerImpl(
++        final WriteStart            writeStart,
++        final WriteUniqueVerify     writeVerifyUnique,
++        final WriteOptimisticVerify writeOptimisticVerify,
++        final WriteCommit           writeCommit,
++        final RollbackAction        rollback,
++        final MarkStart             markStart,
++        final MarkCommit            markCommit,
++        final UniqueCleanup         uniqueCleanup,
++        final VersionCompact        versionCompact,
++
++        final MvccEntitySerializationStrategy   entitySerializationStrategy,
++        final UniqueValueSerializationStrategy  uniqueValueSerializationStrategy,
++        final MvccLogEntrySerializationStrategy mvccLogEntrySerializationStrategy,
++
++        final Keyspace              keyspace,
++        final MetricsFactory        metricsFactory,
++        final SerializationFig      serializationFig,
++        final RxTaskScheduler       rxTaskScheduler,
++        final ActorSystemManager    actorSystemManager,
++        final UniqueValuesService   uniqueValuesService,
++        final CassandraConfig       cassandraConfig,
++        @Assisted final ApplicationScope applicationScope ) {
 +
          this.uniqueValueSerializationStrategy = uniqueValueSerializationStrategy;
          this.entitySerializationStrategy = entitySerializationStrategy;
          this.uniqueCleanup = uniqueCleanup;

http://git-wip-us.apache.org/repos/asf/usergrid/blob/37972a2e/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
----------------------------------------------------------------------
diff --cc stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
index 1f86440,b36cb79..a3565ea
--- 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
@@@ -170,11 -121,13 +170,11 @@@ public class WriteUniqueVerify implemen
  
              try {
  
 -                // loading will retrieve the oldest unique value entry for the field
                  // don't use read repair on this pre-write check
-                 // use CL ALL as consistency is extremely important here, more so than performance
-                 UniqueValueSet set = uniqueValueStrat.load(scope, ConsistencyLevel.CL_ALL,
+                 // stronger consistency is extremely important here, more so than performance
+                 UniqueValueSet set = uniqueValueStrat.load(scope, cassandraFig.getConsistentReadCL(),
                      written.getEntityId().getType(), Collections.singletonList(written.getField()), false);
  
 -
                  set.forEach(uniqueValue -> {
  
                      if(!uniqueValue.getEntityId().getUuid().equals(written.getEntityId().getUuid())){