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 2020/01/22 07:24:03 UTC

[isis] branch master updated: ISIS-2270: IsisConf. is not serializable, sync adoc

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


The following commit(s) were added to refs/heads/master by this push:
     new d305b8f  ISIS-2270: IsisConf. is not serializable, sync adoc
d305b8f is described below

commit d305b8f025a373c689f92173ea717573aeedbba7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jan 22 08:23:51 2020 +0100

    ISIS-2270: IsisConf. is not serializable, sync adoc
---
 .../examples/services/factory/FactoryService.java         | 15 +++++++++++++--
 .../examples/services/repository/RepositoryService.java   | 13 +++++++++++--
 .../org/apache/isis/core/config/IsisConfiguration.java    |  5 +----
 .../persistence/PersistenceSessionFactory5.java           |  7 ++++++-
 4 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java
index a3eaa5e..4214b3f 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java
@@ -46,6 +46,15 @@ public interface FactoryService {
      * @since 2.0
      */
     <T> T get(Class<T> requiredType);
+    
+    /**
+     * Creates a new detached entity instance, with injection points resolved.
+     * @param <T>
+     * @param domainClass
+     * @return
+     * @apiNote forces the domainClass to be added to the meta-model if not already
+     */
+    <T> T detachedEntity(Class<T> domainClass);
 
     /**
      * Creates a new Mixin instance.
@@ -106,10 +115,12 @@ public interface FactoryService {
      * method.
      * </p>
      * @deprecated with semantic changes since 2.0 previous behavior is no longer guaranteed, 
-     * instead consider use of {@link #get(Class)} if applicable
+     * instead consider use of {@link #detachedEntity(Class)} if applicable
      */
     @Deprecated
-    <T> T instantiate(Class<T> domainClass);
+    default <T> T instantiate(Class<T> domainClass) {
+        return detachedEntity(domainClass);
+    }
 
 
 }
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java
index 9c2f706..b8d2a87 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java
@@ -28,10 +28,19 @@ import org.apache.isis.applib.query.Query;
 public interface RepositoryService {
 
     /**
-     * Same as {@link org.apache.isis.applib.services.factory.FactoryService#instantiate(Class)}; provided as a
+     * Same as {@link org.apache.isis.applib.services.factory.FactoryService#detachedEntity(Class)}; provided as a
      * convenience because instantiating and {@link #persist(Object) persisting} are often done together.
+     * @since 2.0
      */
-    <T> T instantiate(final Class<T> ofType);
+    <T> T detachedEntity(final Class<T> ofType);
+        
+    /**
+     * @deprecated if applicable use {@link #detachedEntity(Class)} instead 
+     */
+    @Deprecated
+    default <T> T instantiate(final Class<T> ofType) {
+        return detachedEntity(ofType);
+    }
 
     /**
      * Determines if the specified object is persistent (that it is stored permanently outside of the virtual machine
diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index ef437b9..7e79ae7 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.core.config;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -76,10 +75,8 @@ import lombok.Value;
 @ConfigurationProperties(IsisConfiguration.ROOT_PREFIX)
 @Data
 @Validated
-public class IsisConfiguration implements Serializable {
+public class IsisConfiguration {
 
-    private static final long serialVersionUID = 1L;
-    
     public static final String ROOT_PREFIX = "isis";
     @Autowired private ConfigurableEnvironment environment;
     
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
index d8dbe68..5e4b8eb 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
@@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.core.commons.internal.base._Blackhole;
 import org.apache.isis.core.commons.internal.base._Lazy;
+import org.apache.isis.core.commons.internal.base._NullSafe;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistryHolder;
@@ -124,7 +125,11 @@ implements PersistenceSessionFactory, FixturesInstalledStateHolder {
         val typeRegistry = isisBeanTypeRegistryHolder.getIsisBeanTypeRegistry();
         val classesToBePersisted = jdoEntityTypeRegistry.getEntityTypes(typeRegistry);
         
-        log.debug("entity types discovered: " + classesToBePersisted);
+        if(log.isDebugEnabled()) {
+            log.debug("Entity types discovered:");
+            _NullSafe.stream(classesToBePersisted)
+                .forEach(entityClassName->log.debug(" - {}", entityClassName));
+        }
         
         DataNucleusApplicationComponents5.catalogNamedQueries(classesToBePersisted, 
                 metaModelContext.getSpecificationLoader());