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 2019/07/18 09:35:13 UTC
[isis] 02/02: ISIS-2154 removes references to the
ConcurrencyChecking enum
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 bc40621c5d0b35e52a515cffa7aebdd5ab459b88
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jul 18 11:35:00 2019 +0200
ISIS-2154 removes references to the ConcurrencyChecking enum
---
.../adapter/ObjectAdapterByIdProvider.java | 34 +++---------
.../adapter/concurrency/ConcurrencyChecking.java | 3 +-
.../isis/jdo/jdosupport/IsisJdoSupportDN5.java | 12 ++---
.../ObjectAdapterMementoSupport_usingLKG.java | 5 +-
.../ObjectAdapterMemento_LastKnownGood.java | 43 +++++++--------
.../runtime/persistence/adapter/PojoAdapter.java | 18 +++----
...ctAdapterContext_ObjectAdapterByIdProvider.java | 63 +++++++++-------------
.../transaction/ChangedObjectsServiceInternal.java | 47 ++++++++--------
.../PersistenceSessionServiceInternalDefault.java | 5 +-
.../integration/wicket/WebRequestCycleForIsis.java | 6 ---
.../wicket/model/mementos/ActionMemento.java | 8 ---
.../mementos/ObjectAdapterMemento_Legacy.java | 28 ----------
.../viewer/wicket/model/models/ActionModel.java | 40 +++++++-------
.../viewer/wicket/model/models/EntityModel.java | 48 ++++-------------
.../viewer/wicket/model/models/ScalarModel.java | 13 +++--
.../viewer/wicket/model/models/ValueModel.java | 1 -
.../actionresponse/ActionResultResponseType.java | 22 ++------
.../entityactions/EntityActionLinkFactory.java | 5 +-
.../actionmenu/serviceactions/CssMenuItem.java | 21 ++++----
.../serviceactions/ServiceActionLinkFactory.java | 5 +-
.../collection/AssociatedWithActionsHelper.java | 1 -
.../ui/components/collection/CollectionPanel.java | 12 ++---
.../CollectionContentsAsAjaxTablePanel.java | 17 +++---
.../columns/ObjectAdapterToggleboxColumn.java | 16 +++---
.../entity/EntityComponentFactoryAbstract.java | 7 ++-
.../entity/icontitle/EntityIconAndTitlePanel.java | 18 +++----
.../property/PropertyFormExecutorStrategy.java | 22 ++------
.../PropertyEditPromptHeaderPanel.java | 16 +++---
.../ui/components/scalars/ScalarPanelAbstract.java | 24 ++++-----
.../components/scalars/ScalarPanelAbstract2.java | 34 ++++++------
.../widgets/breadcrumbs/BreadcrumbPanel.java | 24 ++++-----
.../entitysimplelink/EntityLinkSimplePanel.java | 17 ++----
.../linkandlabel/ActionLinkFactoryAbstract.java | 33 ++++--------
.../isis/viewer/wicket/ui/panels/FormAbstract.java | 41 +-------------
.../wicket/ui/panels/FormExecutorDefault.java | 15 +-----
35 files changed, 241 insertions(+), 483 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterByIdProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterByIdProvider.java
index f299081..7a72501 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterByIdProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapterByIdProvider.java
@@ -22,7 +22,6 @@ import java.util.Map;
import java.util.stream.Stream;
import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.RootOid;
/**
@@ -34,25 +33,13 @@ public interface ObjectAdapterByIdProvider {
// -- INTERFACE
- ObjectAdapter adapterFor(RootOid rootOid, ConcurrencyChecking concurrencyChecking);
- Map<RootOid, ObjectAdapter> adaptersFor(Stream<RootOid> rootOids, ConcurrencyChecking concurrencyChecking);
-
- /**
- * As per {@link #adapterFor(RootOid, ConcurrencyChecking)}, with
- * {@link ConcurrencyChecking#NO_CHECK no checking}.
- *
- * <p>
+ /**
* This method will <i>always</i> return an object, possibly indicating it is persistent; so make sure that you
* know that the oid does indeed represent an object you know exists.
- * </p>
*/
- default ObjectAdapter adapterFor(final RootOid rootOid) {
- return adapterFor(rootOid, ConcurrencyChecking.NO_CHECK);
- }
+ ObjectAdapter adapterFor(RootOid rootOid);
- default Map<RootOid, ObjectAdapter> adaptersFor(Stream<RootOid> rootOids) {
- return adaptersFor(rootOids, ConcurrencyChecking.NO_CHECK);
- }
+ Map<RootOid, ObjectAdapter> adaptersFor(Stream<RootOid> rootOids);
// -- FOR THOSE THAT IMPLEMENT THROUGH DELEGATION
@@ -63,24 +50,17 @@ public interface ObjectAdapterByIdProvider {
ObjectAdapterByIdProvider getObjectAdapterByIdProvider();
@Programmatic
- default ObjectAdapter adapterFor(RootOid rootOid, ConcurrencyChecking concurrencyChecking) {
- return getObjectAdapterByIdProvider().adapterFor(rootOid, concurrencyChecking);
+ default ObjectAdapter adapterFor(RootOid rootOid) {
+ return getObjectAdapterByIdProvider().adapterFor(rootOid);
}
-
@Programmatic
- default Map<RootOid, ObjectAdapter> adaptersFor(Stream<RootOid> rootOids, ConcurrencyChecking concurrencyChecking) {
- return getObjectAdapterByIdProvider().adaptersFor(rootOids, concurrencyChecking);
+ default Map<RootOid, ObjectAdapter> adaptersFor(Stream<RootOid> rootOids) {
+ return getObjectAdapterByIdProvider().adaptersFor(rootOids);
}
}
-
-
-
-
-
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/concurrency/ConcurrencyChecking.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/concurrency/ConcurrencyChecking.java
index d0007a1..97a37c9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/concurrency/ConcurrencyChecking.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/concurrency/ConcurrencyChecking.java
@@ -25,7 +25,8 @@ import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.config.IsisConfiguration;
-public enum ConcurrencyChecking {
+@Deprecated
+enum ConcurrencyChecking {
NO_CHECK,
CHECK;
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/jdo/jdosupport/IsisJdoSupportDN5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/jdo/jdosupport/IsisJdoSupportDN5.java
index 25d97a2..4e2be81 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/jdo/jdosupport/IsisJdoSupportDN5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/jdo/jdosupport/IsisJdoSupportDN5.java
@@ -19,6 +19,8 @@
package org.apache.isis.jdo.jdosupport;
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
+
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
@@ -26,7 +28,6 @@ import java.sql.Statement;
import java.util.Collection;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.Callable;
import java.util.stream.Collectors;
import javax.inject.Singleton;
@@ -41,14 +42,11 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.ObjectPersistenceException;
import org.apache.isis.runtime.system.context.IsisContext;
import org.apache.isis.runtime.system.persistence.PersistenceSession;
import org.apache.isis.runtime.system.session.IsisSessionFactory;
-import static org.apache.isis.commons.internal.base._NullSafe.stream;
-
/**
* This service provides a number of utility methods to supplement/support the capabilities of the JDO Objectstore.
@@ -147,12 +145,8 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
final Extent<?> extent = getJdoPersistenceManager().getExtent(pcClass);
final List<Object> instances = stream(extent).collect(Collectors.toList());
- // temporarily disable concurrency checking while this method is performed
try {
- ConcurrencyChecking.executeWithConcurrencyCheckingDisabled((Callable<Void>) () -> {
- getJdoPersistenceManager().deletePersistentAll(instances);
- return null;
- });
+ getJdoPersistenceManager().deletePersistentAll(instances);
} catch (final Exception ex) {
throw new FatalException(ex);
}
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoSupport_usingLKG.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoSupport_usingLKG.java
index 4890302..23fb9e6 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoSupport_usingLKG.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoSupport_usingLKG.java
@@ -23,7 +23,6 @@ import java.util.UUID;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.commons.internal.ioc.BeanSort;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.spec.ObjectSpecId;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
@@ -112,9 +111,7 @@ implements ObjectAdapterMementoSupport {
@Override
public ObjectAdapter getObjectAdapter() {
- return delegate.getObjectAdapter(ConcurrencyChecking.NO_CHECK,
- persistenceSession(),
- specificationLoader());
+ return delegate.getObjectAdapter(persistenceSession(), specificationLoader());
}
@Override
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMemento_LastKnownGood.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMemento_LastKnownGood.java
index f19475d..28295e1 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMemento_LastKnownGood.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMemento_LastKnownGood.java
@@ -33,11 +33,10 @@ import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException;
import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.adapter.oid.Oid.Factory;
+import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.metamodel.spec.ObjectSpecId;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -115,10 +114,9 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
@Override
public ObjectAdapter asAdapter(
final ObjectAdapterMemento_LastKnownGood oam,
- final ConcurrencyChecking concurrencyChecking,
final PersistenceSession persistenceSession,
final SpecificationLoader specificationLoader) {
- return oam.type.getAdapter(oam, concurrencyChecking, persistenceSession, specificationLoader);
+ return oam.type.getAdapter(oam, persistenceSession, specificationLoader);
}
@Override
@@ -151,7 +149,7 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
@Override
public ObjectAdapter asAdapter(
final ObjectAdapterMemento_LastKnownGood oam,
- final ConcurrencyChecking concurrencyChecking, final PersistenceSession persistenceSession,
+ final PersistenceSession persistenceSession,
final SpecificationLoader specificationLoader) {
final List<Object> listOfPojos =
_Lists.map(oam.list, Functions.toPojo(persistenceSession, specificationLoader));
@@ -191,7 +189,7 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
public abstract ObjectAdapter asAdapter(
final ObjectAdapterMemento_LastKnownGood oam,
- final ConcurrencyChecking concurrencyChecking, final PersistenceSession persistenceSession,
+ final PersistenceSession persistenceSession,
final SpecificationLoader specificationLoader);
public abstract int hashCode(final ObjectAdapterMemento_LastKnownGood oam);
@@ -211,7 +209,6 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
@Override
ObjectAdapter recreateAdapter(
final ObjectAdapterMemento_LastKnownGood oam,
- final ConcurrencyChecking concurrencyChecking,
final PersistenceSession persistenceSession,
final SpecificationLoader specificationLoader) {
ObjectSpecId objectSpecId = oam.objectSpecId;
@@ -249,11 +246,11 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
@Override
ObjectAdapter recreateAdapter(
final ObjectAdapterMemento_LastKnownGood oam,
- ConcurrencyChecking concurrencyChecking,
- final PersistenceSession persistenceSession, final SpecificationLoader specificationLoader) {
+ final PersistenceSession persistenceSession,
+ final SpecificationLoader specificationLoader) {
RootOid oid = Oid.unmarshaller().unmarshal(oam.persistentOidStr, RootOid.class);
try {
- final ObjectAdapter adapter = persistenceSession.adapterFor(oid, concurrencyChecking);
+ final ObjectAdapter adapter = persistenceSession.adapterFor(oid);
return adapter;
} finally {
@@ -273,7 +270,7 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
final SpecificationLoader specificationLoader) {
// REVIEW: this may be redundant because recreateAdapter also guarantees the version will be reset.
final ObjectAdapter adapter = recreateAdapter(
- oam, ConcurrencyChecking.NO_CHECK, persistenceSession, specificationLoader);
+ oam, persistenceSession, specificationLoader);
Oid oid = adapter.getOid();
oam.persistentOidStr = oid.enString();
}
@@ -305,8 +302,8 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
@Override
ObjectAdapter recreateAdapter(
final ObjectAdapterMemento_LastKnownGood oam,
- final ConcurrencyChecking concurrencyChecking,
- final PersistenceSession persistenceSession, final SpecificationLoader specificationLoader) {
+ final PersistenceSession persistenceSession,
+ final SpecificationLoader specificationLoader) {
return oam.transientMemento.recreateObject();
}
@@ -334,16 +331,15 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
public ObjectAdapter getAdapter(
final ObjectAdapterMemento_LastKnownGood nom,
- final ConcurrencyChecking concurrencyChecking,
final PersistenceSession persistenceSession,
final SpecificationLoader specificationLoader) {
- return recreateAdapter(nom, concurrencyChecking, persistenceSession, specificationLoader);
+ return recreateAdapter(nom, persistenceSession, specificationLoader);
}
abstract ObjectAdapter recreateAdapter(
final ObjectAdapterMemento_LastKnownGood nom,
- final ConcurrencyChecking concurrencyChecking,
- final PersistenceSession persistenceSession, final SpecificationLoader specificationLoader);
+ final PersistenceSession persistenceSession,
+ final SpecificationLoader specificationLoader);
public abstract boolean equals(ObjectAdapterMemento_LastKnownGood oam, ObjectAdapterMemento_LastKnownGood other);
public abstract int hashCode(ObjectAdapterMemento_LastKnownGood ObjectAdapterMemento_LastKnownGood);
@@ -531,10 +527,9 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
* can call {@link #setAdapter(ObjectAdapter)} to keep this memento in sync.
*/
public ObjectAdapter getObjectAdapter(
- final ConcurrencyChecking concurrencyChecking,
final PersistenceSession persistenceSession,
final SpecificationLoader specificationLoader) {
- return sort.asAdapter(this, concurrencyChecking, persistenceSession, specificationLoader);
+ return sort.asAdapter(this, persistenceSession, specificationLoader);
}
/**
@@ -564,14 +559,13 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
// REVIEW: heavy handed, ought to be possible to just compare the OIDs
// ignoring the concurrency checking
- final ObjectAdapter currAdapter = getObjectAdapter(ConcurrencyChecking.NO_CHECK, persistenceSession,
+ final ObjectAdapter currAdapter = getObjectAdapter(persistenceSession,
specificationLoader);
for (ObjectAdapterMemento_LastKnownGood each : list) {
if(each == null) {
continue;
}
- final ObjectAdapter otherAdapter = each.getObjectAdapter(
- ConcurrencyChecking.NO_CHECK, persistenceSession, specificationLoader);
+ final ObjectAdapter otherAdapter = each.getObjectAdapter(persistenceSession, specificationLoader);
if(currAdapter == otherAdapter) {
return true;
}
@@ -627,13 +621,12 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
}
public static Function<ObjectAdapterMemento_LastKnownGood, ObjectAdapter> fromMemento(
- final ConcurrencyChecking concurrencyChecking,
final PersistenceSession persistenceSession,
final SpecificationLoader specificationLoader) {
return memento->{
try {
- return memento.getObjectAdapter(concurrencyChecking, persistenceSession, specificationLoader);
+ return memento.getObjectAdapter(persistenceSession, specificationLoader);
} catch (ObjectNotFoundException e) {
// this can happen if for example the object is not visible (due to the security tenanted facet)
return null;
@@ -654,7 +647,7 @@ public class ObjectAdapterMemento_LastKnownGood implements Serializable {
return null;
}
final ObjectAdapter objectAdapter = input
- .getObjectAdapter(ConcurrencyChecking.NO_CHECK, persistenceSession, specificationLoader);
+ .getObjectAdapter(persistenceSession, specificationLoader);
if(objectAdapter == null) {
return null;
}
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/runtime/persistence/adapter/PojoAdapter.java
index 63fe382..bf191fc 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/persistence/adapter/PojoAdapter.java
@@ -19,6 +19,8 @@
package org.apache.isis.runtime.persistence.adapter;
+import static org.apache.isis.commons.internal.base._With.requires;
+
import java.io.Serializable;
import java.util.Objects;
import java.util.UUID;
@@ -26,11 +28,9 @@ import java.util.UUID;
import org.apache.isis.commons.exceptions.IsisException;
import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.ParentedOid;
import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.metamodel.adapter.version.Version;
import org.apache.isis.metamodel.commons.ToString;
import org.apache.isis.metamodel.spec.ObjectSpecId;
@@ -40,8 +40,6 @@ import org.apache.isis.runtime.system.persistence.PersistenceSession;
import org.apache.isis.runtime.system.session.IsisSession;
import org.apache.isis.security.authentication.AuthenticationSession;
-import static org.apache.isis.commons.internal.base._With.requires;
-
import lombok.val;
import lombok.extern.log4j.Log4j2;
@@ -232,13 +230,13 @@ public final class PojoAdapter implements ObjectAdapter {
otherVersion != null &&
thisVersion.different(otherVersion)) {
- if(ConcurrencyChecking.isCurrentlyEnabled()) {
- log.info("concurrency conflict detected on {} ({})", thisOid, otherVersion);
- final String currentUser = authenticationSession.getUserName();
- throw new ConcurrencyException(currentUser, thisOid, thisVersion, otherVersion);
- } else {
+// if(ConcurrencyChecking.isCurrentlyEnabled()) {
+// log.info("concurrency conflict detected on {} ({})", thisOid, otherVersion);
+// final String currentUser = authenticationSession.getUserName();
+// throw new ConcurrencyException(currentUser, thisOid, thisVersion, otherVersion);
+// } else {
log.info("concurrency conflict detected but suppressed, on {} ({})", thisOid, otherVersion );
- }
+// }
}
}
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java
index 89d36bb..c31b63b 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java
@@ -27,7 +27,6 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterByIdProvider;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.PojoRecreationException;
@@ -37,7 +36,6 @@ import org.apache.isis.metamodel.adapter.version.Version;
import org.apache.isis.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.persistence.adapter.PojoAdapter;
import org.apache.isis.runtime.system.context.session.RuntimeContext;
import org.apache.isis.runtime.system.persistence.PersistenceSession;
import org.apache.isis.security.authentication.AuthenticationSession;
@@ -58,8 +56,6 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
private final PersistenceSession persistenceSession;
private final SpecificationLoader specificationLoader;
private final AuthenticationSession authenticationSession;
- private final boolean concurrencyCheckingGloballyEnabled;
-
ObjectAdapterContext_ObjectAdapterByIdProvider(
ObjectAdapterContext objectAdapterContext,
@@ -70,9 +66,7 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
this.persistenceSession = persistenceSession;
this.specificationLoader = runtimeContext.getSpecificationLoader();
this.authenticationSession = runtimeContext.getAuthenticationSession();
-
- this.concurrencyCheckingGloballyEnabled =
- !ConcurrencyChecking.isGloballyDisabled(persistenceSession.getConfiguration());
+
}
/**
@@ -103,9 +97,7 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
* @throws {@link org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException} if the object does not exist.
*/
@Override
- public ObjectAdapter adapterFor(
- final RootOid rootOid,
- final ConcurrencyChecking concurrencyChecking) {
+ public ObjectAdapter adapterFor(final RootOid rootOid) {
/* FIXME[ISIS-1976] SPI for adapterFor(RootOid)
* https://github.com/apache/isis/pull/121#discussion_r215889748
@@ -151,16 +143,14 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
}
// sync versions of original, with concurrency checking if required
- syncVersion(concurrencyChecking, adapter, rootOid);
+ syncVersion(adapter, rootOid);
return adapter;
}
@Override
- public Map<RootOid,ObjectAdapter> adaptersFor(
- final Stream<RootOid> rootOids,
- final ConcurrencyChecking concurrencyChecking) {
+ public Map<RootOid,ObjectAdapter> adaptersFor(final Stream<RootOid> rootOids) {
final Map<RootOid, ObjectAdapter> adapterByOid = _Maps.newLinkedHashMap();
@@ -173,7 +163,7 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
if (rootOid.isTransient() || rootOid.isViewModel()) {
final Object pojo = recreatePojoTransientOrViewModel(rootOid);
adapter = objectAdapterContext.recreatePojo(rootOid, pojo);
- syncVersion(concurrencyChecking, adapter, rootOid);
+ syncVersion(adapter, rootOid);
}
if (adapter != null) {
adapterByOid.put(rootOid, adapter);
@@ -198,7 +188,7 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
} catch(RuntimeException ex) {
throw new PojoRecreationException(rootOid, ex);
}
- syncVersion(concurrencyChecking, adapter, rootOid);
+ syncVersion(adapter, rootOid);
} else {
// null indicates it couldn't be loaded
// do nothing here...
@@ -242,9 +232,8 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
return viewModelPojo;
}
- private void syncVersion(
- final ConcurrencyChecking concurrencyChecking,
- final ObjectAdapter adapter, final RootOid rootOid) {
+ @Deprecated // no-op
+ private void syncVersion(final ObjectAdapter adapter, final RootOid rootOid) {
// sync versions of original, with concurrency checking if required
Oid adapterOid = adapter.getOid();
if(adapterOid instanceof RootOid) {
@@ -252,24 +241,24 @@ class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByI
final RootOid originalOid = rootOid;
try {
- if(concurrencyChecking.isChecking()) {
-
- // check for exception, but don't throw if suppressed through thread-local
- final Version otherVersion = originalOid.getVersion();
- final Version thisVersion = recreatedOid.getVersion();
- if( thisVersion != null &&
- otherVersion != null &&
- thisVersion.different(otherVersion)) {
-
- if(concurrencyCheckingGloballyEnabled && ConcurrencyChecking.isCurrentlyEnabled()) {
- log.info("concurrency conflict detected on {} ({})", recreatedOid, otherVersion);
- final String currentUser = authenticationSession.getUserName();
- throw new ConcurrencyException(currentUser, recreatedOid, thisVersion, otherVersion);
- } else {
- log.info("concurrency conflict detected but suppressed, on {} ({})", recreatedOid, otherVersion);
- }
- }
- }
+// if(concurrencyChecking.isChecking()) {
+//
+// // check for exception, but don't throw if suppressed through thread-local
+// final Version otherVersion = originalOid.getVersion();
+// final Version thisVersion = recreatedOid.getVersion();
+// if( thisVersion != null &&
+// otherVersion != null &&
+// thisVersion.different(otherVersion)) {
+//
+// if(concurrencyCheckingGloballyEnabled && ConcurrencyChecking.isCurrentlyEnabled()) {
+// log.info("concurrency conflict detected on {} ({})", recreatedOid, otherVersion);
+// final String currentUser = authenticationSession.getUserName();
+// throw new ConcurrencyException(currentUser, recreatedOid, thisVersion, otherVersion);
+// } else {
+// log.info("concurrency conflict detected but suppressed, on {} ({})", recreatedOid, otherVersion);
+// }
+// }
+// }
} finally {
final Version originalVersion = originalOid.getVersion();
final Version recreatedVersion = recreatedOid.getVersion();
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsServiceInternal.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsServiceInternal.java
index cbaeaf5..f4b23f2 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsServiceInternal.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsServiceInternal.java
@@ -35,7 +35,6 @@ import org.apache.isis.applib.services.WithTransactionScope;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.commons.internal.collections._Sets;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.Contributed;
import org.apache.isis.metamodel.spec.feature.ObjectAssociation;
@@ -201,35 +200,35 @@ public class ChangedObjectsServiceInternal implements WithTransactionScope {
}
private Set<Map.Entry<AdapterAndProperty, PreAndPostValues>> capturePostValuesAndDrain(final Map<AdapterAndProperty, PreAndPostValues> changedObjectProperties) {
- return ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(() -> {
- final Map<AdapterAndProperty, PreAndPostValues> processedObjectProperties = _Maps.newLinkedHashMap();
- while(!changedObjectProperties.isEmpty()) {
+ final Map<AdapterAndProperty, PreAndPostValues> processedObjectProperties = _Maps.newLinkedHashMap();
- final Set<AdapterAndProperty> keys = _Sets.newLinkedHashSet(changedObjectProperties.keySet());
- for (final AdapterAndProperty aap : keys) {
+ while(!changedObjectProperties.isEmpty()) {
- final PreAndPostValues papv = changedObjectProperties.remove(aap);
+ final Set<AdapterAndProperty> keys = _Sets.newLinkedHashSet(changedObjectProperties.keySet());
+ for (final AdapterAndProperty aap : keys) {
- final ObjectAdapter adapter = aap.getAdapter();
- if(adapter.isDestroyed()) {
- // don't touch the object!!!
- // JDO, for example, will complain otherwise...
- papv.setPost(IsisTransaction.Placeholder.DELETED);
- } else {
- papv.setPost(aap.getPropertyValue());
- }
+ final PreAndPostValues papv = changedObjectProperties.remove(aap);
- // if we encounter the same objectProperty again, this will simply overwrite it
- processedObjectProperties.put(aap, papv);
- }
- }
+ final ObjectAdapter adapter = aap.getAdapter();
+ if(adapter.isDestroyed()) {
+ // don't touch the object!!!
+ // JDO, for example, will complain otherwise...
+ papv.setPost(IsisTransaction.Placeholder.DELETED);
+ } else {
+ papv.setPost(aap.getPropertyValue());
+ }
+
+ // if we encounter the same objectProperty again, this will simply overwrite it
+ processedObjectProperties.put(aap, papv);
+ }
+ }
+
+ return Collections.unmodifiableSet(
+ processedObjectProperties.entrySet().stream()
+ .filter(PreAndPostValues.Predicates.SHOULD_AUDIT)
+ .collect(Collectors.toSet()) );
- return Collections.unmodifiableSet(
- processedObjectProperties.entrySet().stream()
- .filter(PreAndPostValues.Predicates.SHOULD_AUDIT)
- .collect(Collectors.toSet()) );
- });
}
protected boolean shouldIgnore(final ObjectAdapter adapter) {
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java
index 500d1e1..855f2a1 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java
@@ -37,7 +37,6 @@ import org.apache.isis.applib.services.xactn.Transaction;
import org.apache.isis.applib.services.xactn.TransactionState;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.Oid.Factory;
import org.apache.isis.metamodel.adapter.oid.RootOid;
@@ -87,7 +86,7 @@ implements PersistenceSessionServiceInternal {
final boolean denyRefresh = fieldResetPolicy == BookmarkService.FieldResetPolicy.DONT_REFRESH;
if(rootOid.isViewModel()) {
- final ObjectAdapter adapter = ps.adapterFor(rootOid, ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter adapter = ps.adapterFor(rootOid);
final Object pojo = mapIfPresentElse(adapter, ObjectAdapter::getPojo, null);
return pojo;
@@ -98,7 +97,7 @@ implements PersistenceSessionServiceInternal {
return pojo;
} else {
- final ObjectAdapter adapter = ps.adapterFor(rootOid, ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter adapter = ps.adapterFor(rootOid);
final Object pojo = mapIfPresentElse(adapter, ObjectAdapter::getPojo, null);
acceptIfPresent(pojo, ps::refreshRootInTransaction);
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
index 0679d08..f3dd078 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
@@ -36,7 +36,6 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.plugins.ioc.RequestContextHandle;
import org.apache.isis.commons.internal.plugins.ioc.RequestContextService;
import org.apache.isis.commons.internal.plugins.ioc.RequestContextServiceDefault;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.feature.ObjectMember;
import org.apache.isis.metamodel.specloader.validator.MetaModelInvalidException;
import org.apache.isis.runtime.system.context.IsisContext;
@@ -135,7 +134,6 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
log.debug("onRequestHandlerResolved in");
if(handler instanceof RenderPageRequestHandler) {
- ConcurrencyChecking.disable();
val metaModelDeficiencies = IsisContext.getMetaModelDeficienciesIfAny();
@@ -163,10 +161,6 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
public void onRequestHandlerExecuted(RequestCycle cycle, IRequestHandler handler) {
log.debug("onRequestHandlerExecuted: handler: {}", handler);
- if(handler instanceof RenderPageRequestHandler) {
- ConcurrencyChecking.reset(ConcurrencyChecking.CHECK);
- }
-
try {
IsisRequestCycle.onRequestHandlerExecuted();
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionMemento.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionMemento.java
index 347fd48..c1f28db 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionMemento.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionMemento.java
@@ -21,8 +21,6 @@ package org.apache.isis.viewer.wicket.model.mementos;
import java.io.Serializable;
-import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.ActionType;
import org.apache.isis.metamodel.spec.ObjectSpecId;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -39,7 +37,6 @@ public class ActionMemento implements Serializable {
private final ObjectSpecId owningType;
private final ActionType actionType;
private final String nameParmsId;
- private final SemanticsOf actionSemantics;
private transient ObjectAction action;
@@ -64,7 +61,6 @@ public class ActionMemento implements Serializable {
this.actionType = actionType;
this.nameParmsId = nameParmsId;
this.action = action;
- this.actionSemantics = action.getSemantics();
}
public ObjectSpecId getOwningType() {
@@ -79,10 +75,6 @@ public class ActionMemento implements Serializable {
return nameParmsId;
}
- public ConcurrencyChecking getConcurrencyChecking() {
- return ConcurrencyChecking.concurrencyCheckingFor(this.actionSemantics);
- }
-
public ObjectAction getAction(final SpecificationLoader specificationLoader) {
if (action == null) {
action = actionFor(owningType, actionType, nameParmsId, specificationLoader);
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento_Legacy.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento_Legacy.java
index ed7938a..cb22f41 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento_Legacy.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento_Legacy.java
@@ -19,34 +19,6 @@
package org.apache.isis.viewer.wicket.model.mementos;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import javax.annotation.Nullable;
-
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.hint.HintStore;
-import org.apache.isis.commons.internal.base._NullSafe;
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
-import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.metamodel.facets.object.encodeable.EncodableFacet;
-import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.Memento;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
-import org.apache.isis.runtime.system.context.IsisContext;
-
-import static org.apache.isis.commons.internal.base._With.requires;
-
-import lombok.val;
-
final class ObjectAdapterMemento_Legacy /*implements ObjectAdapterMemento*/ {
// private static final long serialVersionUID = 1L;
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index e2648c4..c26891d 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -42,7 +42,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.consent.Consent;
@@ -116,27 +115,30 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
* see {@link #ActionModel(PageParameters, SpecificationLoader)}
*/
public static PageParameters createPageParameters(
- final ObjectAdapter adapter, final ObjectAction objectAction, final ConcurrencyChecking concurrencyChecking) {
+ final ObjectAdapter adapter, final ObjectAction objectAction) {
final PageParameters pageParameters = PageParametersUtils.newPageParameters();
- final String oidStr = concurrencyChecking == ConcurrencyChecking.CHECK?
- adapter.getOid().enString():
- adapter.getOid().enStringNoVersion();
- PageParameterNames.OBJECT_OID.addStringTo(pageParameters, oidStr);
+// final String oidStr = concurrencyChecking == ConcurrencyChecking.CHECK?
+// adapter.getOid().enString():
+// adapter.getOid().enStringNoVersion();
+
+ val oidStr = adapter.getOid().enStringNoVersion();
+
+ PageParameterNames.OBJECT_OID.addStringTo(pageParameters, oidStr);
- final ActionType actionType = objectAction.getType();
- PageParameterNames.ACTION_TYPE.addEnumTo(pageParameters, actionType);
+ final ActionType actionType = objectAction.getType();
+ PageParameterNames.ACTION_TYPE.addEnumTo(pageParameters, actionType);
- final ObjectSpecification actionOnTypeSpec = objectAction.getOnType();
- if (actionOnTypeSpec != null) {
- PageParameterNames.ACTION_OWNING_SPEC.addStringTo(pageParameters, actionOnTypeSpec.getFullIdentifier());
- }
+ final ObjectSpecification actionOnTypeSpec = objectAction.getOnType();
+ if (actionOnTypeSpec != null) {
+ PageParameterNames.ACTION_OWNING_SPEC.addStringTo(pageParameters, actionOnTypeSpec.getFullIdentifier());
+ }
- final String actionId = determineActionId(objectAction);
- PageParameterNames.ACTION_ID.addStringTo(pageParameters, actionId);
+ final String actionId = determineActionId(objectAction);
+ PageParameterNames.ACTION_ID.addStringTo(pageParameters, actionId);
- return pageParameters;
+ return pageParameters;
}
@@ -189,7 +191,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
final ObjectAdapter adapter = getTargetAdapter();
final ObjectAction objectAction = getAction();
final PageParameters pageParameters = createPageParameters(
- adapter, objectAction, ConcurrencyChecking.NO_CHECK);
+ adapter, objectAction);
// capture argument values
final ObjectAdapter[] argumentsAsArray = getArgumentsAsArray();
@@ -421,11 +423,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
}
public ObjectAdapter getTargetAdapter() {
- return entityModel.load(getConcurrencyChecking());
- }
-
- protected ConcurrencyChecking getConcurrencyChecking() {
- return actionMemento.getConcurrencyChecking();
+ return entityModel.load();
}
public ActionMemento getActionMemento() {
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 2a6d8c9..247274e 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -22,17 +22,11 @@ package org.apache.isis.viewer.wicket.model.models;
import java.io.Serializable;
import java.util.Map;
-import org.apache.wicket.Component;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.component.CollectionLayoutData;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.commons.internal.debug._Probe;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
@@ -42,14 +36,14 @@ import org.apache.isis.metamodel.spec.ObjectSpecId;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.runtime.memento.ObjectAdapterMemento;
-import org.apache.isis.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
import org.apache.isis.viewer.wicket.model.util.ComponentHintKey;
-
-import lombok.val;
+import org.apache.wicket.Component;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
/**
* Backing model to represent a {@link ObjectAdapter}.
@@ -323,35 +317,9 @@ implements ObjectAdapterModel, UiHintContainer {
// //////////////////////////////////////////////////////////
// loadObject, load, setObject
// //////////////////////////////////////////////////////////
-
- private final static _Probe probe = _Probe.unlimited().label("EntityModel");
/**
- * Not Wicket API, but used by <tt>EntityPage</tt> to do eager loading
- * when rendering after post-and-redirect.
- * @return
- */
- @Deprecated //TODO [2033] remove ?
- public ObjectAdapter load(ConcurrencyChecking concurrencyChecking) {
-
- if(concurrencyChecking==ConcurrencyChecking.CHECK && adapterMemento!=null) {
- val spec = IsisContext.getSpecificationLoader().lookupBySpecIdElseLoad(adapterMemento.getObjectSpecId());
- if(spec.isEntity()) {
- val info = "adapterMemento '"+adapterMemento+"'";
- probe.warnNotImplementedYet("[2033] ConcurrencyChecking no longer supported!? "+info);
- }
- }
-
- return load();
- }
-
- /**
- * Callback from {@link #getObject()}, defaults to loading the object
- * using {@link ConcurrencyChecking#CHECK strict} checking.
- *
- * <p>
- * If non-strict checking is required, then just call {@link #load(ConcurrencyChecking)} with an
- * argument of {@link ConcurrencyChecking#NO_CHECK} first.
+ * Callback from {@link #getObject()}.
*/
@Override
public ObjectAdapter load() {
@@ -361,7 +329,11 @@ implements ObjectAdapterModel, UiHintContainer {
final ObjectAdapter objectAdapter = adapterMemento.getObjectAdapter();
return objectAdapter;
}
-
+
+ @Deprecated //removed with ISIS-2154
+ public ObjectAdapter loadWithConcurrencyChecking() {
+ return load();
+ }
@Override
public void setObject(final ObjectAdapter adapter) {
@@ -650,4 +622,6 @@ implements ObjectAdapterModel, UiHintContainer {
+
+
}
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index aedd02a..2448ad8 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -30,7 +30,6 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
@@ -191,7 +190,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
final PropertyMemento propertyMemento = scalarModel.getPropertyMemento();
final OneToOneAssociation property = propertyMemento.getProperty(scalarModel.getSpecificationLoader());
- ObjectAdapter parentAdapter = scalarModel.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ ObjectAdapter parentAdapter = scalarModel.getParentEntityModel().load();
return property.getDefault(parentAdapter);
}
@@ -210,7 +209,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
final PropertyMemento propertyMemento = scalarModel.getPropertyMemento();
final OneToOneAssociation property = propertyMemento.getProperty(scalarModel.getSpecificationLoader());
- ObjectAdapter parentAdapter = scalarModel.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ ObjectAdapter parentAdapter = scalarModel.getParentEntityModel().load();
final ObjectAdapter[] choices = property.getChoices(
parentAdapter,
InteractionInitiatedBy.USER);
@@ -234,7 +233,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
final PropertyMemento propertyMemento = scalarModel.getPropertyMemento();
final OneToOneAssociation property = propertyMemento.getProperty(scalarModel.getSpecificationLoader());
final ObjectAdapter parentAdapter =
- scalarModel.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ scalarModel.getParentEntityModel().load();
final ObjectAdapter[] choices =
property.getAutoComplete(
parentAdapter, searchArg,
@@ -469,7 +468,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
final ObjectActionParameter actionParameter = parameterMemento.getActionParameter(scalarModel.getSpecificationLoader());
final ObjectAdapter parentAdapter =
- scalarModel.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ scalarModel.getParentEntityModel().load();
final ObjectAdapter[] choices = actionParameter.getAutoComplete(
parentAdapter, searchArg,
InteractionInitiatedBy.USER);
@@ -542,7 +541,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
final ObjectActionParameter actionParameter = scalarModel.parameterMemento.getActionParameter(
scalarModel.getSpecificationLoader());
final ObjectAdapter parentAdapter =
- scalarModel.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ scalarModel.getParentEntityModel().load();
final ObjectAdapter defaultAdapter = actionParameter.getDefault(parentAdapter, null, null);
scalarModel.setObject(defaultAdapter);
}
@@ -1206,7 +1205,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
}
final EntityModel parentEntityModel1 = this.getParentEntityModel();
- final ObjectAdapter parentAdapter = parentEntityModel1.load(ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter parentAdapter = parentEntityModel1.load();
final OneToOneAssociation oneToOneAssociation =
this.getPropertyMemento().getProperty(this.getSpecificationLoader());
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
index 94840ab..128b014 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
@@ -20,7 +20,6 @@
package org.apache.isis.viewer.wicket.model.models;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.runtime.memento.ObjectAdapterMemento;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
index e0a5207..1aa5489 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
@@ -19,21 +19,15 @@ package org.apache.isis.viewer.wicket.ui.actionresponse;
import java.net.URL;
import java.util.Collection;
import java.util.List;
-import java.util.concurrent.Callable;
-
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.request.IRequestHandler;
import org.apache.isis.applib.value.Blob;
import org.apache.isis.applib.value.Clob;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.runtime.system.context.IsisContext;
-import org.apache.isis.runtime.system.session.IsisSessionFactory;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
import org.apache.isis.viewer.wicket.model.models.ValueModel;
@@ -42,6 +36,8 @@ import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.pages.standalonecollection.StandaloneCollectionPage;
import org.apache.isis.viewer.wicket.ui.pages.value.ValuePage;
import org.apache.isis.viewer.wicket.ui.pages.voidreturn.VoidReturnPage;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.request.IRequestHandler;
import lombok.val;
@@ -154,19 +150,7 @@ public enum ActionResultResponseType {
// this will not preserve the URL (because pageParameters are not copied over)
// but trying to preserve them seems to cause the 302 redirect to be swallowed somehow
- final EntityPage entityPage =
-
- // disabling concurrency checking after the layout XML (grid) feature
- // was throwing an exception when rebuild grid after invoking action
- // not certain why that would be the case, but think it should be
- // safe to simply disable while recreating the page to re-render back to user.
- ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
- new Callable<EntityPage>() {
- @Override public EntityPage call() throws Exception {
- return new EntityPage(actualAdapter, exIfAny);
- }
- }
- );
+ final EntityPage entityPage = new EntityPage(actualAdapter, exIfAny);
return ActionResultResponse.toPage(entityPage);
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
index 55e9180..798e475 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
@@ -19,15 +19,14 @@
package org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions;
-import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.model.models.ToggledMementosProvider;
import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLinkFactoryAbstract;
+import org.apache.wicket.markup.html.link.AbstractLink;
public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
@@ -45,7 +44,7 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
final String linkId,
final ToggledMementosProvider toggledMementosProviderIfAny) {
- final ObjectAdapter objectAdapter = this.targetEntityModel.load(ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter objectAdapter = this.targetEntityModel.load();
final boolean persistent = objectAdapter.isRepresentingPersistent();
if (!persistent) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index c6e3c5f..a3c689b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -23,17 +23,7 @@ import java.util.List;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
-
-import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.SubmitLink;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.model.Model;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facets.all.describedas.DescribedAsFacet;
@@ -43,7 +33,6 @@ import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
import org.apache.isis.runtime.memento.ObjectAdapterMemento;
import org.apache.isis.runtime.system.context.IsisContext;
-import org.apache.isis.runtime.system.persistence.PersistenceSession;
import org.apache.isis.runtime.system.session.IsisSessionFactory;
import org.apache.isis.security.authentication.AuthenticationSession;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -54,6 +43,14 @@ import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.Page;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.SubmitLink;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.model.Model;
class CssMenuItem implements Serializable {
@@ -356,7 +353,7 @@ class CssMenuItem implements Serializable {
final boolean separator = serviceAndAction.separator;
final ServiceActionLinkFactory actionLinkFactory = serviceAndAction.linkAndLabelFactory;
- final ObjectAdapter serviceAdapter = targetEntityModel.load(ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter serviceAdapter = targetEntityModel.load();
final ObjectSpecification serviceSpec = serviceAdapter.getSpecification();
if (serviceSpec.isHidden()) {
return null;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
index 063063f..b054bc3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
@@ -19,14 +19,13 @@
package org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions;
-import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ToggledMementosProvider;
import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLinkFactoryAbstract;
+import org.apache.wicket.markup.html.link.AbstractLink;
class ServiceActionLinkFactory extends ActionLinkFactoryAbstract {
@@ -42,7 +41,7 @@ class ServiceActionLinkFactory extends ActionLinkFactoryAbstract {
final String linkId,
final ToggledMementosProvider toggledMementosProviderIfAny) {
- ObjectAdapter objectAdapter = this.targetEntityModel.load(ConcurrencyChecking.NO_CHECK);
+ ObjectAdapter objectAdapter = this.targetEntityModel.load();
final AbstractLink link = newLink(linkId, objectAction, toggledMementosProviderIfAny);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java
index 1107638..313eac2 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java
@@ -27,7 +27,6 @@ import java.util.stream.Stream;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.context._Context;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.ActionType;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.Contributed;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
index 34d51fc..bda6807 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
@@ -23,13 +23,7 @@ import java.io.Serializable;
import java.util.List;
import org.apache.isis.commons.internal.collections._Lists;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
-import org.apache.wicket.markup.html.basic.Label;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.runtime.memento.ObjectAdapterMemento;
@@ -46,6 +40,10 @@ import org.apache.isis.viewer.wicket.ui.components.collection.selector.Collectio
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
+import org.apache.wicket.markup.html.basic.Label;
import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
@@ -75,7 +73,7 @@ BulkActionsProvider {
final OneToManyAssociation otma = collectionModel.getCollectionMemento().getCollection(collectionModel.getSpecificationLoader());
final EntityModel entityModel = collectionModel.getEntityModel();
- final ObjectAdapter adapter = entityModel.load(ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter adapter = entityModel.load();
final List<ObjectAction> associatedActions =
ObjectAction.Util.findForAssociation(adapter, otma);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 5a9281c..2ccedb3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -19,20 +19,15 @@
package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable;
+import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
+
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Predicate;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
-import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
-import org.apache.wicket.model.Model;
-
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.grid.Grid;
import org.apache.isis.applib.services.tablecol.TableColumnOrderService;
@@ -40,7 +35,6 @@ import org.apache.isis.commons.collections.Bin;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facets.WhereValueFacet;
@@ -62,8 +56,11 @@ import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterTitleColumn;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-
-import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.apache.wicket.model.Model;
/**
* {@link PanelAbstract Panel} that represents a {@link EntityCollectionModel
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
index 068c1d3..2c683c8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
@@ -20,21 +20,21 @@
package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns;
import java.util.List;
+
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
+import org.apache.isis.viewer.wicket.model.common.OnConcurrencyExceptionHandler;
+import org.apache.isis.viewer.wicket.model.common.OnSelectionHandler;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.ui.components.widgets.checkbox.ContainedToggleboxPanel;
+import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
-import org.apache.isis.viewer.wicket.model.common.OnConcurrencyExceptionHandler;
-import org.apache.isis.viewer.wicket.model.common.OnSelectionHandler;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.components.widgets.checkbox.ContainedToggleboxPanel;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
public final class ObjectAdapterToggleboxColumn extends ColumnAbstract<ObjectAdapter> {
@@ -116,14 +116,14 @@ public final class ObjectAdapterToggleboxColumn extends ColumnAbstract<ObjectAda
final EntityModel entityModel = (EntityModel) rowModel;
ObjectAdapter selectedAdapter = null;
try {
- selectedAdapter = entityModel.load(ConcurrencyChecking.CHECK);
+ selectedAdapter = entityModel.loadWithConcurrencyChecking();
if(onSelectionHandler != null) {
onSelectionHandler.onSelected(this, selectedAdapter, target);
}
} catch(ConcurrencyException ex) {
// should work second time, because the previous attempt will have updated the OAM's OIDs version.
- selectedAdapter = entityModel.load(ConcurrencyChecking.CHECK);
+ selectedAdapter = entityModel.loadWithConcurrencyChecking();
if(onConcurrencyExceptionHandler != null) {
onConcurrencyExceptionHandler.onConcurrencyException(this, selectedAdapter, ex, target);
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityComponentFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityComponentFactoryAbstract.java
index a7d5136..c2884b1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityComponentFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityComponentFactoryAbstract.java
@@ -19,15 +19,14 @@
package org.apache.isis.viewer.wicket.ui.components.entity;
-import org.apache.wicket.Component;
-import org.apache.wicket.model.IModel;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract;
import org.apache.isis.viewer.wicket.ui.ComponentType;
+import org.apache.wicket.Component;
+import org.apache.wicket.model.IModel;
/**
* Convenience adapter for a number of {@link ComponentFactoryAbstract component
@@ -57,7 +56,7 @@ public abstract class EntityComponentFactoryAbstract extends ComponentFactoryAbs
// is therefore not called. resulting in a concurrency exception.
//
// Therefore, we do the same processing here instead.
- final ObjectAdapter adapter = entityModel.load(ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter adapter = entityModel.load();
if (adapter == null) {
// is ok;
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index 372a2bc..d3c6969 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -21,20 +21,10 @@ package org.apache.isis.viewer.wicket.ui.components.entity.icontitle;
import javax.inject.Inject;
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.ResourceReference;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.facets.members.cssclassfa.CssClassFaFacet;
import org.apache.isis.metamodel.facets.object.projection.ProjectionFacet;
import org.apache.isis.runtime.memento.ObjectAdapterMemento;
-import org.apache.isis.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
@@ -47,6 +37,14 @@ import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.wicket.Page;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ResourceReference;
/**
* {@link PanelAbstract Panel} representing the icon and title of an entity,
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java
index c22db01..aac1211 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java
@@ -18,15 +18,12 @@
*/
package org.apache.isis.viewer.wicket.ui.components.property;
-import java.util.concurrent.Callable;
-
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.panels.FormExecutorStrategy;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.request.cycle.RequestCycle;
public class PropertyFormExecutorStrategy implements FormExecutorStrategy<ScalarModel> {
@@ -75,19 +72,8 @@ public class PropertyFormExecutorStrategy implements FormExecutorStrategy<Scalar
public void redirectTo(
final ObjectAdapter resultAdapter,
final AjaxRequestTarget target) {
- // disabling concurrency checking after the layout XML (grid) feature
- // was throwing an exception when rebuild grid after invoking edit prompt.
- // not certain why that would be the case, but (following similar code for action prompt)
- // think it should be safe to simply disable while recreating the page to re-render back to user.
- final EntityPage entityPage =
- ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
- new Callable<EntityPage>() {
- @Override public EntityPage call() throws Exception {
- return new EntityPage(resultAdapter, null);
- }
- }
- );
-
+
+ final EntityPage entityPage = new EntityPage(resultAdapter, null);
final RequestCycle requestCycle = RequestCycle.get();
requestCycle.setResponsePage(entityPage);
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
index a24d4b3..165ac60 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
@@ -18,30 +18,32 @@
*/
package org.apache.isis.viewer.wicket.ui.components.propertyheader;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.model.IModel;
public class PropertyEditPromptHeaderPanel extends PanelAbstract<ScalarModel> {
- private static final String ID_PROPERTY_NAME = "propertyName";
+ private static final long serialVersionUID = 1L;
+ private static final String ID_PROPERTY_NAME = "propertyName";
public PropertyEditPromptHeaderPanel(String id, final ScalarModel model) {
super(id, model);
- ObjectAdapter targetAdapter = model.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ ObjectAdapter targetAdapter = model.getParentEntityModel().load();
getComponentFactoryRegistry().addOrReplaceComponent(this, ComponentType.ENTITY_ICON_AND_TITLE, new EntityModel(targetAdapter));
- final Label label = new Label(ID_PROPERTY_NAME, new AbstractReadOnlyModel<String>() {
- @Override
+ final Label label = new Label(ID_PROPERTY_NAME, new IModel<String>() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
public String getObject() {
final OneToOneAssociation property = model.getPropertyMemento().getProperty(getSpecificationLoader());
return property.getName();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 5475735..9786e21 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -21,21 +21,10 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
import java.util.List;
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.behavior.Behavior;
-import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
-import org.apache.wicket.markup.html.panel.Fragment;
-import org.apache.wicket.model.Model;
-
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.metamodel.facets.objectvalue.labelat.LabelAtFacet;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -45,6 +34,15 @@ import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.Addi
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel.ScalarModelProvider;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
+import org.apache.wicket.markup.html.panel.Fragment;
+import org.apache.wicket.model.Model;
/**
* Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
@@ -269,7 +267,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
ScalarModel model = getModel();
final CssClassFacet facet = model.getFacet(CssClassFacet.class);
if(facet != null) {
- final ObjectAdapter parentAdapter = model.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter parentAdapter = model.getParentEntityModel().load();
final String cssClass = facet.cssClass(parentAdapter);
CssClassAppender.appendCssClassTo(this, cssClass);
}
@@ -335,6 +333,8 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
return "label-none";
case TOP:
return "label-top";
+ default:
+ break;
}
}
return "label-left";
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index c0ac668..38f9bee 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -21,22 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
import java.util.List;
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.RestartResponseException;
-import org.apache.wicket.ajax.AjaxEventBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.behavior.Behavior;
-import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
-import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.services.metamodel.MetaModelService;
@@ -44,7 +28,6 @@ import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.ioc.BeanSort;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
@@ -79,6 +62,21 @@ import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
@@ -523,7 +521,7 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
if(facet != null) {
final ObjectAdapter parentAdapter =
- model.getParentEntityModel().load(ConcurrencyChecking.NO_CHECK);
+ model.getParentEntityModel().load();
final String cssClass = facet.cssClass(parentAdapter);
CssClassAppender.appendCssClassTo(this, cssClass);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index bdfe711..d1455b1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -19,9 +19,15 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs;
import java.util.Collection;
import java.util.List;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
+import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.metamodel.adapter.oid.Oid;
+import org.apache.isis.metamodel.adapter.oid.RootOid;
+import org.apache.isis.security.authentication.MessageBroker;
+import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
+import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
+import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.model.IModel;
@@ -32,16 +38,8 @@ import org.wicketstuff.select2.Response;
import org.wicketstuff.select2.Select2Choice;
import org.wicketstuff.select2.Settings;
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
-import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.security.authentication.MessageBroker;
-import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
-import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java
index 8706073..9a8e450 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanel.java
@@ -19,16 +19,15 @@
package org.apache.isis.viewer.wicket.ui.components.widgets.entitysimplelink;
-import org.apache.wicket.Component;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.FormComponentPanel;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.CancelHintRequired;
import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormComponentPanelAbstract;
+import org.apache.wicket.Component;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.FormComponentPanel;
/**
* {@link FormComponentPanel} representing a reference to an entity: a link and
@@ -44,15 +43,7 @@ public class EntityLinkSimplePanel extends FormComponentPanelAbstract<ObjectAdap
public EntityLinkSimplePanel(final String id, final EntityModel entityModel) {
super(id, entityModel);
setType(ObjectAdapter.class);
-
- // this is a bit of a hack, but getting a concurrency exception when click on a tab
- // which simply holds a newly modified reference.
- ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(new Runnable() {
- @Override
- public void run() {
- buildGui();
- }
- });
+ buildGui();
}
public EntityModel getEntityModel() {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index d1b57d7..4d85015 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -18,19 +18,9 @@
package org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel;
import java.util.List;
-import java.util.concurrent.Callable;
import javax.annotation.Nullable;
-import org.apache.wicket.Application;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Page;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.model.AbstractReadOnlyModel;
-import org.apache.wicket.request.cycle.RequestCycle;
-
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.layout.grid.Grid;
import org.apache.isis.applib.layout.grid.bootstrap3.BS3Grid;
@@ -40,7 +30,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.ioc.BeanSort;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.facets.object.grid.GridFacet;
import org.apache.isis.metamodel.postprocessors.param.ActionParameterDefaultsFacetFromAssociatedCollection;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -73,6 +62,14 @@ import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.panels.FormExecutorDefault;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
+import org.apache.wicket.Application;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.Page;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.model.AbstractReadOnlyModel;
+import org.apache.wicket.request.cycle.RequestCycle;
import lombok.val;
@@ -260,19 +257,7 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
// an error page, but is probably 'good enough').
final ObjectAdapter targetAdapter = actionModel.getTargetAdapter();
- final EntityPage entityPage =
-
- // disabling concurrency checking after the layout XML (grid) feature
- // was throwing an exception when rebuild grid after invoking action
- // not certain why that would be the case, but think it should be
- // safe to simply disable while recreating the page to re-render back to user.
- ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
- new Callable<EntityPage>() {
- @Override public EntityPage call() throws Exception {
- return new EntityPage(targetAdapter, null);
- }
- }
- );
+ final EntityPage entityPage = new EntityPage(targetAdapter, null);
val txManager = IsisContext.getTransactionManagerJdo().get();
txManager.flushTransaction();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
index 66ba2fa..b5c4cb9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
@@ -19,12 +19,7 @@
package org.apache.isis.viewer.wicket.ui.panels;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.IFormSubmitter;
-import org.apache.wicket.model.IModel;
-
import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
import org.apache.isis.runtime.system.context.IsisContext;
import org.apache.isis.runtime.system.persistence.PersistenceSession;
@@ -33,6 +28,8 @@ import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.IModel;
public abstract class FormAbstract<T> extends Form<T>
implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor {
@@ -47,40 +44,6 @@ implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor {
super(id, model);
}
-
- // ///////////////////////////////////////////////////////////////////
- // process() override
- // ///////////////////////////////////////////////////////////////////
-
- private String preValidationErrorIfAny;
-
- @Override
- public void process(final IFormSubmitter submittingComponent) {
- try {
-
- if(submittingComponent instanceof IFormSubmitterWithPreValidateHook) {
- IFormSubmitterWithPreValidateHook componentWithPreSubmitHook = (IFormSubmitterWithPreValidateHook) submittingComponent;
- preValidationErrorIfAny = componentWithPreSubmitHook.preValidate();
- }
-
- if(preValidationErrorIfAny != null) {
- // an exception has already occurred, so disable for remainder of thread.
- ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(new Runnable(){
- @Override
- public void run() {
- FormAbstract.super.process(submittingComponent);
- }
- });
- } else {
- super.process(submittingComponent);
- }
-
- } finally {
- preValidationErrorIfAny = null;
- }
- }
-
-
// ///////////////////////////////////////////////////////////////////
// Convenience
// ///////////////////////////////////////////////////////////////////
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index 91403f4..031a0a7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -33,7 +33,6 @@ import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.metamodel.facets.actions.redirect.RedirectFacet;
import org.apache.isis.metamodel.facets.properties.renderunchanged.UnchangingFacet;
@@ -345,19 +344,7 @@ implements FormExecutor {
// this will not preserve the URL (because pageParameters are not copied over)
// but trying to preserve them seems to cause the 302 redirect to be swallowed somehow
- final EntityPage entityPage =
-
- // disabling concurrency checking after the layout XML (grid) feature
- // was throwing an exception when rebuild grid after invoking action
- // not certain why that would be the case, but think it should be
- // safe to simply disable while recreating the page to re-render back to user.
- ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
- new Callable<EntityPage>() {
- @Override public EntityPage call() throws Exception {
- return new EntityPage(targetAdapter, ex);
- }
- }
- );
+ final EntityPage entityPage =new EntityPage(targetAdapter, ex);
// force any changes in state etc to happen now prior to the redirect;
// in the case of an object being returned, this should cause our page mementos