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 2018/11/25 16:31:34 UTC

[isis] branch 2039-Redesign_of_Config updated: ISIS-2039: config bootstrapping: fixes the resource chain

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

ahuber pushed a commit to branch 2039-Redesign_of_Config
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/2039-Redesign_of_Config by this push:
     new 78c5155  ISIS-2039: config bootstrapping: fixes the resource chain
78c5155 is described below

commit 78c5155e29056a35f9c539d2d5147f0a2df79ce2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Nov 25 17:31:29 2018 +0100

    ISIS-2039: config bootstrapping: fixes the resource chain
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2039
---
 .../org/apache/isis/config/internal/_Config.java   |  2 +-
 .../configbuilder/IsisConfigurationBuilder.java    |  8 ++--
 .../IsisConfigurationBuilderDefault.java           | 53 ++++++++++++++++------
 .../configbuilder/PrimerForServletContext.java     |  3 +-
 4 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/internal/_Config.java b/core/config/src/main/java/org/apache/isis/config/internal/_Config.java
index 00aeec5..3ec1d7e 100644
--- a/core/config/src/main/java/org/apache/isis/config/internal/_Config.java
+++ b/core/config/src/main/java/org/apache/isis/config/internal/_Config.java
@@ -103,7 +103,7 @@ public class _Config {
     }
     
     private static IsisConfigurationBuilder createBuilder() {
-        final IsisConfigurationBuilder builder = IsisConfigurationBuilder.empty(); 
+        final IsisConfigurationBuilder builder = IsisConfigurationBuilder.getDefault(); 
         return builder;
     }
 
diff --git a/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java b/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
index 00787ba..7aeedab 100644
--- a/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
+++ b/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
@@ -29,8 +29,6 @@ import org.apache.isis.core.commons.resource.ResourceStreamSource;
 
 public interface IsisConfigurationBuilder {
     
-    void addDefaultConfigurationResourcesAndPrimers();
-    
     void addPropertyResource(PropertyResource propertyResource);
 
     void addResourceStreamSource(ResourceStreamSource resourceStreamSource);
@@ -98,8 +96,12 @@ public interface IsisConfigurationBuilder {
 
     // -- FACTORIES
     
+    static IsisConfigurationBuilder getDefault() {
+        return IsisConfigurationBuilderDefault.getDefault();
+    }
+
     static IsisConfigurationBuilder empty() {
-        return new IsisConfigurationBuilderDefault();
+        return IsisConfigurationBuilderDefault.empty();
     }
 
     
diff --git a/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilderDefault.java b/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilderDefault.java
index 50c9b02..9a1d4d3 100644
--- a/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilderDefault.java
+++ b/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilderDefault.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.commons.configbuilder;
 
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
@@ -64,26 +65,51 @@ final class IsisConfigurationBuilderDefault implements IsisConfigurationBuilder
 
     // -- constructor, fields
 
-    private final ResourceStreamSourceChainOfResponsibility resourceStreamSourceChain;
+    private /*final*/ ResourceStreamSourceChainOfResponsibility resourceStreamSourceChain;
 
     private IsisConfigurationDefault configuration;
 
     private final Set<String> configurationResourcesFound = _Sets.newLinkedHashSet();
     private final Set<String> configurationResourcesNotFound = _Sets.newLinkedHashSet();
 
-    public IsisConfigurationBuilderDefault() {
-        this(ResourceStreamSourceFileSystem.create(ConfigurationConstants.DEFAULT_CONFIG_DIRECTORY));
-    }
+//    public IsisConfigurationBuilderDefault() {
+//        this(ResourceStreamSourceFileSystem.create(ConfigurationConstants.DEFAULT_CONFIG_DIRECTORY));
+//    }
 
-    public IsisConfigurationBuilderDefault(final ResourceStreamSource... resourceStreamSources) {
-        this(createComposite(Arrays.asList(resourceStreamSources)));
-    }
+//    private IsisConfigurationBuilderDefault(final ResourceStreamSource... resourceStreamSources) {
+//        this(createComposite(Arrays.asList(resourceStreamSources)));
+//    }
 
-    public IsisConfigurationBuilderDefault(final List<ResourceStreamSource> resourceStreamSources) {
-        this(createComposite(resourceStreamSources));
+//    private IsisConfigurationBuilderDefault(final List<ResourceStreamSource> resourceStreamSources) {
+//        this(createComposite(resourceStreamSources));
+//    }
+    
+    // -- FACTORIES
+    
+    static IsisConfigurationBuilder empty() {
+        ResourceStreamSourceChainOfResponsibility chain = createComposite(Collections.emptyList());
+        IsisConfigurationBuilderDefault builder = new IsisConfigurationBuilderDefault(chain);
+        return builder;
     }
+    
+    static IsisConfigurationBuilderDefault getDefault() {
+        
+        ResourceStreamSourceChainOfResponsibility chain = createComposite(Arrays.asList(
+                ResourceStreamSourceFileSystem.create(ConfigurationConstants.DEFAULT_CONFIG_DIRECTORY)        
+                ));
+        IsisConfigurationBuilderDefault builder = new IsisConfigurationBuilderDefault(chain);
+        
+        builder.addDefaultPrimers();
+        
+        builder.addDefaultConfigurationResources();
+        
+        return builder;
+        
+    }
+    
+    // -- 
 
-    public IsisConfigurationBuilderDefault(final ResourceStreamSourceChainOfResponsibility resourceStreamSourceChain) {
+    private IsisConfigurationBuilderDefault(final ResourceStreamSourceChainOfResponsibility resourceStreamSourceChain) {
         this.resourceStreamSourceChain = resourceStreamSourceChain;
         configuration = new IsisConfigurationDefault(resourceStreamSourceChain);
     }
@@ -100,11 +126,6 @@ final class IsisConfigurationBuilderDefault implements IsisConfigurationBuilder
         return composite;
     }
 
-    @Override
-    public void addDefaultConfigurationResourcesAndPrimers() {
-        addDefaultConfigurationResources();
-        addDefaultPrimers();
-    }
 
     private void addDefaultConfigurationResources() {
         IsisConfigurationDefault.ContainsPolicy ignorePolicy = IsisConfigurationDefault.ContainsPolicy.IGNORE;
@@ -362,4 +383,6 @@ final class IsisConfigurationBuilderDefault implements IsisConfigurationBuilder
                 resourceStreamSourceChain, configurationResourcesFound);
     }
 
+   
+
 }
diff --git a/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForServletContext.java b/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForServletContext.java
index 9b1a1e2..cbbdd60 100644
--- a/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForServletContext.java
+++ b/core/config/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForServletContext.java
@@ -46,13 +46,14 @@ class PrimerForServletContext implements IsisConfigurationBuilder.Primer {
     public void prime(final IsisConfigurationBuilder builder) {
         final ServletContext servletContext  = _Context.getIfAny(ServletContext.class);
         if(servletContext==null) {
+            System.out.println("!!!! no servlet context to prime from");
             return;
         }
+        System.out.println("!!!! priming from servlet context");
         
         asMap(servletContext).forEach((k, v)->builder.put(k, v));
         addServletContextConstants(servletContext, builder);
         addResourceStreamSources(servletContext, builder);
-        builder.addDefaultConfigurationResourcesAndPrimers();
         
         final String loggingPropertiesDir = 
                 ifPresentElseGet(