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());