You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/12/31 08:12:23 UTC
[1/2] isis git commit: ISIS-970: refactoring the
Bulk.InteractionContext and BulkInteractionContext services: no longer does
former inherit from latter...
Repository: isis
Updated Branches:
refs/heads/ISIS-970 b6bd26b18 -> 4eed0900f
ISIS-970: refactoring the Bulk.InteractionContext and BulkInteractionContext services: no longer does former inherit from latter...
... instead these are two separate services, with BulkInteractionContext renamed to ActionInvocationContext.
Refactored ToDoItem to use ActionInvocationContext rather than Bulk.InteractionContext
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e11eaef2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e11eaef2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e11eaef2
Branch: refs/heads/ISIS-970
Commit: e11eaef27ebabb560be4680a3ff039637743a794
Parents: b6bd26b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Dec 30 23:58:00 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Dec 30 23:58:00 2014 +0000
----------------------------------------------------------------------
.../collection/bulk/BulkActionsLinkFactory.java | 19 +-
.../annotation/ActionInvocationContext.java | 176 +++++++++++++++
.../org/apache/isis/applib/annotation/Bulk.java | 133 ++++++++++-
.../annotation/BulkInteractionContext.java | 218 -------------------
...onInvocationFacetForInteractionAbstract.java | 27 ++-
.../specimpl/ObjectActionContributee.java | 29 ++-
.../system/transaction/IsisTransaction.java | 7 +-
.../transaction/IsisTransactionManager.java | 6 +-
.../system/transaction/IsisTransactionTest.java | 8 +-
.../dom/src/main/java/dom/todo/ToDoItem.java | 19 +-
.../src/test/java/dom/todo/ToDoItemTest.java | 4 +-
.../integration/glue/todoitem/ToDoItemGlue.java | 8 +-
12 files changed, 379 insertions(+), 275 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index bceec46..a46de73 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -26,8 +26,9 @@ import org.apache.wicket.Session;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.isis.applib.RecoverableException;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.BulkInteractionContext;
+import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.InvokedOn;
import org.apache.isis.applib.services.command.Command;
import org.apache.isis.applib.services.command.Command.Executor;
@@ -91,14 +92,20 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
Iterables.transform(toggleMementosList, ObjectAdapterMemento.Functions.fromMemento(concurrencyChecking));
final List<Object> domainObjects = Lists.newArrayList(Iterables.transform(toggledAdapters, ObjectAdapter.Functions.getObject()));
-
-
- final BulkInteractionContext bulkInteractionContext = BulkInteractionContext.current.get();
+
+
+ final ActionInvocationContext actionInvocationContext = getServicesInjector().lookupService(ActionInvocationContext.class);
+ if (actionInvocationContext != null) {
+ actionInvocationContext.setInvokedOn(InvokedOn.COLLECTION);
+ actionInvocationContext.setDomainObjects(domainObjects);
+ }
+
+ final Bulk.InteractionContext bulkInteractionContext = getServicesInjector().lookupService(Bulk.InteractionContext.class);
if (bulkInteractionContext != null) {
- bulkInteractionContext.setActionInvokedOn(InvokedOn.COLLECTION);
+ bulkInteractionContext.setInvokedAs(Bulk.InteractionContext.InvokedAs.BULK);
bulkInteractionContext.setDomainObjects(domainObjects);
}
-
+
final CommandContext commandContext = getServicesInjector().lookupService(CommandContext.class);
final Command command;
if (commandContext != null) {
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java
new file mode 100644
index 0000000..93aad9a
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.applib.annotation;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * This service (API and implementation) provides access to context information about a bulk action invocation.
+ *
+ * <p>
+ * This implementation has no UI and there is only one implementation (this class) in applib, so it is annotated
+ * with {@link DomainService}. This means that it is automatically registered
+ * and available for use; no further configuration is required.
+ * </p>
+ *
+ * <p>
+ * Note that this not annotated as <tt>@DomainService</tt> an <tt>@RequestScoped</tt> only because of the
+ * legacy {@link org.apache.isis.applib.annotation.Bulk.InteractionContext} subclass (which *is* registered as
+ * the service).
+ * </p>
+ */
+public abstract class ActionInvocationContext {
+
+ /**
+ * Intended only to support unit testing.
+ */
+ public static ActionInvocationContext onObject(final Object domainObject) {
+ return new ActionInvocationContext(InvokedOn.OBJECT, Collections.singletonList(domainObject)){};
+ }
+
+ /**
+ * Intended only to support unit testing.
+ */
+ public static ActionInvocationContext onCollection(final Object... domainObjects) {
+ return onCollection(Arrays.asList(domainObjects));
+ }
+
+ /**
+ * Intended only to support unit testing.
+ */
+ public static ActionInvocationContext onCollection(final List<Object> domainObjects) {
+ return new ActionInvocationContext(InvokedOn.COLLECTION, domainObjects){};
+ }
+
+ // //////////////////////////////////////
+
+
+ private InvokedOn invokedOn;
+ private List<Object> domainObjects;
+
+ private int index;
+
+ // //////////////////////////////////////
+
+ public ActionInvocationContext() {
+ }
+
+ /**
+ * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
+ */
+ @Deprecated
+ public ActionInvocationContext(final InvokedOn invokedOn, final Object... domainObjects) {
+ this(invokedOn, Arrays.asList(domainObjects));
+ }
+
+ /**
+ * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
+ */
+ @Deprecated
+ public ActionInvocationContext(final InvokedOn invokedOn, final List<Object> domainObjects) {
+ this.invokedOn = invokedOn;
+ this.domainObjects = domainObjects;
+ }
+
+ // //////////////////////////////////////
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setInvokedOn(final InvokedOn invokedOn) {
+ this.invokedOn = invokedOn;
+ }
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setDomainObjects(final List<Object> domainObjects) {
+ this.domainObjects = domainObjects;
+ }
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setIndex(final int index) {
+ this.index = index;
+ }
+
+ // //////////////////////////////////////
+
+
+ /**
+ * Whether this particular {@link ActionInvocationContext} was applied as a {@link InvokedOn#COLLECTION bulk} action
+ * (against each domain object in a list of domain objects) or as a {@link InvokedOn#OBJECT regular}
+ * action (against a single domain object).
+ */
+ @Programmatic
+ public InvokedOn getInvokedOn() {
+ return invokedOn;
+ }
+
+
+ /**
+ * The list of domain objects which are being acted upon.
+ */
+ @Programmatic
+ public List<Object> getDomainObjects() {
+ return domainObjects;
+ }
+
+ /**
+ * The number of {@link #domainObjects domain objects} being acted upon.
+ */
+ @Programmatic
+ public int getSize() {
+ return domainObjects.size();
+ }
+
+ /**
+ * The 0-based index to the object being acted upon.
+ *
+ * <p>
+ * Will be a value in range [0, {@link #getSize() size}).
+ */
+ @Programmatic
+ public int getIndex() {
+ return index;
+ }
+
+ /**
+ * Whether this object being acted upon is the first such.
+ */
+ @Programmatic
+ public boolean isFirst() {
+ return this.index == 0;
+ }
+
+ /**
+ * Whether this object being acted upon is the last such.
+ */
+ @Programmatic
+ public boolean isLast() {
+ return this.index == (getSize()-1);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
index cefd1f1..1146576 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
@@ -61,13 +61,25 @@ public @interface Bulk {
// //////////////////////////////////////
/**
- * @deprecated - see {@link BulkInteractionContext}.
+ * @deprecated - see {@link ActionInvocationContext}.
*/
@Deprecated
@DomainService
@RequestScoped
- public static class InteractionContext extends BulkInteractionContext {
+ public static class InteractionContext {
+ /**
+ * Intended only to be set only by the framework.
+ *
+ * <p>
+ * Will be populated while a bulk action is being invoked.
+ *
+ * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service; simply inject an instance of {@link org.apache.isis.applib.annotation.Bulk.InteractionContext}.
+ */
+ @Deprecated
+ public static final ThreadLocal<Bulk.InteractionContext> current = new ThreadLocal<>();
+
+ // //////////////////////////////////////
/**
* @deprecated - use {@link InvokedOn} instead.
@@ -86,13 +98,11 @@ public @interface Bulk {
REGULAR;
public boolean isRegular() { return this == REGULAR; }
public boolean isBulk() { return this == BULK; }
-
-
}
/**
- * @deprecated - now a {@link RequestScoped} service
+ * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
*/
@Deprecated
public static void with(final Runnable runnable, final Object... domainObjects) {
@@ -100,6 +110,15 @@ public @interface Bulk {
}
/**
+ * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
+ */
+ @Deprecated
+ public static void with(final Runnable runnable, final InvokedOn invokedOn, final Object... domainObjects) {
+ throw new RuntimeException("No longer supported - instead inject Bulk.InteractionContext as service");
+ }
+
+
+ /**
* @deprecated - now a {@link RequestScoped} service
*/
@Deprecated
@@ -109,8 +128,9 @@ public @interface Bulk {
// //////////////////////////////////////
+
/**
- * @deprecated - see {@link BulkInteractionContext#regularAction(Object)}.
+ * @deprecated - see {@link ActionInvocationContext#onObject(Object)}.
*/
@Deprecated
public static InteractionContext regularAction(Object domainObject) {
@@ -118,7 +138,7 @@ public @interface Bulk {
}
/**
- * @deprecated - see {@link BulkInteractionContext#bulkAction(Object...)}.
+ * @deprecated - see {@link ActionInvocationContext#onCollection(Object...)}.
*/
@Deprecated
public static InteractionContext bulkAction(Object... domainObjects) {
@@ -126,7 +146,7 @@ public @interface Bulk {
}
/**
- * @deprecated - see {@link BulkInteractionContext#bulkAction(java.util.List)}.
+ * @deprecated - see {@link ActionInvocationContext#onCollection(java.util.List)}.
*/
@Deprecated
public static InteractionContext bulkAction(List<Object> domainObjects) {
@@ -136,8 +156,13 @@ public @interface Bulk {
// //////////////////////////////////////
+ private InvokedAs invokedAs;
+ private List<Object> domainObjects;
+
+ private int index;
+
/**
- * @deprecated - see {@link org.apache.isis.applib.annotation.BulkInteractionContext()}.
+ * @deprecated - see {@link ActionInvocationContext ()}.
*/
@Deprecated
public InteractionContext() {
@@ -149,8 +174,96 @@ public @interface Bulk {
*/
@Deprecated
public InteractionContext(final InvokedAs invokedAs, final List<Object> domainObjects) {
- super(InvokedOn.from(invokedAs), domainObjects);
+ this.invokedAs = invokedAs;
+ this.domainObjects = domainObjects;
+ }
+
+
+ // //////////////////////////////////////
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setInvokedAs(InvokedAs invokedAs) {
+ this.invokedAs = invokedAs;
+ }
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setDomainObjects(List<Object> domainObjects) {
+ this.domainObjects = domainObjects;
+ }
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ // //////////////////////////////////////
+
+
+ /**
+ * Whether this particular {@link org.apache.isis.applib.annotation.Bulk.InteractionContext} was applied as a {@link InvokedOn#COLLECTION bulk} action
+ * (against each domain object in a list of domain objects) or as a {@link InvokedOn#OBJECT regular}
+ * action (against a single domain object).
+ */
+ @Deprecated
+ @Programmatic
+ public Bulk.InteractionContext.InvokedAs getInvokedAs() {
+ return invokedAs;
+ }
+
+ /**
+ * The list of domain objects which are being acted upon.
+ */
+ @Programmatic
+ public List<Object> getDomainObjects() {
+ return domainObjects;
+ }
+
+ /**
+ * The number of {@link #domainObjects domain objects} being acted upon.
+ */
+ @Programmatic
+ public int getSize() {
+ return domainObjects.size();
+ }
+
+ /**
+ * The 0-based index to the object being acted upon.
+ *
+ * <p>
+ * Will be a value in range [0, {@link #getSize() size}).
+ */
+ @Programmatic
+ public int getIndex() {
+ return index;
+ }
+
+ /**
+ * Whether this object being acted upon is the first such.
+ */
+ @Programmatic
+ public boolean isFirst() {
+ return this.index == 0;
+ }
+
+ /**
+ * Whether this object being acted upon is the last such.
+ */
+ @Programmatic
+ public boolean isLast() {
+ return this.index == (getSize()-1);
}
+
+
+
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/applib/src/main/java/org/apache/isis/applib/annotation/BulkInteractionContext.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/BulkInteractionContext.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/BulkInteractionContext.java
deleted file mode 100644
index be0a555..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/BulkInteractionContext.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.applib.annotation;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * This service (API and implementation) provides access to context information about a bulk action invocation.
- *
- * <p>
- * This implementation has no UI and there is only one implementation (this class) in applib, so it is annotated
- * with {@link DomainService}. This means that it is automatically registered
- * and available for use; no further configuration is required.
- * </p>
- *
- * <p>
- * Note that this not annotated as <tt>@DomainService</tt> an <tt>@RequestScoped</tt> only because of the
- * legacy {@link org.apache.isis.applib.annotation.Bulk.InteractionContext} subclass (which *is* registered as
- * the service).
- * </p>
- */
-public abstract class BulkInteractionContext {
-
- /**
- * Intended only to be set only by the framework.
- *
- * <p>
- * Will be populated while a bulk action is being invoked.
- *
- * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
- */
- @Deprecated
- public static final ThreadLocal<BulkInteractionContext> current = new ThreadLocal<>();
-
- /**
- * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
- */
- @Deprecated
- public static void with(final Runnable runnable, final Object... domainObjects) {
- throw new RuntimeException("No longer supported - instead inject Bulk.InteractionContext as service");
- }
-
- /**
- * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
- */
- @Deprecated
- public static void with(final Runnable runnable, final InvokedOn invokedOn, final Object... domainObjects) {
- throw new RuntimeException("No longer supported - instead inject Bulk.InteractionContext as service");
- }
-
- // //////////////////////////////////////
-
- private InvokedOn actionInvokedOn;
- private List<Object> domainObjects;
-
- private int index;
-
- // //////////////////////////////////////
-
-
- public BulkInteractionContext() {
- }
-
- /**
- * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
- */
- @Deprecated
- public BulkInteractionContext(final InvokedOn actionInvokedOn, final Object... domainObjects) {
- this(actionInvokedOn, Arrays.asList(domainObjects));
- }
-
- /**
- * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
- */
- @Deprecated
- public BulkInteractionContext(final InvokedOn actionInvokedOn, final List<Object> domainObjects) {
- this.actionInvokedOn = actionInvokedOn;
- this.domainObjects = domainObjects;
- }
-
- // //////////////////////////////////////
-
- /**
- * Intended only to support unit testing.
- */
- public static BulkInteractionContext regularAction(Object domainObject) {
- return new BulkInteractionContext(InvokedOn.OBJECT, Collections.singletonList(domainObject)){};
- }
-
- /**
- * Intended only to support unit testing.
- */
- public static BulkInteractionContext bulkAction(Object... domainObjects) {
- return bulkAction(Arrays.asList(domainObjects));
- }
-
- /**
- * Intended only to support unit testing.
- */
- public static BulkInteractionContext bulkAction(List<Object> domainObjects) {
- return new BulkInteractionContext(InvokedOn.COLLECTION, domainObjects){};
- }
-
-
- // //////////////////////////////////////
-
- /**
- * <b>NOT API</b>: intended to be called only by the framework.
- */
- @Programmatic
- public void setActionInvokedOn(InvokedOn actionInvokedOn) {
- this.actionInvokedOn = actionInvokedOn;
- }
-
- /**
- * <b>NOT API</b>: intended to be called only by the framework.
- */
- @Programmatic
- public void setDomainObjects(List<Object> domainObjects) {
- this.domainObjects = domainObjects;
- }
-
- /**
- * <b>NOT API</b>: intended to be called only by the framework.
- */
- @Programmatic
- public void setIndex(int index) {
- this.index = index;
- }
-
- // //////////////////////////////////////
-
-
- /**
- * Whether this particular {@link org.apache.isis.applib.annotation.BulkInteractionContext} was applied as a {@link InvokedOn#COLLECTION bulk} action
- * (against each domain object in a list of domain objects) or as a {@link InvokedOn#OBJECT regular}
- * action (against a single domain object).
- */
- @Programmatic
- public InvokedOn getInvokedOn() {
- return actionInvokedOn;
- }
-
- /**
- * Whether this particular {@link org.apache.isis.applib.annotation.Bulk.InteractionContext} was applied as a {@link InvokedOn#COLLECTION bulk} action
- * (against each domain object in a list of domain objects) or as a {@link InvokedOn#OBJECT regular}
- * action (against a single domain object).
- *
- * @deprecated - use {@link #getInvokedOn()} instead.
- */
- @Deprecated
- @Programmatic
- public Bulk.InteractionContext.InvokedAs getInvokedAs() {
- return InvokedOn.from(actionInvokedOn);
- }
-
- /**
- * The list of domain objects which are being acted upon.
- */
- @Programmatic
- public List<Object> getDomainObjects() {
- return domainObjects;
- }
-
- /**
- * The number of {@link #domainObjects domain objects} being acted upon.
- */
- @Programmatic
- public int getSize() {
- return domainObjects.size();
- }
-
- /**
- * The 0-based index to the object being acted upon.
- *
- * <p>
- * Will be a value in range [0, {@link #getSize() size}).
- */
- @Programmatic
- public int getIndex() {
- return index;
- }
-
- /**
- * Whether this object being acted upon is the first such.
- */
- @Programmatic
- public boolean isFirst() {
- return this.index == 0;
- }
-
- /**
- * Whether this object being acted upon is the last such.
- */
- @Programmatic
- public boolean isLast() {
- return this.index == (getSize()-1);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
index ad36b39..aca042f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
@@ -28,7 +28,8 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.ViewModel;
-import org.apache.isis.applib.annotation.BulkInteractionContext;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.InvokedOn;
import org.apache.isis.applib.clock.Clock;
import org.apache.isis.applib.services.background.ActionInvocationMemento;
@@ -224,7 +225,6 @@ public abstract class ActionInvocationFacetForInteractionAbstract
final ObjectAdapter targetAdapter,
final ObjectAdapter[] arguments) {
- final BulkInteractionContext bulkInteractionContext = getServicesInjector().lookupService(BulkInteractionContext.class);
try {
final Object[] executionParameters = new Object[arguments.length];
@@ -235,12 +235,25 @@ public abstract class ActionInvocationFacetForInteractionAbstract
final Object targetPojo = unwrap(targetAdapter);
final BulkFacet bulkFacet = getFacetHolder().getFacet(BulkFacet.class);
- if (bulkFacet != null &&
- bulkInteractionContext != null &&
- bulkInteractionContext.getInvokedAs() == null) {
+ if (bulkFacet != null) {
+ final ActionInvocationContext actionInvocationContext = getServicesInjector().lookupService(ActionInvocationContext.class);
+ if (actionInvocationContext != null &&
+ actionInvocationContext.getInvokedOn() == null) {
+
+ actionInvocationContext.setInvokedOn(InvokedOn.OBJECT);
+ actionInvocationContext.setDomainObjects(Collections.singletonList(targetPojo));
+ }
+
+ final Bulk.InteractionContext bulkInteractionContext = getServicesInjector().lookupService(Bulk.InteractionContext.class);
+
+ if (bulkInteractionContext != null &&
+ bulkInteractionContext.getInvokedAs() == null) {
+
+ bulkInteractionContext.setInvokedAs(Bulk.InteractionContext.InvokedAs.REGULAR);
+ actionInvocationContext.setDomainObjects(Collections.singletonList(targetPojo));
+ }
+
- bulkInteractionContext.setActionInvokedOn(InvokedOn.OBJECT);
- bulkInteractionContext.setDomainObjects(Collections.singletonList(targetPojo));
}
if(command != null && command.getExecutor() == Command.Executor.USER && owningAction != null) {
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
index 46d9a18..9ea6f9c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
@@ -21,7 +21,8 @@ import java.util.Collections;
import java.util.List;
import com.google.common.collect.Lists;
import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.BulkInteractionContext;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.InvokedOn;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
@@ -182,15 +183,27 @@ public class ObjectActionContributee extends ObjectActionImpl implements Contrib
// this code also exists in ActionInvocationFacetViaMethod
// we need to repeat it here because the target adapter should be the contributee, not the contributing service.
- final BulkInteractionContext bulkInteractionContext = getServicesProvider().lookupService(BulkInteractionContext.class);
final BulkFacet bulkFacet = getFacet(BulkFacet.class);
- if (bulkFacet != null &&
- bulkInteractionContext != null &&
- bulkInteractionContext.getInvokedAs() == null) {
-
- bulkInteractionContext.setActionInvokedOn(InvokedOn.OBJECT);
- bulkInteractionContext.setDomainObjects(Collections.singletonList(contributee.getObject()));
+ if (bulkFacet != null) {
+
+ final ActionInvocationContext actionInvocationContext = getServicesProvider().lookupService(ActionInvocationContext.class);
+ if (actionInvocationContext != null &&
+ actionInvocationContext.getInvokedOn() == null) {
+
+ actionInvocationContext.setInvokedOn(InvokedOn.OBJECT);
+ actionInvocationContext.setDomainObjects(Collections.singletonList(contributee.getObject()));
+ }
+
+ final Bulk.InteractionContext bulkInteractionContext = getServicesProvider().lookupService(Bulk.InteractionContext.class);
+ if (bulkInteractionContext != null &&
+ bulkInteractionContext.getInvokedAs() == null) {
+
+ bulkInteractionContext.setInvokedAs(Bulk.InteractionContext.InvokedAs.REGULAR);
+ actionInvocationContext.setDomainObjects(Collections.singletonList(contributee.getObject()));
+ }
+
+
}
final CommandContext commandContext = getServicesProvider().lookupService(CommandContext.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index cd72d5f..8bfdbc6 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -38,7 +38,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.annotation.BulkInteractionContext;
+import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
import org.apache.isis.applib.annotation.PublishedAction;
import org.apache.isis.applib.annotation.PublishedObject;
import org.apache.isis.applib.annotation.PublishedObject.ChangeKind;
@@ -883,9 +884,9 @@ public class IsisTransaction implements TransactionScopedComponent {
}
private void closeOtherApplibServicesIfConfigured() {
- BulkInteractionContext bic = getServiceOrNull(BulkInteractionContext.class);
+ ActionInvocationContext bic = getServiceOrNull(ActionInvocationContext.class);
if(bic != null) {
- BulkInteractionContext.current.set(null);
+ Bulk.InteractionContext.current.set(null);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
index 54c6eb0..bdb56e8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
@@ -23,7 +23,7 @@ import java.util.List;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.isis.applib.annotation.BulkInteractionContext;
+import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.clock.Clock;
import org.apache.isis.applib.services.command.Command;
import org.apache.isis.applib.services.command.CommandContext;
@@ -287,9 +287,9 @@ public class IsisTransactionManager implements SessionScopedComponent {
private void initOtherApplibServicesIfConfigured() {
- final BulkInteractionContext bic = getServiceOrNull(BulkInteractionContext.class);
+ final Bulk.InteractionContext bic = getServiceOrNull(Bulk.InteractionContext.class);
if(bic != null) {
- BulkInteractionContext.current.set(bic);
+ Bulk.InteractionContext.current.set(bic);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
index e2c9e23..9a1e023 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
@@ -25,7 +25,7 @@ import org.jmock.auto.Mock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import org.apache.isis.applib.annotation.BulkInteractionContext;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
import org.apache.isis.applib.annotation.PublishedAction;
import org.apache.isis.applib.annotation.PublishedObject;
import org.apache.isis.applib.services.audit.AuditingService3;
@@ -92,7 +92,7 @@ public class IsisTransactionTest {
@Mock
private PublishedAction.PayloadFactory mockPublishedActionPayloadFactory;
@Mock
- private BulkInteractionContext mockBulkInteractionContext;
+ private ActionInvocationContext mockActionInvocationContext;
@Mock
private EventBusServiceDefault mockEventBusServiceDefault;
@@ -207,8 +207,8 @@ public class IsisTransactionTest {
allowing(mockServicesInjector).lookupService(PublishedAction.PayloadFactory.class);
will(returnValue(mockPublishedActionPayloadFactory));
- allowing(mockServicesInjector).lookupService(BulkInteractionContext.class);
- will(returnValue(mockBulkInteractionContext));
+ allowing(mockServicesInjector).lookupService(ActionInvocationContext.class);
+ will(returnValue(mockActionInvocationContext));
allowing(mockServicesInjector).lookupService(EventBusServiceDefault.class);
will(returnValue(mockEventBusServiceDefault));
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
index f0e4ea9..10bb1a0 100644
--- a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
@@ -39,9 +39,8 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.Collection;
import org.apache.isis.applib.annotation.CollectionLayout;
import org.apache.isis.applib.annotation.DomainObject;
@@ -341,17 +340,17 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
// remainder of method just demonstrates the use of the Bulk.InteractionContext service
//
@SuppressWarnings("unused")
- final List<Object> allObjects = bulkInteractionContext.getDomainObjects();
+ final List<Object> allObjects = actionInvocationContext.getDomainObjects();
LOG.debug("completed: "
- + bulkInteractionContext.getIndex() +
- " [" + bulkInteractionContext.getSize() + "]"
- + (bulkInteractionContext.isFirst() ? " (first)" : "")
- + (bulkInteractionContext.isLast() ? " (last)" : ""));
+ + actionInvocationContext.getIndex() +
+ " [" + actionInvocationContext.getSize() + "]"
+ + (actionInvocationContext.isFirst() ? " (first)" : "")
+ + (actionInvocationContext.isLast() ? " (last)" : ""));
// if invoked as a regular action, return this object;
// otherwise (if invoked as bulk), return null (so go back to the list)
- return bulkInteractionContext.getInvokedOn() == InvokedOn.OBJECT? this: null;
+ return actionInvocationContext.getInvokedOn() == InvokedOn.OBJECT? this: null;
}
// disable action dependent on state of object
public String disableCompleted() {
@@ -366,7 +365,7 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
// if invoked as a regular action, return this object;
// otherwise (if invoked as bulk), return null (so go back to the list)
- return bulkInteractionContext.getInvokedOn() == InvokedOn.COLLECTION ? this: null;
+ return actionInvocationContext.getInvokedOn() == InvokedOn.COLLECTION ? this: null;
}
// disable action dependent on state of object
public String disableNotYetCompleted() {
@@ -958,7 +957,7 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
* public only so can be injected from integ tests
*/
@javax.inject.Inject
- public Bulk.InteractionContext bulkInteractionContext;
+ public ActionInvocationContext actionInvocationContext;
/**
* public only so can be injected from integ tests
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java b/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
index a9c102c..9504b89 100644
--- a/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
+++ b/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
@@ -22,7 +22,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
import org.apache.isis.applib.security.RoleMemento;
import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.applib.services.eventbus.EventBusService;
@@ -48,7 +48,7 @@ public abstract class ToDoItemTest {
public void setUp() throws Exception {
toDoItem = new ToDoItem();
- toDoItem.bulkInteractionContext = Bulk.InteractionContext.regularAction(toDoItem);
+ toDoItem.actionInvocationContext = ActionInvocationContext.onObject(toDoItem);
toDoItem.eventBusService = eventBusService;
context.ignoring(eventBusService);
http://git-wip-us.apache.org/repos/asf/isis/blob/e11eaef2/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java b/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
index 0782e38..594b993 100644
--- a/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
+++ b/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
@@ -29,7 +29,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.jmock.Expectations;
import org.junit.Assert;
-import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.applib.annotation.ActionInvocationContext;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.specsupport.scenarios.InMemoryDB;
import org.apache.isis.core.specsupport.specs.CukeGlueAbstract;
@@ -72,15 +72,15 @@ public class ToDoItemGlue extends CukeGlueAbstract {
public void mark_it_as_complete() throws Throwable {
final ToDoItem toDoItem = getVar(null, "toDoItem", ToDoItem.class);
if(supportsMocks()) {
- final Bulk.InteractionContext bulkInteractionContext = service(Bulk.InteractionContext.class);
+ final ActionInvocationContext actionInvocationContext = service(ActionInvocationContext.class);
final EventBusService eventBusService = service(EventBusService.class);
checking(new Expectations() {
{
- allowing(bulkInteractionContext);
+ allowing(actionInvocationContext);
allowing(eventBusService);
}
});
- toDoItem.bulkInteractionContext = bulkInteractionContext;
+ toDoItem.actionInvocationContext = actionInvocationContext;
toDoItem.eventBusService = eventBusService;
}
wrap(toDoItem).completed();
[2/2] isis git commit: ISIS-970: moving the new
ActionInvocationContext from applib.annotatoin to applib.services.actinvoc
Posted by da...@apache.org.
ISIS-970: moving the new ActionInvocationContext from applib.annotatoin to applib.services.actinvoc
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4eed0900
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4eed0900
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4eed0900
Branch: refs/heads/ISIS-970
Commit: 4eed0900f0ce8d74ae746f50f59f66d4e53f970e
Parents: e11eaef
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 31 00:02:08 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 31 00:02:08 2014 +0000
----------------------------------------------------------------------
.../collection/bulk/BulkActionsLinkFactory.java | 2 +-
.../annotation/ActionInvocationContext.java | 176 -------------------
.../org/apache/isis/applib/annotation/Bulk.java | 10 +-
.../actinvoc/ActionInvocationContext.java | 174 ++++++++++++++++++
...onInvocationFacetForInteractionAbstract.java | 2 +-
.../specimpl/ObjectActionContributee.java | 2 +-
.../system/transaction/IsisTransaction.java | 2 +-
.../system/transaction/IsisTransactionTest.java | 2 +-
.../dom/src/main/java/dom/todo/ToDoItem.java | 2 +-
.../src/test/java/dom/todo/ToDoItemTest.java | 2 +-
.../integration/glue/todoitem/ToDoItemGlue.java | 2 +-
11 files changed, 187 insertions(+), 189 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index a46de73..d8a17fc 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -26,7 +26,7 @@ import org.apache.wicket.Session;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.InvokedOn;
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java
deleted file mode 100644
index 93aad9a..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionInvocationContext.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.applib.annotation;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * This service (API and implementation) provides access to context information about a bulk action invocation.
- *
- * <p>
- * This implementation has no UI and there is only one implementation (this class) in applib, so it is annotated
- * with {@link DomainService}. This means that it is automatically registered
- * and available for use; no further configuration is required.
- * </p>
- *
- * <p>
- * Note that this not annotated as <tt>@DomainService</tt> an <tt>@RequestScoped</tt> only because of the
- * legacy {@link org.apache.isis.applib.annotation.Bulk.InteractionContext} subclass (which *is* registered as
- * the service).
- * </p>
- */
-public abstract class ActionInvocationContext {
-
- /**
- * Intended only to support unit testing.
- */
- public static ActionInvocationContext onObject(final Object domainObject) {
- return new ActionInvocationContext(InvokedOn.OBJECT, Collections.singletonList(domainObject)){};
- }
-
- /**
- * Intended only to support unit testing.
- */
- public static ActionInvocationContext onCollection(final Object... domainObjects) {
- return onCollection(Arrays.asList(domainObjects));
- }
-
- /**
- * Intended only to support unit testing.
- */
- public static ActionInvocationContext onCollection(final List<Object> domainObjects) {
- return new ActionInvocationContext(InvokedOn.COLLECTION, domainObjects){};
- }
-
- // //////////////////////////////////////
-
-
- private InvokedOn invokedOn;
- private List<Object> domainObjects;
-
- private int index;
-
- // //////////////////////////////////////
-
- public ActionInvocationContext() {
- }
-
- /**
- * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
- */
- @Deprecated
- public ActionInvocationContext(final InvokedOn invokedOn, final Object... domainObjects) {
- this(invokedOn, Arrays.asList(domainObjects));
- }
-
- /**
- * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
- */
- @Deprecated
- public ActionInvocationContext(final InvokedOn invokedOn, final List<Object> domainObjects) {
- this.invokedOn = invokedOn;
- this.domainObjects = domainObjects;
- }
-
- // //////////////////////////////////////
-
- /**
- * <b>NOT API</b>: intended to be called only by the framework.
- */
- @Programmatic
- public void setInvokedOn(final InvokedOn invokedOn) {
- this.invokedOn = invokedOn;
- }
-
- /**
- * <b>NOT API</b>: intended to be called only by the framework.
- */
- @Programmatic
- public void setDomainObjects(final List<Object> domainObjects) {
- this.domainObjects = domainObjects;
- }
-
- /**
- * <b>NOT API</b>: intended to be called only by the framework.
- */
- @Programmatic
- public void setIndex(final int index) {
- this.index = index;
- }
-
- // //////////////////////////////////////
-
-
- /**
- * Whether this particular {@link ActionInvocationContext} was applied as a {@link InvokedOn#COLLECTION bulk} action
- * (against each domain object in a list of domain objects) or as a {@link InvokedOn#OBJECT regular}
- * action (against a single domain object).
- */
- @Programmatic
- public InvokedOn getInvokedOn() {
- return invokedOn;
- }
-
-
- /**
- * The list of domain objects which are being acted upon.
- */
- @Programmatic
- public List<Object> getDomainObjects() {
- return domainObjects;
- }
-
- /**
- * The number of {@link #domainObjects domain objects} being acted upon.
- */
- @Programmatic
- public int getSize() {
- return domainObjects.size();
- }
-
- /**
- * The 0-based index to the object being acted upon.
- *
- * <p>
- * Will be a value in range [0, {@link #getSize() size}).
- */
- @Programmatic
- public int getIndex() {
- return index;
- }
-
- /**
- * Whether this object being acted upon is the first such.
- */
- @Programmatic
- public boolean isFirst() {
- return this.index == 0;
- }
-
- /**
- * Whether this object being acted upon is the last such.
- */
- @Programmatic
- public boolean isLast() {
- return this.index == (getSize()-1);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
index 1146576..592dd43 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
@@ -61,7 +61,7 @@ public @interface Bulk {
// //////////////////////////////////////
/**
- * @deprecated - see {@link ActionInvocationContext}.
+ * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext}.
*/
@Deprecated
@DomainService
@@ -130,7 +130,7 @@ public @interface Bulk {
/**
- * @deprecated - see {@link ActionInvocationContext#onObject(Object)}.
+ * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext#onObject(Object)}.
*/
@Deprecated
public static InteractionContext regularAction(Object domainObject) {
@@ -138,7 +138,7 @@ public @interface Bulk {
}
/**
- * @deprecated - see {@link ActionInvocationContext#onCollection(Object...)}.
+ * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext#onCollection(Object...)}.
*/
@Deprecated
public static InteractionContext bulkAction(Object... domainObjects) {
@@ -146,7 +146,7 @@ public @interface Bulk {
}
/**
- * @deprecated - see {@link ActionInvocationContext#onCollection(java.util.List)}.
+ * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext#onCollection(java.util.List)}.
*/
@Deprecated
public static InteractionContext bulkAction(List<Object> domainObjects) {
@@ -162,7 +162,7 @@ public @interface Bulk {
private int index;
/**
- * @deprecated - see {@link ActionInvocationContext ()}.
+ * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext ()}.
*/
@Deprecated
public InteractionContext() {
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java b/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java
new file mode 100644
index 0000000..9982649
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.applib.services.actinvoc;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.InvokedOn;
+import org.apache.isis.applib.annotation.Programmatic;
+
+/**
+ * This service (API and implementation) provides access to context information about a bulk action invocation.
+ *
+ * <p>
+ * This implementation has no UI and there is only one implementation (this class) in applib, so it is annotated
+ * with {@link org.apache.isis.applib.annotation.DomainService}. This means that it is automatically registered
+ * and available for use; no further configuration is required.
+ * </p>
+ */
+@DomainService
+public class ActionInvocationContext {
+
+ /**
+ * Intended only to support unit testing.
+ */
+ public static ActionInvocationContext onObject(final Object domainObject) {
+ return new ActionInvocationContext(InvokedOn.OBJECT, Collections.singletonList(domainObject)){};
+ }
+
+ /**
+ * Intended only to support unit testing.
+ */
+ public static ActionInvocationContext onCollection(final Object... domainObjects) {
+ return onCollection(Arrays.asList(domainObjects));
+ }
+
+ /**
+ * Intended only to support unit testing.
+ */
+ public static ActionInvocationContext onCollection(final List<Object> domainObjects) {
+ return new ActionInvocationContext(InvokedOn.COLLECTION, domainObjects){};
+ }
+
+ // //////////////////////////////////////
+
+
+ private InvokedOn invokedOn;
+ private List<Object> domainObjects;
+
+ private int index;
+
+ // //////////////////////////////////////
+
+ public ActionInvocationContext() {
+ }
+
+ /**
+ * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
+ */
+ @Deprecated
+ public ActionInvocationContext(final InvokedOn invokedOn, final Object... domainObjects) {
+ this(invokedOn, Arrays.asList(domainObjects));
+ }
+
+ /**
+ * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
+ */
+ @Deprecated
+ public ActionInvocationContext(final InvokedOn invokedOn, final List<Object> domainObjects) {
+ this.invokedOn = invokedOn;
+ this.domainObjects = domainObjects;
+ }
+
+ // //////////////////////////////////////
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setInvokedOn(final InvokedOn invokedOn) {
+ this.invokedOn = invokedOn;
+ }
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setDomainObjects(final List<Object> domainObjects) {
+ this.domainObjects = domainObjects;
+ }
+
+ /**
+ * <b>NOT API</b>: intended to be called only by the framework.
+ */
+ @Programmatic
+ public void setIndex(final int index) {
+ this.index = index;
+ }
+
+ // //////////////////////////////////////
+
+
+ /**
+ * Whether this particular {@link ActionInvocationContext} was applied as a {@link InvokedOn#COLLECTION bulk} action
+ * (against each domain object in a list of domain objects) or as a {@link InvokedOn#OBJECT regular}
+ * action (against a single domain object).
+ */
+ @Programmatic
+ public InvokedOn getInvokedOn() {
+ return invokedOn;
+ }
+
+
+ /**
+ * The list of domain objects which are being acted upon.
+ */
+ @Programmatic
+ public List<Object> getDomainObjects() {
+ return domainObjects;
+ }
+
+ /**
+ * The number of {@link #domainObjects domain objects} being acted upon.
+ */
+ @Programmatic
+ public int getSize() {
+ return domainObjects.size();
+ }
+
+ /**
+ * The 0-based index to the object being acted upon.
+ *
+ * <p>
+ * Will be a value in range [0, {@link #getSize() size}).
+ */
+ @Programmatic
+ public int getIndex() {
+ return index;
+ }
+
+ /**
+ * Whether this object being acted upon is the first such.
+ */
+ @Programmatic
+ public boolean isFirst() {
+ return this.index == 0;
+ }
+
+ /**
+ * Whether this object being acted upon is the last such.
+ */
+ @Programmatic
+ public boolean isLast() {
+ return this.index == (getSize()-1);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
index aca042f..e1b14b5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionInvocationFacetForInteractionAbstract.java
@@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.ViewModel;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.InvokedOn;
import org.apache.isis.applib.clock.Clock;
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
index 9ea6f9c..a721656 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
@@ -21,7 +21,7 @@ import java.util.Collections;
import java.util.List;
import com.google.common.collect.Lists;
import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.InvokedOn;
import org.apache.isis.applib.annotation.Where;
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index 8bfdbc6..0a4ed35 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.annotation.Bulk;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.annotation.PublishedAction;
import org.apache.isis.applib.annotation.PublishedObject;
import org.apache.isis.applib.annotation.PublishedObject.ChangeKind;
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
index 9a1e023..2db3b05 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionTest.java
@@ -25,7 +25,7 @@ import org.jmock.auto.Mock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.annotation.PublishedAction;
import org.apache.isis.applib.annotation.PublishedObject;
import org.apache.isis.applib.services.audit.AuditingService3;
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
index 10bb1a0..31ce78a 100644
--- a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
@@ -39,7 +39,7 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.annotation.Collection;
import org.apache.isis.applib.annotation.CollectionLayout;
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java b/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
index 9504b89..b1f5168 100644
--- a/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
+++ b/example/application/todoapp/dom/src/test/java/dom/todo/ToDoItemTest.java
@@ -22,7 +22,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.security.RoleMemento;
import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.applib.services.eventbus.EventBusService;
http://git-wip-us.apache.org/repos/asf/isis/blob/4eed0900/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java b/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
index 594b993..c859340 100644
--- a/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
+++ b/example/application/todoapp/integtests/src/test/java/integration/glue/todoitem/ToDoItemGlue.java
@@ -29,7 +29,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.jmock.Expectations;
import org.junit.Assert;
-import org.apache.isis.applib.annotation.ActionInvocationContext;
+import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.specsupport.scenarios.InMemoryDB;
import org.apache.isis.core.specsupport.specs.CukeGlueAbstract;