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(