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

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

commit bbdad22b392cf910ae196ca7304edc86b117b7f6
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Wed Jun 27 07:41:53 2018 +0200

    ISIS-1960: applib: remove BackgroundService2 and
    BackgroundCommandService2
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1960
---
 .../background/BackgroundCommandService.java       | 10 ++++
 .../services/background/BackgroundService.java     |  6 ++
 .../background/BackgroundCommandService2.java      | 13 +----
 .../services/background/BackgroundService2.java    | 13 ++---
 .../background/BackgroundServiceDefault.java       | 67 +++++++++++++---------
 .../background/CommandInvocationHandler.java       |  6 +-
 6 files changed, 65 insertions(+), 50 deletions(-)

diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
index 11621d8..c086d2b 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
@@ -16,6 +16,9 @@
  */
 package org.apache.isis.applib.services.background;
 
+import org.apache.isis.applib.services.command.Command;
+import org.apache.isis.schema.cmd.v1.CommandDto;
+
 /**
  * Persists a {@link org.apache.isis.schema.cmd.v1.CommandDto command-reified} 
action such that it can be executed asynchronously,
  * for example through a Quartz scheduler.
@@ -34,5 +37,12 @@ package org.apache.isis.applib.services.background;
  *
  */
 public interface BackgroundCommandService {
+       
+       public void schedule(
+            final CommandDto dto,
+            final Command parentCommand,
+            final String targetClassName,
+            final String targetActionName,
+            final String targetArgs);
 
 }
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
index 158a86a..f22af39 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
@@ -47,5 +47,11 @@ public interface BackgroundService {
     @Programmatic
     <T> T execute(final T object);
 
+    /**
+     * Returns a proxy around the mixin object which is then used to obtain the
+     * signature of the action to be invoked in the background.
+     */
+    @Programmatic
+    <T> T executeMixin(Class<T> mixinClass, Object mixedIn);
 
 }
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
 
b/core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
similarity index 77%
rename from 
core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
rename to 
core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
index e693592..7c3ed13 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
+++ 
b/core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
@@ -16,20 +16,13 @@
  */
 package org.apache.isis.applib.services.background;
 
-import org.apache.isis.applib.services.command.Command;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-
 /**
  * Persists a {@link org.apache.isis.schema.cmd.v1.CommandDto memento-ized} 
command such that it can be
  * executed asynchronously, for example through a Quartz scheduler.
- *
+ * @deprecated use BackgroundCommandService instead
  */
+@Deprecated
 public interface BackgroundCommandService2 extends BackgroundCommandService {
 
-    void schedule(
-            final CommandDto dto,
-            final Command parentCommand,
-            final String targetClassName,
-            final String targetActionName,
-            final String targetArgs);
+    
 }
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
 
b/core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
similarity index 77%
rename from 
core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
rename to 
core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
index 529aa85..7f68327 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
+++ 
b/core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
@@ -16,18 +16,13 @@
  */
 package org.apache.isis.applib.services.background;
 
-import org.apache.isis.applib.annotation.Programmatic;
-
 /**
  * Submit actions to be invoked in the background.
+ * @deprecated use BackgroundService instead
+ * 
  */
+@Deprecated
 public interface BackgroundService2 extends BackgroundService {
-
-    /**
-     * Returns a proxy around the mixin object which is then used to obtain the
-     * signature of the action to be invoked in the background.
-     */
-    @Programmatic
-    <T> T executeMixin(Class<T> mixinClass, Object mixedIn);
+   
 
 }
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java
index 75d20b3..b19d921 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java
@@ -30,8 +30,7 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.background.BackgroundCommandService;
-import org.apache.isis.applib.services.background.BackgroundCommandService2;
-import org.apache.isis.applib.services.background.BackgroundService2;
+import org.apache.isis.applib.services.background.BackgroundService;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.commons.internal._Constants;
@@ -55,43 +54,55 @@ import org.slf4j.LoggerFactory;
                nature = NatureOfService.DOMAIN,
                menuOrder = "" + Integer.MAX_VALUE
                )
-public class BackgroundServiceDefault implements BackgroundService2 {
+public class BackgroundServiceDefault implements BackgroundService {
        
        static final Logger LOG = 
LoggerFactory.getLogger(BackgroundServiceDefault.class);
 
-       /*
-        * For the fixed thread-pool let there be 1-4 concurrent threads,
-        * limited by the number of available (logical) processor cores.
-        * 
-        * Note: Future improvements might make these values configurable, 
-        * but for now lets try to be reasonably nice here.
-        * 
-        */
-       private final int minThreadCount = 1; // only used if there is no 
BackgroundCommandService
-       private final int maxThreadCount = 4; // only used if there is no 
BackgroundCommandService
-
-       private final int threadCount = // only used if there is no 
BackgroundCommandService
-                       Math.max(minThreadCount, 
-                                       Math.min(maxThreadCount,
-                                                       
Runtime.getRuntime().availableProcessors()));
-
        // only used if there is no BackgroundCommandService
-       private ExecutorService backgroundExecutorService; 
+       private static class BuiltinExecutor {
+               /*
+                * For the fixed thread-pool let there be 1-4 concurrent 
threads,
+                * limited by the number of available (logical) processor cores.
+                * 
+                * Note: Future improvements might make these values 
configurable, 
+                * but for now lets try to be reasonably nice here.
+                * 
+                */
+               private final int minThreadCount = 1; 
+               private final int maxThreadCount = 4;
+
+               private final int threadCount =
+                               Math.max(minThreadCount, 
+                                               Math.min(maxThreadCount,
+                                                               
Runtime.getRuntime().availableProcessors()));
+
+               public final ExecutorService backgroundExecutorService = 
+                               Executors.newFixedThreadPool(threadCount);
+
+               public void shutdown() {
+                       backgroundExecutorService.shutdownNow();
+               }       
+       }
+       
+       private BuiltinExecutor builtinExecutor; // only used if there is no 
BackgroundCommandService
+       
+       private boolean usesBuiltinExecutor() {
+               return backgroundCommandService==null;
+       }
 
        @Programmatic
        @PostConstruct
        public void init(Map<String,String> props) {
-               if(backgroundCommandService==null) {
-                       backgroundExecutorService = 
Executors.newFixedThreadPool(threadCount);  
+               if(usesBuiltinExecutor()) {
+                       builtinExecutor = new BuiltinExecutor();
                }
        }
 
        @Programmatic
        @PreDestroy
        public void shutdown() {
-               if(backgroundExecutorService!=null) {
-                       backgroundExecutorService.shutdownNow();
-                       backgroundExecutorService = null;
+               if(builtinExecutor!=null) {
+                       builtinExecutor.shutdown();
                }
        }
 
@@ -149,12 +160,12 @@ public class BackgroundServiceDefault implements 
BackgroundService2 {
         */
        private <T> InvocationHandler newMethodHandler(final T target, final 
Object mixedInIfAny) {
 
-               if(backgroundCommandService==null) {
-                       return new ForkingInvocationHandler<T>(target, 
mixedInIfAny, backgroundExecutorService);
+               if(usesBuiltinExecutor()) {
+                       return new ForkingInvocationHandler<T>(target, 
mixedInIfAny, builtinExecutor.backgroundExecutorService);
                }
 
                return new CommandInvocationHandler<T>(
-                               (BackgroundCommandService2) 
backgroundCommandService, 
+                               backgroundCommandService, 
                                target, 
                                mixedInIfAny, 
                                specificationLoader,
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandInvocationHandler.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandInvocationHandler.java
index 0c1b090..437d591 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandInvocationHandler.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandInvocationHandler.java
@@ -24,7 +24,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.function.Supplier;
 
-import org.apache.isis.applib.services.background.BackgroundCommandService2;
+import org.apache.isis.applib.services.background.BackgroundCommandService;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -42,7 +42,7 @@ import org.apache.isis.schema.cmd.v1.CommandDto;
 
 class CommandInvocationHandler<T> implements InvocationHandler {
        
-       private final BackgroundCommandService2 backgroundCommandService;
+       private final BackgroundCommandService backgroundCommandService;
        private final T target;
        private final Object mixedInIfAny;
        private final SpecificationLoader specificationLoader;
@@ -51,7 +51,7 @@ class CommandInvocationHandler<T> implements 
InvocationHandler {
        private final Supplier<AdapterManager> adapterManagerSupplier;
 
        CommandInvocationHandler(
-                       BackgroundCommandService2 backgroundCommandService, 
+                       BackgroundCommandService backgroundCommandService, 
                        T target,
                        Object mixedInIfAny,
                        SpecificationLoader specificationLoader, 

Reply via email to