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/01/31 08:19:18 UTC

[isis] branch 2033-IoC updated: ISIS-2033: fixes core can't compile

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

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


The following commit(s) were added to refs/heads/2033-IoC by this push:
     new 4c9c556  ISIS-2033: fixes core can't compile
4c9c556 is described below

commit 4c9c556567900aa504627195f6885b71c4a64c58
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 31 09:19:12 2019 +0100

    ISIS-2033: fixes core can't compile
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2033
---
 core/plugins/jdo-common/pom.xml                      |  9 +++++++++
 .../runtime/headless/IsisSystemBootstrapper.java     | 20 +++++++++-----------
 .../services/metrics/MetricsServiceDefault.java      | 20 +++++++++-----------
 3 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/core/plugins/jdo-common/pom.xml b/core/plugins/jdo-common/pom.xml
index a2bd6ea..9436827 100644
--- a/core/plugins/jdo-common/pom.xml
+++ b/core/plugins/jdo-common/pom.xml
@@ -68,6 +68,15 @@
 	</build>
 
 	<dependencies>
+	
+		<!-- JDO API (non transient, provided by concrete JDO plugins) -->
+        <dependency>
+            <groupId>javax.jdo</groupId>
+            <artifactId>jdo-api</artifactId>
+            <version>${jdo-api.version}</version>
+            <!-- provided by plugins -->
+            <scope>provided</scope>
+        </dependency>
 
 		<!-- Core Runtime -->
 		<dependency>
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
index 4a49524..7a27810 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
@@ -20,17 +20,11 @@ package org.apache.isis.core.runtime.headless;
 
 import java.util.List;
 
-import javax.jdo.PersistenceManagerFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.AppManifest2;
 import org.apache.isis.applib.fixtures.TickingFixtureClock;
 import org.apache.isis.applib.fixturescripts.FixtureScript;
 import org.apache.isis.applib.fixturescripts.FixtureScripts;
-import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.core.commons.ensure.Ensure;
@@ -39,6 +33,10 @@ import org.apache.isis.core.runtime.headless.logging.LeveledLogger;
 import org.apache.isis.core.runtime.headless.logging.LogConfig;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import lombok.val;
 
 public class IsisSystemBootstrapper {
 
@@ -160,13 +158,13 @@ public class IsisSystemBootstrapper {
     }
 
     private static void teardownSystem() {
-        final IsisSessionFactory isisSessionFactory = lookupService(IsisSessionFactory.class);
+        val isisSessionFactory = lookupService(IsisSessionFactory.class);
 
-        final IsisJdoSupport isisJdoSupport = lookupService(IsisJdoSupport.class);
-        final PersistenceManagerFactory pmf =
-                isisJdoSupport.getJdoPersistenceManager().getPersistenceManagerFactory();
+//FIXME [2033] should not be required to do explicitly, instead properly implement @PreDestroy where required        
+//        val isisJdoSupport = lookupService(IsisJdoSupport.class);
+//        val pmf = isisJdoSupport.getJdoPersistenceManager().getPersistenceManagerFactory();
         isisSessionFactory.destroyServicesAndShutdown();
-        pmf.close();
+//        pmf.close();
 
         IsisContext.clear();
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/metrics/MetricsServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/metrics/MetricsServiceDefault.java
index c16ad02..75bd3a4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/metrics/MetricsServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/metrics/MetricsServiceDefault.java
@@ -18,26 +18,27 @@
  */
 package org.apache.isis.core.runtime.services.metrics;
 
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.LongAdder;
 
 import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
 import javax.jdo.listener.InstanceLifecycleEvent;
 import javax.jdo.listener.InstanceLifecycleListener;
 import javax.jdo.listener.LoadLifecycleListener;
 
-import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.WithTransactionScope;
 import org.apache.isis.applib.services.metrics.MetricsService;
 import org.apache.isis.core.runtime.services.changes.ChangedObjectsServiceInternal;
 
 @RequestScoped
-public class MetricsServiceDefault implements MetricsService, InstanceLifecycleListener, LoadLifecycleListener, WithTransactionScope {
+public class MetricsServiceDefault implements MetricsService, 
+InstanceLifecycleListener, LoadLifecycleListener, WithTransactionScope {
 
-    private AtomicInteger numberLoaded = new AtomicInteger(0);
+    private LongAdder numberLoaded = new LongAdder();
 
     @Override
     public int numberObjectsLoaded() {
-        return numberLoaded.get();
+        return numberLoaded.intValue();
     }
 
     @Override
@@ -45,23 +46,20 @@ public class MetricsServiceDefault implements MetricsService, InstanceLifecycleL
         return changedObjectsServiceInternal.numberObjectsDirtied();
     }
 
-    @Programmatic
     @Override
     public void postLoad(final InstanceLifecycleEvent event) {
-        numberLoaded.incrementAndGet();
+        numberLoaded.increment();
     }
 
     /**
      * Intended to be called at the end of a transaction.  (This service really ought to be considered
      * a transaction-scoped service; since that isn't yet supported by the framework, we have to manually reset).
      */
-    @Programmatic
     @Override
     public void resetForNextTransaction() {
-        numberLoaded.set(0);
+        numberLoaded.reset();
     }
 
-    @javax.inject.Inject
-    ChangedObjectsServiceInternal changedObjectsServiceInternal;
+    @Inject ChangedObjectsServiceInternal changedObjectsServiceInternal;
 
 }