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 2015/09/15 08:02:42 UTC

[18/28] isis git commit: ISIS-1194: continuing to inline AdapterManager into PersistenceSession

ISIS-1194: continuing to inline AdapterManager into PersistenceSession


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/de4e1d88
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/de4e1d88
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/de4e1d88

Branch: refs/heads/ISIS-1194
Commit: de4e1d881d753384e105bc494d7f694c0ca0957e
Parents: ee509f6
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Sep 14 20:23:23 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Sep 14 20:23:23 2015 +0100

----------------------------------------------------------------------
 .../core/commons/components/Resettable.java     | 33 -------------
 .../adaptermanager/AdapterManagerDefault.java   | 52 ++------------------
 .../system/persistence/PersistenceSession.java  | 17 +++++--
 .../persistence/PersistenceSessionTest.java     |  4 +-
 4 files changed, 19 insertions(+), 87 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/de4e1d88/core/metamodel/src/main/java/org/apache/isis/core/commons/components/Resettable.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/components/Resettable.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/components/Resettable.java
deleted file mode 100644
index cf47878..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/components/Resettable.java
+++ /dev/null
@@ -1,33 +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.core.commons.components;
-
-/**
- * Allows the component to be reset.
- * 
- * <p>
- * Primarily for testing.
- * 
- */
-public interface Resettable {
-
-    void reset();
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/de4e1d88/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
index adbd2f4..e894cdc 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
@@ -22,16 +22,12 @@ package org.apache.isis.core.runtime.persistence.adaptermanager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.core.commons.components.Resettable;
 import org.apache.isis.core.commons.components.SessionScopedComponent;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.debug.DebugBuilder;
-import org.apache.isis.core.commons.debug.DebuggableWithTitle;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 
@@ -50,9 +46,7 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
  * maps to an {@link ObjectAdapter adapter} and these are reused.
  */
 public class AdapterManagerDefault implements AdapterManager,
-        SessionScopedComponent,
-        DebuggableWithTitle,
-        Resettable {
+        SessionScopedComponent {
 
     private static final Logger LOG = LoggerFactory.getLogger(AdapterManagerDefault.class);
 
@@ -60,11 +54,6 @@ public class AdapterManagerDefault implements AdapterManager,
 
     private final PersistenceSession persistenceSession;
 
-
-    // //////////////////////////////////////////////////////////////////
-    // constructor
-    // //////////////////////////////////////////////////////////////////
-
     /**
      * For object store implementations (eg JDO) that do not provide any mechanism
      * to allow transient objects to be reattached.
@@ -72,8 +61,7 @@ public class AdapterManagerDefault implements AdapterManager,
      * @see <a href="http://www.datanucleus.org/servlet/forum/viewthread_thread,7238_lastpage,yes#35976">this thread</a>
      */
     public AdapterManagerDefault(
-            final PersistenceSession persistenceSession,
-            final IsisConfiguration configuration) {
+            final PersistenceSession persistenceSession) {
         this.persistenceSession = persistenceSession;
 
     }
@@ -82,22 +70,10 @@ public class AdapterManagerDefault implements AdapterManager,
     //region > open, close
     @Override
     public void open() {
-        persistenceSession.getOidAdapterMap().open();
-        persistenceSession.getPojoAdapterMap().open();
     }
 
     @Override
     public void close() {
-        persistenceSession.getOidAdapterMap().close();
-        persistenceSession.getPojoAdapterMap().close();
-    }
-    //endregion
-
-    //region > reset
-    @Override
-    public void reset() {
-        persistenceSession.getOidAdapterMap().reset();
-        persistenceSession.getPojoAdapterMap().reset();
     }
     //endregion
 
@@ -171,26 +147,6 @@ public class AdapterManagerDefault implements AdapterManager,
         persistenceSession.remapAsPersistent(adapter, hintRootOid);
     }
 
-
-    //endregion
-
-
-    //region > debug
-    @Override
-    public String debugTitle() {
-        return "Identity map (adapter manager)";
-    }
-
-    @Override
-    public void debugData(final DebugBuilder debug) {
-        debug.appendTitle(persistenceSession.getPojoAdapterMap().debugTitle());
-        persistenceSession.getPojoAdapterMap().debugData(debug);
-        debug.appendln();
-
-        debug.appendTitle(persistenceSession.getOidAdapterMap().debugTitle());
-        persistenceSession.getOidAdapterMap().debugData(debug);
-
-    }
     //endregion
 
     //region > Injectable

http://git-wip-us.apache.org/repos/asf/isis/blob/de4e1d88/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 3cb0954..ff65726 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -212,8 +212,8 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
 
         this.oidGenerator = new OidGenerator(this, specificationLoader);
 
-        this.adapterManager = new AdapterManagerDefault(this,
-                configuration);
+        this.adapterManager = new AdapterManagerDefault(this
+        );
 
         this.persistenceQueryFactory = new PersistenceQueryFactory(getSpecificationLoader(), adapterManager);
         this.transactionManager = new IsisTransactionManager(this, servicesInjector);
@@ -263,7 +263,8 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
         // inject any required dependencies into object factory
         servicesInjector.injectInto(adapterManager);
 
-        adapterManager.open();
+        getOidAdapterMap().open();
+        getPojoAdapterMap().open();
 
         persistenceManager = applicationComponents.getPersistenceManagerFactory().getPersistenceManager();
 
@@ -362,7 +363,8 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
         }
 
         try {
-            adapterManager.close();
+            getOidAdapterMap().close();
+            getPojoAdapterMap().close();
         } catch(final Throwable ex) {
             // ignore
             LOG.error("close: adapterManager#close() failed; continuing to avoid memory leakage");
@@ -1168,6 +1170,13 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
         }
         debug.appendln();
 
+        debug.appendTitle(getPojoAdapterMap().debugTitle());
+        getPojoAdapterMap().debugData(debug);
+        debug.appendln();
+
+        debug.appendTitle(getOidAdapterMap().debugTitle());
+        getOidAdapterMap().debugData(debug);
+
         debug.appendTitle("Persistor");
         getTransactionManager().debugData(debug);
         debug.appendln();

http://git-wip-us.apache.org/repos/asf/isis/blob/de4e1d88/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
index 541033a..9af17f9 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
@@ -154,8 +154,8 @@ public class PersistenceSessionTest {
             }
             
         };
-        adapterManager = new AdapterManagerDefault(persistenceSession,
-                mockConfiguration);
+        adapterManager = new AdapterManagerDefault(persistenceSession
+        );
 
         context.checking(new Expectations(){{
             allowing(mockAuthenticationSession).getUserName();