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> {