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 2016/11/22 12:25:11 UTC

[06/14] isis git commit: peekConfiguration() returns configuration

peekConfiguration() returns  configuration

peekConfiguration() returns a new IsisConfigurationDefault that has a
copy of all the properties currently held within this.configuration.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/cc7c0e52
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/cc7c0e52
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/cc7c0e52

Branch: refs/heads/master
Commit: cc7c0e528cf7812f2234df4aa741768b6333b30e
Parents: cc5df5d
Author: mwhesse <mw...@gmail.com>
Authored: Tue Nov 1 22:30:46 2016 +0700
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:12:17 2016 +0000

----------------------------------------------------------------------
 .../configbuilder/IsisConfigurationBuilder.java | 30 +++------
 ...figurationBuilder_PeekConfigurationTest.java | 64 ++++++++++++++++++++
 .../core/webapp/IsisWebAppBootstrapper.java     |  2 +-
 .../wicket/viewer/IsisWicketApplication.java    |  2 +-
 .../apache/isis/core/webserver/WebServer.java   |  4 +-
 5 files changed, 76 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/cc7c0e52/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
index cf0986b..22c8a5c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
@@ -21,28 +21,15 @@ package org.apache.isis.core.commons.configbuilder;
 
 import java.io.IOException;
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Set;
 
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-
 import org.apache.commons.cli.BasicParser;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
@@ -54,6 +41,11 @@ import org.apache.isis.core.commons.resource.ResourceStreamSourceChainOfResponsi
 import org.apache.isis.core.commons.resource.ResourceStreamSourceFileSystem;
 import org.apache.isis.core.runtime.optionhandler.BootPrinter;
 import org.apache.isis.core.runtime.optionhandler.OptionHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Sets;
 
 /**
  * Holds a mutable set of properties representing the configuration.
@@ -80,7 +72,7 @@ public final class IsisConfigurationBuilder {
 
     private final ResourceStreamSourceChainOfResponsibility resourceStreamSourceChain;
 
-    private final IsisConfigurationDefault configuration;
+    /* package */ final IsisConfigurationDefault configuration;
     private boolean locked;
 
     private final Set<String> configurationResourcesFound = Sets.newLinkedHashSet();
@@ -359,17 +351,11 @@ public final class IsisConfigurationBuilder {
      *     Used while bootstrapping, to obtain the web.server port etc.
      * </p>
      */
-    public IsisConfiguration peekConfiguration(String...keys) {
+    public IsisConfiguration peekConfiguration() {
     	IsisConfigurationDefault cfg = new IsisConfigurationDefault(resourceStreamSourceChain);
     	// no locking
-    	final Set<String> keysToCopy = new HashSet<String>(Arrays.asList(Optional.of(keys).or(new String[0])));
     	Properties props = new Properties();
-    	props.putAll(Maps.filterEntries(configuration.asMap(), new Predicate<Entry<String, String>>() {
-			@Override
-			public boolean apply(Entry<String, String> entry) {
-				return keysToCopy.contains(entry.getKey());
-			}
-		}));
+    	props.putAll(configuration.asMap());
     	cfg.add(props, ContainsPolicy.OVERWRITE);    	
     	return cfg;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/cc7c0e52/core/metamodel/src/test/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder_PeekConfigurationTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder_PeekConfigurationTest.java b/core/metamodel/src/test/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder_PeekConfigurationTest.java
new file mode 100644
index 0000000..f2c24b2
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder_PeekConfigurationTest.java
@@ -0,0 +1,64 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.commons.configbuilder;
+
+import java.util.Properties;
+
+import org.apache.isis.core.commons.config.IsisConfiguration;
+
+import junit.framework.TestCase;
+
+public class IsisConfigurationBuilder_PeekConfigurationTest extends TestCase {
+
+    private IsisConfigurationBuilder configurationBuilder;
+
+    public IsisConfigurationBuilder_PeekConfigurationTest(final String name) {
+        super(name);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+    	configurationBuilder = new IsisConfigurationBuilder();
+    	configurationBuilder.add("isis.test", "val");
+    }
+
+    public void testPeekConfiguration() {
+    	
+    	IsisConfiguration configuration = null;
+    	
+    	// pre-conditions
+    	assertNull(configuration);
+    	assertEquals("val", configurationBuilder.configuration.getString("isis.test"));
+    	assertFalse(configurationBuilder.isLocked());
+    	
+    	// peek into the configuration
+    	configuration = configurationBuilder.peekConfiguration();
+    	
+    	// invariant holds
+    	assertEquals("val", configurationBuilder.configuration.getString("isis.test"));
+    	assertFalse(configurationBuilder.isLocked());
+    	
+    	// post-conditions
+    	assertNotNull(configuration);
+        assertEquals("val", configuration.getString("isis.test"));
+        
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cc7c0e52/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
index e9ae6f1..9123aea 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
@@ -191,7 +191,7 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
             return deploymentTypeStr;
         }
 
-        deploymentTypeStr = isisConfigurationBuilder.peekConfiguration(SystemConstants.DEPLOYMENT_TYPE_KEY).getString(SystemConstants.DEPLOYMENT_TYPE_KEY);
+        deploymentTypeStr = isisConfigurationBuilder.peekConfiguration().getString(SystemConstants.DEPLOYMENT_TYPE_KEY);
         if (deploymentTypeStr != null) {
             return deploymentTypeStr;
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/cc7c0e52/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index f898465..c40b7d9 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -493,7 +493,7 @@ public class IsisWicketApplication
         try {
             final IsisConfigurationBuilder isisConfigurationBuilder = obtainConfigBuilder();
 
-            final IsisConfiguration configuration = isisConfigurationBuilder.peekConfiguration("isis.deploymentType");
+            final IsisConfiguration configuration = isisConfigurationBuilder.peekConfiguration();
             String deploymentTypeFromConfig = configuration.getString("isis.deploymentType");
             deploymentType = determineDeploymentType(deploymentTypeFromConfig);
         } finally {

http://git-wip-us.apache.org/repos/asf/isis/blob/cc7c0e52/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
----------------------------------------------------------------------
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
index 6aa7ea4..d9060d2 100644
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
+++ b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
@@ -123,7 +123,7 @@ public class WebServer {
         // create and start
         jettyServer = createJettyServerAndBindConfig(isisConfigurationBuilder);
 
-        final IsisConfiguration configuration = isisConfigurationBuilder.peekConfiguration(EMBEDDED_WEB_SERVER_STARTUP_MODE_KEY);
+        final IsisConfiguration configuration = isisConfigurationBuilder.peekConfiguration();
         final String startupModeStr = configuration.getString(
                 EMBEDDED_WEB_SERVER_STARTUP_MODE_KEY, EMBEDDED_WEB_SERVER_STARTUP_MODE_DEFAULT);
         final StartupMode startupMode = StartupMode.lookup(startupModeStr);
@@ -156,7 +156,7 @@ public class WebServer {
     private Server createJettyServerAndBindConfig(final IsisConfigurationBuilder configurationBuilder) {
 
         // the Isis system is actually bootstrapped by the ServletContextInitializer in the web.xml
-        final IsisConfiguration configuration = configurationBuilder.peekConfiguration(EMBEDDED_WEB_SERVER_PORT_KEY, EMBEDDED_WEB_SERVER_RESOURCE_BASE_KEY);
+        final IsisConfiguration configuration = configurationBuilder.peekConfiguration();
         final int port = configuration.getInteger(
                 EMBEDDED_WEB_SERVER_PORT_KEY, EMBEDDED_WEB_SERVER_PORT_DEFAULT);
         final String webappContextPath = configuration.getString(