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:07:00 UTC

[isis] branch 2039-Redesign_of_Config updated: ISIS-2039: unify config bootstrapping code for maven-plugin, wicket-viewer and headless

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 c30a157  ISIS-2039: unify config bootstrapping code for maven-plugin, wicket-viewer and headless
c30a157 is described below

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

    ISIS-2039: unify config bootstrapping code for maven-plugin,
    wicket-viewer and headless
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2039
---
 .../apache/isis/tool/mavenplugin/IsisMojoAbstract.java  | 17 +++++++++++++----
 .../apache/isis/core/runtime/headless/IsisSystem.java   |  2 +-
 .../system/session/IsisSessionFactoryBuilder.java       | 14 ++------------
 .../viewer/integration/isis/IsisInjectModule.java       |  4 ++--
 4 files changed, 18 insertions(+), 19 deletions(-)

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 bec3b05..c201ed1 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
@@ -32,12 +32,15 @@ import org.apache.maven.plugins.annotations.Parameter;
 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.factory.InstanceUtil;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException;
+import org.apache.isis.core.plugins.environment.IsisSystemEnvironment;
 import org.apache.isis.core.runtime.logging.IsisLoggingConfigurer;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
+import org.apache.isis.core.runtime.systemusinginstallers.IsisComponentProvider;
 import org.apache.isis.tool.mavenplugin.util.MavenProjects;
 
 public abstract class IsisMojoAbstract extends AbstractMojo {
@@ -57,14 +60,20 @@ 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());
 
         final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
 
-        final AppManifest manifest = InstanceUtil.createInstance(this.appManifest, AppManifest.class);
-
-        final IsisSessionFactoryBuilder isisSessionFactoryBuilder = new IsisSessionFactoryBuilder(manifest);
+        final AppManifest appManifest = InstanceUtil.createInstance(this.appManifest, AppManifest.class);
+        final IsisComponentProvider isisComponentProvider = IsisComponentProvider.builder()
+            .appManifest(appManifest)
+            .build();
+        final IsisSessionFactoryBuilder isisSessionFactoryBuilder = 
+                new IsisSessionFactoryBuilder(isisComponentProvider);
+        
         IsisSessionFactory isisSessionFactory = null;
         try {
             isisSessionFactory = isisSessionFactoryBuilder.buildSessionFactory();
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 1637c72..b42d459 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
@@ -127,7 +127,7 @@ public final class IsisSystem {
             // _Config.acceptBuilder(IsisContext.EnvironmentPrimer::primeEnvironment);
 
             final IsisSessionFactoryBuilder isisSessionFactoryBuilder = 
-                    new IsisSessionFactoryBuilder(componentProvider, appManifest);
+                    new IsisSessionFactoryBuilder(componentProvider);
 
             // ensures that a FixtureClock is installed as the singleton underpinning the ClockService
             FixtureClock.initialize();
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
index 38eae5e..3b9e718 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
@@ -71,20 +71,10 @@ public class IsisSessionFactoryBuilder {
     private final IsisLocaleInitializer localeInitializer;
     private final IsisTimeZoneInitializer timeZoneInitializer;
 
-    public IsisSessionFactoryBuilder(final AppManifest appManifest) {
-        this(IsisComponentProvider.builder()
-                .appManifest(appManifest)
-//                .addConfigPackageAsResourceStreamSource()
-                .build(),
-                appManifest);
-    }
-
-    public IsisSessionFactoryBuilder(
-            final IsisComponentProvider componentProvider,
-            final AppManifest appManifest) {
+    public IsisSessionFactoryBuilder(final IsisComponentProvider componentProvider) {
 
         this.componentProvider = componentProvider;
-        this.appManifest = appManifest;
+        this.appManifest = componentProvider.getAppManifest();
 
         this.localeInitializer = new IsisLocaleInitializer();
         this.timeZoneInitializer = new IsisTimeZoneInitializer();
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/IsisInjectModule.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/IsisInjectModule.java
index f2e2ec3..9f1350a 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/IsisInjectModule.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/IsisInjectModule.java
@@ -43,14 +43,14 @@ public class IsisInjectModule extends AbstractModule {
     @Singleton
     protected IsisSessionFactory provideIsisSessionFactory(IsisConfiguration isisConfiguration) {
         
-        AppManifest appManifest = isisConfiguration.getAppManifest();
+        final AppManifest appManifest = isisConfiguration.getAppManifest();
         
         final IsisComponentProvider componentProvider = IsisComponentProvider
                 .builderUsingInstallers(appManifest)
                 .build();
         
         final IsisSessionFactoryBuilder builder =
-                new IsisSessionFactoryBuilder(componentProvider, appManifest);
+                new IsisSessionFactoryBuilder(componentProvider);
         
         // as a side-effect, if the metamodel turns out to be invalid, then
         // this will push the MetaModelInvalidException into IsisContext.