You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/09/26 18:20:14 UTC

[isis] 01/02: ISIS-1976: remove deprecated Command.next()

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7f0d6ce8c0dcb4c2a8d64382ed1ec7a8416b13eb
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 26 18:45:53 2018 +0200

    ISIS-1976: remove deprecated Command.next()
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../isis/applib/services/iactn/Interaction.java    | 24 ++++++++++------------
 .../interaction/InteractionDefaultTest_next.java   |  5 +++--
 .../applib/util/ObjectContractsTest_compareTo.java |  1 -
 .../metamodel/interactions/InteractionContext.java |  2 +-
 4 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
index f04080c..e971292 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.Callable;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.LongAdder;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.Value;
@@ -305,8 +305,7 @@ public class Interaction implements HasTransactionId {
         }
     }
 
-
-    private final Map<String, AtomicInteger> maxBySequence = _Maps.newHashMap();
+    private final Map<String, LongAdder> maxBySequence = _Maps.newHashMap();
 
     /**
      * Generates numbers in a named sequence.  The name of the sequence can be arbitrary, though note that the
@@ -315,17 +314,16 @@ public class Interaction implements HasTransactionId {
      */
     @Programmatic
     public int next(final String sequenceId) {
-        AtomicInteger next = maxBySequence.get(sequenceId);
-        if(next == null) {
-            next = new AtomicInteger(0);
-            maxBySequence.put(sequenceId, next);
-        } else {
-            next.incrementAndGet();
-        }
-        return next.get();
+        final LongAdder adder = maxBySequence.computeIfAbsent(sequenceId, this::newAdder);
+        adder.increment();
+        return adder.intValue();
+    }
+    
+    private LongAdder newAdder(String ignore) {
+        final LongAdder adder = new LongAdder();
+        adder.decrement();
+        return adder;
     }
-
-
 
     /**
      * Represents an action invocation/property edit as a node in a call-stack execution graph, with sub-interactions
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java b/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java
index c977b07..31ec5db 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java
@@ -24,13 +24,14 @@ import static org.junit.Assert.assertThat;
 
 import org.junit.Test;
 
-import org.apache.isis.applib.services.command.CommandDefault;
+import org.apache.isis.applib.services.iactn.Interaction;
 
 public class InteractionDefaultTest_next {
 
     @Test
     public void test() {
-        CommandDefault interaction = new CommandDefault();
+        final Interaction interaction = new Interaction();
+        
         assertThat(interaction.next("foo"), is(0));
         assertThat(interaction.next("foo"), is(1));
         assertThat(interaction.next("bar"), is(0));
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
index 015a2ff..9c74ef5 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
@@ -40,7 +40,6 @@ public class ObjectContractsTest_compareTo extends ComparableContractTest_compar
     /**
      * as per {@link InvoiceItem#compareTo(InvoiceItem)}
      */
-    @SuppressWarnings("unchecked")
     @Override
     protected List<List<org.apache.isis.applib.util.InvoiceItem>> orderedTuples() {
         return listOf(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
index 81e1fc0..5445ecf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
@@ -53,7 +53,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
  * public API.
  *
  * <p>
- * The class is genericized so that the {@link #createInteractionEvent() factory
+ * The class is generic so that the {@link #createInteractionEvent() factory
  * method} can return the correct subclass without having to downcast.
  */
 public abstract class InteractionContext<T extends InteractionEvent> {