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/29 19:36:43 UTC

[isis] branch 2039-Redesign_of_Config updated: ISIS-2039: to fix prev. commit: let the maven-plugin bootstrap the configuration properly

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 a581e75  ISIS-2039: to fix prev. commit: let the maven-plugin bootstrap the configuration properly
a581e75 is described below

commit a581e759da211f635e1a92275f098653164cb675
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Nov 29 20:36:36 2018 +0100

    ISIS-2039: to fix prev. commit: let the maven-plugin bootstrap the
    configuration properly
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2039
---
 .../IsisConfigurationBuilderDefault.java           |  2 ++
 .../isis/tool/mavenplugin/IsisMojoAbstract.java    | 10 ++++----
 .../isis/core/runtime/headless/IsisSystem.java     |  3 +--
 .../IsisComponentProvider.java                     | 16 ++++++++-----
 .../IsisComponentProviderBuilder.java              | 27 ----------------------
 5 files changed, 19 insertions(+), 39 deletions(-)

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 9cdad48..650740a 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
@@ -343,6 +343,8 @@ final class IsisConfigurationBuilderDefault implements IsisConfigurationBuilder
 
         if(configuration.getAppManifest()!=null) {
             configuration.triggerTypeDiscovery();
+        } else {
+            LOG.info("Skipping domain type discovery due to missing AppManifest.");
         }
         
         if (LOG.isDebugEnabled()) {
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
index c201ed1..b945d57 100644
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
@@ -33,6 +33,8 @@ import org.apache.maven.project.MavenProject;
 
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.config.internal._Config;
+import org.apache.isis.core.commons.config.AppConfigLocator;
+import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException;
 import org.apache.isis.core.plugins.environment.IsisSystemEnvironment;
@@ -60,7 +62,6 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
     public void execute() throws MojoExecutionException, MojoFailureException {
 
         new IsisLoggingConfigurer(Level.INFO).configureLogging(".", new String[]{});
-        _Config.clear();
         IsisSystemEnvironment.setUnitTesting(true);
         
         final ContextForMojo context = new ContextForMojo(mavenProject, getLog());
@@ -68,9 +69,10 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
         final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
 
         final AppManifest appManifest = InstanceUtil.createInstance(this.appManifest, AppManifest.class);
-        final IsisComponentProvider isisComponentProvider = IsisComponentProvider.builder()
-            .appManifest(appManifest)
-            .build();
+        IsisConfiguration.buildFromAppManifest(appManifest); // build and finalize config
+        
+        final IsisComponentProvider isisComponentProvider = IsisComponentProvider.builder(appManifest)
+                .build();
         final IsisSessionFactoryBuilder isisSessionFactoryBuilder = 
                 new IsisSessionFactoryBuilder(isisComponentProvider);
         
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
index b42d459..f41ae22 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
@@ -119,8 +119,7 @@ public final class IsisSystem {
         boolean firstTime = isisSessionFactory == null;
         if(firstTime) {
 
-            componentProvider = IsisComponentProvider.builder()
-                    .appManifest(appManifest)
+            componentProvider = IsisComponentProvider.builder(appManifest)
                     .build();
             
             //[2039] environment priming removed 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
index f1bcc24..a8ba6a0 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
@@ -47,10 +47,13 @@ import static org.apache.isis.config.internal._Config.getConfiguration;
  */
 public final class IsisComponentProvider {
     
-    // -- BUILDER
+    // -- BUILDER - DEFAULT
     
-    public static IsisComponentProviderBuilder builder() {
-        return new IsisComponentProviderBuilder();
+    public static IsisComponentProviderBuilder builder(AppManifest appManifest) {
+        // ensure we the appmanifest on the config
+        
+        return new IsisComponentProviderBuilder()
+                .appManifest(appManifest);
     }
     
     // -- BUILDER - USING INSTALLERS
@@ -60,14 +63,13 @@ public final class IsisComponentProvider {
         final IsisComponentProviderHelper_UsingInstallers helper = 
                 new IsisComponentProviderHelper_UsingInstallers(appManifest);
         
-        return builder()
-                .appManifest(appManifest)
+        return builder(appManifest)
                 .authenticationManager(helper.authenticationManager)
                 .authorizationManager(helper.authorizationManager);
     }
     
 
-    // -- constructor, fields
+    // -- CONSTRUCTOR
 
     private final AppManifest appManifest;
     protected final List<Object> services;
@@ -87,6 +89,8 @@ public final class IsisComponentProvider {
         this.authorizationManager = authorizationManager;
     }
 
+    // --
+    
     public AppManifest getAppManifest() {
         return appManifest;
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderBuilder.java
index c93b873..f7d32c4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderBuilder.java
@@ -1,25 +1,18 @@
 package org.apache.isis.core.runtime.systemusinginstallers;
 
-import java.util.List;
-
 import org.apache.isis.applib.AppManifest;
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.resource.ResourceStreamSource;
-import org.apache.isis.core.commons.resource.ResourceStreamSourceContextLoaderClassPath;
 import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.authentication.standard.AuthenticationManagerStandard;
 import org.apache.isis.core.runtime.authorization.AuthorizationManager;
 import org.apache.isis.core.runtime.authorization.standard.AuthorizationManagerStandard;
 
 import static org.apache.isis.commons.internal.base._With.computeIfAbsent;
-import static org.apache.isis.config.internal._Config.acceptBuilder;
 
 public class IsisComponentProviderBuilder {
     
     private AppManifest appManifest;
     private AuthenticationManager authenticationManager;
     private AuthorizationManager authorizationManager;
-//    private final List<ResourceStreamSource> resourceStreamSources = _Lists.newArrayList();
     
     public IsisComponentProviderBuilder appManifest(AppManifest appManifest) {
         this.appManifest = appManifest;
@@ -36,22 +29,6 @@ public class IsisComponentProviderBuilder {
         return this;
     }
     
-//    public IsisComponentProviderBuilder addResourceStreamSource(ResourceStreamSource source) {
-//        resourceStreamSources.add(source);
-//        return this;
-//    }
-    
-    // -- SHORTCUTS
-    
-//    /**
-//     * Default will read <tt>isis.properties</tt> (and other optional property files) from the 'config'
-//     * package on the current classpath.
-//     */
-//    public IsisComponentProviderBuilder addConfigPackageAsResourceStreamSource() {
-//        addResourceStreamSource(ResourceStreamSourceContextLoaderClassPath.create("config"));
-//        return this;
-//    }
-    
     // -- BUILD
     
     public IsisComponentProvider build() {
@@ -62,10 +39,6 @@ public class IsisComponentProviderBuilder {
         authorizationManager = computeIfAbsent(authorizationManager, 
                 AuthorizationManagerStandard::new);
         
-//        acceptBuilder(builder->{
-//            resourceStreamSources.forEach(builder::addResourceStreamSource);
-//        });
-        
         return new IsisComponentProvider(appManifest, authenticationManager, authorizationManager);
     }