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 2021/03/24 11:17:23 UTC

[isis] branch release-2.0.0-M5-RC2 created (now 7cb227f)

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

danhaywood pushed a change to branch release-2.0.0-M5-RC2
in repository https://gitbox.apache.org/repos/asf/isis.git.


      at 7cb227f  ISIS-2444: updates website with menu items for JPA docs

This branch includes the following new commits:

     new 534d9b4  ISIS-2586: in ServiceInjector#injectServicesInto(T domainObject) make domainObject nullable
     new 7cb227f  ISIS-2444: updates website with menu items for JPA docs

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[isis] 01/02: ISIS-2586: in ServiceInjector#injectServicesInto(T domainObject) make domainObject nullable

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch release-2.0.0-M5-RC2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 534d9b4b4e0de992754dfcbd146e8f86b00e74b9
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Mar 24 09:13:03 2021 +0100

    ISIS-2586: in ServiceInjector#injectServicesInto(T domainObject) make
    domainObject nullable
    
    (cherry picked from commit aa8afaf88195089e7707636cb1d1cf1f90126be3)
---
 .../applib/services/inject/ServiceInjector.java    | 39 +++-------------------
 .../metamodel/_testing/ServiceInjectorLegacy.java  | 15 +++++++--
 .../_testing/ServiceInjector_forTesting.java       |  6 +---
 .../metamodel/services/ServiceInjectorDefault.java | 34 ++++++++-----------
 4 files changed, 32 insertions(+), 62 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java b/api/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java
index ebd6107..6f9a305 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java
@@ -18,12 +18,7 @@
  */
 package org.apache.isis.applib.services.inject;
 
-import java.util.NoSuchElementException;
-import java.util.function.Consumer;
-
-import org.springframework.beans.factory.InjectionPoint;
-
-import lombok.val;
+import javax.annotation.Nullable;
 
 /**
  * Resolves injection points using the
@@ -36,39 +31,13 @@ import lombok.val;
 public interface ServiceInjector {
 
     /**
-     * Injects domain services into the object, and calls the provided
-     * {@link Consumer} for any non-resolvable injection points.
-     *
-     * @param domainObject
-     * @param onNotResolvable
-     * @param <T>
-     * @return
-     */
-    <T> T injectServicesInto(final T domainObject, Consumer<InjectionPoint> onNotResolvable);
-
-    /**
-     * Injecs domain services into the object, and throws a
-     * {@link NoSuchElementException} for any injection points that cannot be resolved.
+     * Injects domain services into the object.
      *
      * @param domainObject
      * @param <T>
-     * @return
+     * @return domainObject with injection points resolved
      */
-    default <T> T injectServicesInto(final T domainObject) {
-
-        return injectServicesInto(domainObject, injectionPoint->{
-
-            val injectionPointName = injectionPoint.toString();
-            val requiredType = injectionPoint.getDeclaredType();
-            val msg = String
-                    .format("Could not resolve injection point [%s] in target '%s' of required type '%s'",
-                            injectionPointName,
-                            domainObject.getClass().getName(),
-                            requiredType);
-            throw new NoSuchElementException(msg);
-        });
+    <T> @Nullable T injectServicesInto(final @Nullable T domainObject);
 
-        // ...
-    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java
index 418fada..3a7471d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java
@@ -24,6 +24,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Collection;
 import java.util.Map;
+import java.util.NoSuchElementException;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
 
@@ -61,8 +62,18 @@ public class ServiceInjectorLegacy implements ServiceInjector {
     private final Map<Class<?>, Field[]> fieldsByClassCache = _Maps.newConcurrentHashMap();
 
     @Override
-    public <T> T injectServicesInto(T domainObject, Consumer<InjectionPoint> onNotResolvable) {
-        injectServices(domainObject, onNotResolvable);
+    public <T> T injectServicesInto(T domainObject) {
+        injectServices(domainObject, injectionPoint->{
+
+            val injectionPointName = injectionPoint.toString();
+            val requiredType = injectionPoint.getDeclaredType();
+            val msg = String
+                    .format("Could not resolve injection point [%s] in target '%s' of required type '%s'",
+                            injectionPointName,
+                            domainObject.getClass().getName(),
+                            requiredType);
+            throw new NoSuchElementException(msg);
+        });
         return domainObject;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjector_forTesting.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjector_forTesting.java
index 902a15e..f2a0ed5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjector_forTesting.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjector_forTesting.java
@@ -18,12 +18,8 @@
  */
 package org.apache.isis.core.metamodel._testing;
 
-import java.util.function.Consumer;
-
 import static java.util.Objects.requireNonNull;
 
-import org.springframework.beans.factory.InjectionPoint;
-
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.specloader.InjectorMethodEvaluatorDefault;
@@ -40,7 +36,7 @@ class ServiceInjector_forTesting implements ServiceInjector {
     private ServiceInjector delegate;
 
     @Override
-    public <T> T injectServicesInto(T domainObject, Consumer<InjectionPoint> onNotResolvable) {
+    public <T> T injectServicesInto(T domainObject) {
 
         if(delegate==null) {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java
index 7b86b98..1ad3e78 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java
@@ -18,12 +18,10 @@
  */
 package org.apache.isis.core.metamodel.services;
 
-import java.util.function.Consumer;
-
+import javax.annotation.Nullable;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import org.springframework.beans.factory.InjectionPoint;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
 import org.springframework.context.annotation.Primary;
@@ -33,6 +31,8 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 
+import lombok.RequiredArgsConstructor;
+
 /**
  * 
  * @since 2.0
@@ -43,29 +43,23 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 @Order(OrderPrecedence.EARLY)
 @Primary
 @Qualifier("Default")
+@RequiredArgsConstructor(onConstructor_ = {@Inject})
 public class ServiceInjectorDefault implements ServiceInjector {
 
     private final AutowireCapableBeanFactory autowireCapableBeanFactory;
 
-    @Inject
-    public ServiceInjectorDefault(AutowireCapableBeanFactory autowireCapableBeanFactory) {
-        this.autowireCapableBeanFactory = autowireCapableBeanFactory;
-    }
-
     @Override
-    public <T> T injectServicesInto(T domainObject, Consumer<InjectionPoint> onNotResolvable) {
-        injectServices(domainObject, onNotResolvable);
-        return domainObject;
-    }
-
-    // -- HELPERS
-
-    private void injectServices(final Object targetPojo, Consumer<InjectionPoint> onNotResolvable) {
-
-        autowireCapableBeanFactory.autowireBeanProperties(
-                targetPojo,
-                AutowireCapableBeanFactory.AUTOWIRE_NO, false);
+    public <T> @Nullable T injectServicesInto(final @Nullable T domainObject) {
         
+        if(domainObject!=null) {
+            
+            autowireCapableBeanFactory.autowireBeanProperties(
+                    domainObject,
+                    AutowireCapableBeanFactory.AUTOWIRE_NO, 
+                    /*dependencyCheck*/ false);    
+        }
+        
+        return domainObject;
     }
 
 

[isis] 02/02: ISIS-2444: updates website with menu items for JPA docs

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch release-2.0.0-M5-RC2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7cb227f97b74fddb74874c5c8680f31a70cb6982
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 24 11:15:29 2021 +0000

    ISIS-2444: updates website with menu items for JPA docs
---
 antora/components/docs/modules/ROOT/pages/about.adoc               | 7 ++++---
 .../docs/modules/ROOT/partials/module-nav/components.adoc          | 7 ++++---
 antora/playbooks/site-persistence.yml                              | 6 +++---
 antora/playbooks/site.yml                                          | 6 +++---
 4 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/antora/components/docs/modules/ROOT/pages/about.adoc b/antora/components/docs/modules/ROOT/pages/about.adoc
index 5aad028..2bb8845 100644
--- a/antora/components/docs/modules/ROOT/pages/about.adoc
+++ b/antora/components/docs/modules/ROOT/pages/about.adoc
@@ -89,8 +89,8 @@ _Other_
 
 _Viewers_
 
-* xref:vw:ROOT:about.adoc[Wicket UI]
-* xref:vro:ROOT:about.adoc[Restful Objects (REST API)]
+* xref:vw:ROOT:about.adoc[Web UI (Wicket)]
+* xref:vro:ROOT:about.adoc[REST API (Restful Objects)]
 
 _Security_
 
@@ -98,7 +98,8 @@ _Security_
 
 _Persistence_
 
-* xref:pjdo:ROOT:about.adoc[DataNucleus (JDO)]
+* xref:pjpa:ROOT:about.adoc[JPA (EclipseLink)]
+* xref:pjdo:ROOT:about.adoc[JDO (DataNucleus)]
 
 _Extensions_
 
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
index 04c66d9..3ac57a5 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
@@ -9,8 +9,8 @@
 
 ** Viewers
 
-*** xref:vw:ROOT:about.adoc[Wicket UI]
-*** xref:vro:ROOT:about.adoc[Restful Objects (REST API)]
+*** xref:vw:ROOT:about.adoc[Web UI (Wicket)]
+*** xref:vro:ROOT:about.adoc[REST API (Restful Objects)]
 
 ** Security
 
@@ -18,7 +18,8 @@
 
 ** Persistence
 
-*** xref:pjdo:ROOT:about.adoc[DataNucleus (JDO)]
+*** xref:pjpa:ROOT:about.adoc[JPA (EclipseLink)]
+*** xref:pjdo:ROOT:about.adoc[JDO (DataNucleus)]
 
 ** Extensions
 
diff --git a/antora/playbooks/site-persistence.yml b/antora/playbooks/site-persistence.yml
index 774fdf0..87f1ffa 100644
--- a/antora/playbooks/site-persistence.yml
+++ b/antora/playbooks/site-persistence.yml
@@ -39,11 +39,11 @@ content:
 
 # persistence
     - url: .
+      start_path: persistence/jpa/adoc # pjpa
+      branches: HEAD
+    - url: .
       start_path: persistence/jdo/adoc # pjdo
       branches: HEAD
-#    - url: .
-#      start_path: persistence/jpa/adoc # pjpa
-#      branches: HEAD
 
 # starters
     - url: .
diff --git a/antora/playbooks/site.yml b/antora/playbooks/site.yml
index 381e752..1e02ff3 100644
--- a/antora/playbooks/site.yml
+++ b/antora/playbooks/site.yml
@@ -217,11 +217,11 @@ content:
 
 # persistence
     - url: .
+      start_path: persistence/jpa/adoc # pjpa
+      branches: HEAD
+    - url: .
       start_path: persistence/jdo/adoc # pjdo
       branches: HEAD
-#    - url: .
-#      start_path: persistence/jpa/adoc # pjpa
-#      branches: HEAD
 
 # security
     - url: .