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 2643fa0f4a8038b7cf35a64830cf1535fcd4490d
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Thu May 31 12:12:22 2018 +0200

    ISIS-1954: introduces a HeadlessTransactionSupport service
    
    available only for integration support
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1954
---
 .../integtestsupport/IntegrationTestAbstract3.java | 16 +++++++++++++---
 .../DefaultHeadlessTransactionSupport.java}        | 22 +++++++++++-----------
 ...ternal.java => HeadlessTransactionSupport.java} | 11 +++++------
 .../HeadlessWithBootstrappingAbstract.java         | 17 ++++++++---------
 .../isis/core/runtime/headless/IsisSystem.java     | 11 -----------
 5 files changed, 37 insertions(+), 40 deletions(-)

diff --git 
a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java
 
b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java
index 2bea7bd..7bd30b3 100644
--- 
a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java
+++ 
b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java
@@ -27,6 +27,8 @@ import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
+import 
org.apache.isis.core.integtestsupport.components.DefaultHeadlessTransactionSupport;
+import org.apache.isis.core.runtime.headless.HeadlessTransactionSupport;
 import org.apache.isis.core.runtime.headless.HeadlessWithBootstrappingAbstract;
 import org.apache.isis.core.runtime.headless.IsisSystem;
 import org.apache.isis.core.runtime.headless.logging.LogConfig;
@@ -69,7 +71,8 @@ public abstract class IntegrationTestAbstract3 extends 
HeadlessWithBootstrapping
                     // Instead we expect it to be bootstrapped via @Before
                     try {
                         base.evaluate();
-                        
IsisSystem.get().getTransactionSupportInternal().endTran();
+                        final IsisSystem isft = IsisSystem.get();
+                        
isft.getService(HeadlessTransactionSupport.class).endTransaction();
                     } catch(final Throwable e) {
                         // determine if underlying cause is an applib-defined 
exception,
                         final RecoverableException recoverableException =
@@ -153,10 +156,17 @@ public abstract class IntegrationTestAbstract3 extends 
HeadlessWithBootstrapping
     protected IntegrationTestAbstract3(
             final LogConfig logConfig,
             final Module module) {
-        super(logConfig, module);
+        super(logConfig, addHeadlessTransactionSupport(module));
     }
 
-    @Override
+    //[ahuber] hooks into the bootstrapping, such that the 
+    // DefaultHeadlessTransactionSupport is registered as an additional service
+    private static Module addHeadlessTransactionSupport(Module module) {
+       
module.getAdditionalServices().add(DefaultHeadlessTransactionSupport.class);
+               return module;
+       }
+
+       @Override
     @Before
     public void bootstrapAndSetupIfRequired() {
 
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem_Transactions.java
 
b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/DefaultHeadlessTransactionSupport.java
similarity index 93%
rename from 
core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem_Transactions.java
rename to 
core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/DefaultHeadlessTransactionSupport.java
index cb931cd..9b81c05 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem_Transactions.java
+++ 
b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/DefaultHeadlessTransactionSupport.java
@@ -17,25 +17,26 @@
  *  under the License.
  */
 
-package org.apache.isis.core.runtime.headless;
+package org.apache.isis.core.integtestsupport.components;
 
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.runtime.headless.HeadlessTransactionSupport;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
-import org.apache.isis.core.runtime.system.transaction.IsisTransaction.State;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
+import org.apache.isis.core.runtime.system.transaction.IsisTransaction.State;
 
-class IsisSystem_Transactions implements TransactionSupportInternal {
+@DomainService(nature=NatureOfService.DOMAIN)
+public class DefaultHeadlessTransactionSupport implements 
HeadlessTransactionSupport {
 
-       /**
-     * @deprecated - ought to be using regular domain services rather than 
reaching into the framework
-     */
-    @Deprecated @Override
-    public void beginTran() {
+    @Override
+    public void beginTransaction() {
         final IsisTransactionManager transactionManager = 
getTransactionManager();
         final IsisTransaction transaction = 
transactionManager.getCurrentTransaction();
 
@@ -73,10 +74,9 @@ class IsisSystem_Transactions implements 
TransactionSupportInternal {
     /**
      * Either commits or aborts the transaction, depending on the 
Transaction's {@link IsisTransaction#getState()}
      *
-     * @deprecated - ought to be using regular domain services rather than 
reaching into the framework
      */
-    @Deprecated @Override
-    public void endTran() {
+    @Override
+    public void endTransaction() {
         final IsisTransactionManager transactionManager = 
getTransactionManager();
         final IsisTransaction transaction = 
transactionManager.getCurrentTransaction();
         if(transaction == null) {
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/TransactionSupportInternal.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessTransactionSupport.java
similarity index 77%
rename from 
core/runtime/src/main/java/org/apache/isis/core/runtime/headless/TransactionSupportInternal.java
rename to 
core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessTransactionSupport.java
index a14e4b7..9b293f4 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/TransactionSupportInternal.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessTransactionSupport.java
@@ -20,11 +20,10 @@
 package org.apache.isis.core.runtime.headless;
 
 /**
- * [ahuber] temporal interface to ease refactoring and finally removal
- * @deprecated ought to be using regular domain services rather than reaching 
into the framework
+ * Extends transaction management as required by integration tests.
+ * 
  */
-@Deprecated
-public interface TransactionSupportInternal {
-       void beginTran();
-       void endTran();
+public interface HeadlessTransactionSupport {
+       void beginTransaction();
+       void endTransaction();
 }
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
index 903599c..a9147ac 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
@@ -20,20 +20,19 @@ package org.apache.isis.core.runtime.headless;
 
 import java.io.PrintStream;
 
-import com.google.common.base.Strings;
-
-import org.apache.log4j.PropertyConfigurator;
-import org.joda.time.LocalDate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.event.Level;
-
 import org.apache.isis.applib.Module;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.runtime.headless.logging.LogConfig;
 import org.apache.isis.core.runtime.headless.logging.LogStream;
+import org.apache.log4j.PropertyConfigurator;
+import org.joda.time.LocalDate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.event.Level;
+
+import com.google.common.base.Strings;
 
 /**
  * Provides headless access to the system, first bootstrapping the system if 
required.
@@ -116,7 +115,7 @@ public abstract class HeadlessWithBootstrappingAbstract 
extends HeadlessAbstract
     }
 
     private void beginTransaction() {
-        IsisSystem.get().getTransactionSupportInternal().beginTran();
+        
IsisSystem.get().getService(HeadlessTransactionSupport.class).beginTransaction();
     }
 
     protected void tearDownAllModules() {
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
index 0317ea6..3e1c9a0 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
@@ -72,11 +72,9 @@ public class IsisSystem {
     public static void set(IsisSystem isft) {
         ISFT.set(isft);
     }
-    
 
     // -- Builder
 
-
     public static class Builder<T extends Builder<T, S>, S extends IsisSystem> 
{
 
         protected AuthenticationRequest authenticationRequest = new 
AuthenticationRequestNameOnly("tester");
@@ -299,13 +297,4 @@ public class IsisSystem {
         return servicesInjector.lookupServiceElseFail(serviceClass);
     }
 
-    // -- Mixin for deprecated TransactionSupportInternal ([ahuber] refactored 
out of this class to ease removal)
-    
-    private final TransactionSupportInternal transactionSupportInternal = new 
IsisSystem_Transactions(); 
-    
-       public TransactionSupportInternal getTransactionSupportInternal() {
-               return transactionSupportInternal;
-       }
-    
-
 }

-- 
To stop receiving notification emails like this one, please contact
ahu...@apache.org.

Reply via email to