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/06 10:26:18 UTC

[isis] branch master updated: ISIS-2183: Convert ValuePropertyPlugin to an interface for managed beans

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 1214bca  ISIS-2183: Convert ValuePropertyPlugin to an interface for managed beans
1214bca is described below

commit 1214bcad6f6f65d379781bcfe96f911cda21c623
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jan 6 11:26:06 2020 +0100

    ISIS-2183: Convert ValuePropertyPlugin to an interface for managed beans
---
 .../swagger/internal/ValuePropertyFactoryDefault.java      | 14 ++++++--------
 .../service/swagger/internal/ValuePropertyPlugin.java      | 12 ++++++++++++
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyFactoryDefault.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyFactoryDefault.java
index 8eab088..f551a99 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyFactoryDefault.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyFactoryDefault.java
@@ -23,10 +23,10 @@ import java.math.BigInteger;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.UUID;
 import java.util.function.Supplier;
 
+import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.joda.time.DateTime;
@@ -36,11 +36,8 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.commons.internal.context._Plugin;
 import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.ValuePropertyPlugin.ValuePropertyCollector;
 
-import lombok.extern.log4j.Log4j2;
-
 import io.swagger.models.properties.BooleanProperty;
 import io.swagger.models.properties.ByteArrayProperty;
 import io.swagger.models.properties.DateProperty;
@@ -56,11 +53,12 @@ import io.swagger.models.properties.UUIDProperty;
 
 @Component
 @Named("isisMetaModel.ValuePropertyFactoryDefault")
-@Log4j2
 public class ValuePropertyFactoryDefault implements ValuePropertyFactory {
 
     private final Map<Class<?>, Factory> propertyFactoryByClass = _Maps.newHashMap();
 
+    @Inject private List<ValuePropertyPlugin> valuePropertyPlugins;
+    
     public static interface Factory extends Supplier<Property> {};
 
     public ValuePropertyFactoryDefault() {
@@ -137,10 +135,10 @@ public class ValuePropertyFactoryDefault implements ValuePropertyFactory {
 
     // -- HELPER
 
-    private static ValuePropertyCollector discoverValueProperties() {
-        final Set<ValuePropertyPlugin> plugins = _Plugin.loadAll(ValuePropertyPlugin.class);
+    private ValuePropertyCollector discoverValueProperties() {
+        
         final ValuePropertyCollector collector = ValuePropertyPlugin.collector();
-        plugins.forEach(plugin->{
+        valuePropertyPlugins.forEach(plugin->{
             plugin.plugin(collector);
         });
         return collector;
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyPlugin.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyPlugin.java
index 2f10856..f48a471 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyPlugin.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ValuePropertyPlugin.java
@@ -22,9 +22,21 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.function.BiConsumer;
 
+import org.springframework.stereotype.Component;
+
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.ValuePropertyFactoryDefault.Factory;
 
+/**
+ * Not used by the framework yet, supposed to be reconsidered in the process of 
+ * <a href="https://issues.apache.org/jira/browse/ISIS-1695">ISIS-1695</a>   
+ * 
+ * @apiNote for now any implementing class must also be discovered/managed by Spring,
+ * that is, it needs a direct- or meta-annotation of type {@link Component}  
+ *   
+ * @since 2.0
+ * 
+ */
 public interface ValuePropertyPlugin {
 
     // -- CONTRACT