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:26:30 UTC

[1/9] isis git commit: ISIS-1524: Dates not showing in view model

Repository: isis
Updated Branches:
  refs/heads/maint-1.13.2 2844a93e3 -> 48fece9b8


ISIS-1524: Dates not showing in view model

Added support for java.util.Date to MementoService


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

Branch: refs/heads/maint-1.13.2
Commit: 852c5772ec27004430a35d41b61141ff721ffa84
Parents: 2844a93
Author: mwhesse <mw...@gmail.com>
Authored: Sun Nov 6 14:24:43 2016 +0700
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:07:10 2016 +0000

----------------------------------------------------------------------
 .../runtime/services/memento/Dom4jUtil.java     | 33 ++++++++++++++++++--
 .../memento/MementoServiceDefaultTest.java      |  3 ++
 2 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/852c5772/core/runtime/src/main/java/org/apache/isis/core/runtime/services/memento/Dom4jUtil.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/memento/Dom4jUtil.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/memento/Dom4jUtil.java
index a22e49b..2f1ad27 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/memento/Dom4jUtil.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/memento/Dom4jUtil.java
@@ -21,6 +21,7 @@ import java.io.StringReader;
 import java.io.StringWriter;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.util.Date;
 
 import org.dom4j.Document;
 import org.dom4j.DocumentException;
@@ -101,7 +102,7 @@ class Dom4jUtil {
     }
 
     private static String encodeForNulls(final Object value) {
-        return value != null ? value.toString() : NULL_MARKER;
+        return value != null ? Parseable.format(value) : NULL_MARKER;
     }
     private static String decodeForNulls(final String valueStr) {
         return NULL_MARKER.equals(valueStr)? null: valueStr;
@@ -186,6 +187,17 @@ class Dom4jUtil {
                 return (T) new LocalDate(str);
             } 
         },
+        JAVA_UTIL_DATE(Date.class) {
+        	@SuppressWarnings({ "unchecked" })
+            @Override
+        	<T> T parseStr(String str, Class<T> cls) {
+                return (T) new Date(Long.parseLong(str));
+            }
+			@Override
+			<T> String format(Object o, Class<T> cls) {
+				return Long.toString(((Date) o).getTime());
+			}
+        },
         ENUM(Enum.class) {
             @SuppressWarnings({ "unchecked", "rawtypes" })
             @Override
@@ -212,11 +224,13 @@ class Dom4jUtil {
             return classes;
         }
         abstract <T> T parseStr(String str, Class<T> cls);
+        <T> String format(Object o, Class<T> cls) {
+        	return o.toString();
+        }
         
         // //////////////////////////////////////
 
-        @SuppressWarnings("unchecked")
-        static <T> T parse(final String str, final Class<?> cls) {
+        static <T> T parse(final String str, final Class<? extends T> cls) {
             assertSupported(cls);
             for (Parseable sc : values()) {
                 for (Class<?> eachCls: sc.getClasses()) {
@@ -229,6 +243,19 @@ class Dom4jUtil {
             }
             return null;
         }
+        
+        static String format(final Object o) {
+        	if(isSupported(o.getClass())) {
+        		for (Parseable sc : values()) {
+            		for (Class<?> eachCls: sc.getClasses()) {
+            			if(eachCls.isAssignableFrom(o.getClass())) {
+            				return sc.format(o, o.getClass());
+            			}
+            		}
+            	}
+        	}
+        	return o.toString();
+        }
 
         static boolean isSupported(final Class<?> cls) {
             for (Parseable sc : values()) {

http://git-wip-us.apache.org/repos/asf/isis/blob/852c5772/core/runtime/src/test/java/org/apache/isis/core/runtime/services/memento/MementoServiceDefaultTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/memento/MementoServiceDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/memento/MementoServiceDefaultTest.java
index 7511b57..90cb912 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/memento/MementoServiceDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/memento/MementoServiceDefaultTest.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertThat;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.util.Date;
 
 import org.joda.time.LocalDate;
 import org.junit.Before;
@@ -60,6 +61,7 @@ public class MementoServiceDefaultTest {
         memento.set("someBigInteger", new BigInteger("123456789012345678901234567890"));
         memento.set("someBigDecimal", new BigDecimal("123456789012345678901234567890.123456789"));
         memento.set("someLocalDate", new LocalDate(2013,9,3));
+        memento.set("someJavaUtilDate", new Date(300_000_000));
         
         memento.set("someBookmark", new Bookmark("CUS", "12345"));
         memento.set("someNullValue", null);
@@ -83,6 +85,7 @@ public class MementoServiceDefaultTest {
         assertThat(memento2.get("someBigInteger", BigInteger.class), is(new BigInteger("123456789012345678901234567890")));
         assertThat(memento2.get("someBigDecimal", BigDecimal.class), is(new BigDecimal("123456789012345678901234567890.123456789")));
         assertThat(memento2.get("someLocalDate", LocalDate.class), is(new LocalDate(2013,9,3)));
+        assertThat(memento2.get("someJavaUtilDate", Date.class), is(new Date(300_000_000)));
         assertThat(memento2.get("someBookmark", Bookmark.class), is(new Bookmark("CUS", "12345")));
         
         // a nullValue can be grabbed as any type, will always succeed


[2/9] isis git commit: Merge branch 'ISIS-1524' into maint-1.13.2

Posted by da...@apache.org.
Merge branch 'ISIS-1524' into maint-1.13.2


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

Branch: refs/heads/maint-1.13.2
Commit: 8b70b192e0bede9329fb587ab650177cb69ae011
Parents: 2844a93 852c577
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 22 12:10:38 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:10:38 2016 +0000

----------------------------------------------------------------------
 .../runtime/services/memento/Dom4jUtil.java     | 33 ++++++++++++++++++--
 .../memento/MementoServiceDefaultTest.java      |  3 ++
 2 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[8/9] isis git commit: Fixes the order of member id in the GirdSystemService

Posted by da...@apache.org.
Fixes the order of member id in the GirdSystemService


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

Branch: refs/heads/maint-1.13.2
Commit: 573bab68b185c3cb308e0b81a93a4ae2d754aadd
Parents: 854da9e
Author: mwhesse <mw...@gmail.com>
Authored: Sun Nov 20 17:54:46 2016 +0700
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:21:55 2016 +0000

----------------------------------------------------------------------
 .../org/apache/isis/core/metamodel/spec/feature/ObjectMember.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/573bab68/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
index 12488f0..39b2177 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
@@ -188,7 +188,7 @@ public interface ObjectMember extends ObjectFeature {
             // fails if there are multiple members with the same id...
             //            return Maps.newHashMap(Maps.uniqueIndex(members, ObjectMember.Functions.getId()));
 
-            final HashMap<String, T> memberById = Maps.newHashMap();
+            final HashMap<String, T> memberById = Maps.newLinkedHashMap();
             for (T member : members) {
                 final String id = Functions.getId().apply(member);
                 // if there are multiple members with same id, just disregard


[6/9] isis git commit: ISIS-1526: removes launch file added in previous commit

Posted by da...@apache.org.
ISIS-1526: removes launch file added in previous commit


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

Branch: refs/heads/maint-1.13.2
Commit: 19a2ef3b10c4c51279bf2a9e6bd26a20a3574bbf
Parents: cc7c0e5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 22 12:14:57 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:14:57 2016 +0000

----------------------------------------------------------------------
 .../eclipse/launch/SimpleApp-PROTOTYPE.launch   | 20 --------------------
 1 file changed, 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/19a2ef3b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
deleted file mode 100644
index 918c5f1..0000000
--- a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/isis-core-webserver/src/main/java/org/apache/isis/WebServer.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
-<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER_PROTOTYPE --port 8080"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simpleapp-webapp"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>


[4/9] isis git commit: revert port

Posted by da...@apache.org.
revert port


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

Branch: refs/heads/maint-1.13.2
Commit: cc5df5dd7c4ea678429842e79b5570e8409f430c
Parents: 73f1c25
Author: mwhesse <mw...@gmail.com>
Authored: Sun Oct 30 16:27:41 2016 +0700
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:12:09 2016 +0000

----------------------------------------------------------------------
 .../simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/cc5df5dd/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
index 5aaa2a4..918c5f1 100644
--- a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
+++ b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
@@ -14,7 +14,7 @@
 <booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
 <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER_PROTOTYPE --port 9090"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER_PROTOTYPE --port 8080"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simpleapp-webapp"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
 </launchConfiguration>


[5/9] isis git commit: peekConfiguration() returns configuration

Posted by da...@apache.org.
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/maint-1.13.2
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(


[9/9] isis git commit: Merge branch 'ISIS-1541' into maint-1.13.2

Posted by da...@apache.org.
Merge branch 'ISIS-1541' into maint-1.13.2


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

Branch: refs/heads/maint-1.13.2
Commit: 48fece9b876ea27d65eb08261d6cb38b41289d78
Parents: 854da9e 573bab6
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 22 12:24:18 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:24:18 2016 +0000

----------------------------------------------------------------------
 .../org/apache/isis/core/metamodel/spec/feature/ObjectMember.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[3/9] isis git commit: ISIS-1526 - proposed fix

Posted by da...@apache.org.
ISIS-1526 - proposed fix

peeking into configuration needs to take into account selective
properties


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

Branch: refs/heads/maint-1.13.2
Commit: 73f1c25f385a0451e268746b105ee493c34163b2
Parents: 8b70b19
Author: mwhesse <mw...@gmail.com>
Authored: Sun Oct 30 16:19:45 2016 +0700
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:12:00 2016 +0000

----------------------------------------------------------------------
 .../configbuilder/IsisConfigurationBuilder.java | 24 ++++++++++++++++++--
 .../core/webapp/IsisWebAppBootstrapper.java     |  2 +-
 .../wicket/viewer/IsisWicketApplication.java    |  2 +-
 .../apache/isis/core/webserver/WebServer.java   | 11 +++++----
 .../eclipse/launch/SimpleApp-PROTOTYPE.launch   | 20 ++++++++++++++++
 5 files changed, 51 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/73f1c25f/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 ba75b22..cf0986b 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,10 +21,18 @@ 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;
@@ -38,6 +46,7 @@ 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;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault.ContainsPolicy;
 import org.apache.isis.core.commons.config.NotFoundPolicy;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.resource.ResourceStreamSource;
@@ -350,8 +359,19 @@ public final class IsisConfigurationBuilder {
      *     Used while bootstrapping, to obtain the web.server port etc.
      * </p>
      */
-    public IsisConfigurationDefault peekConfiguration() {
-        return new IsisConfigurationDefault(resourceStreamSourceChain);
+    public IsisConfiguration peekConfiguration(String...keys) {
+    	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());
+			}
+		}));
+    	cfg.add(props, ContainsPolicy.OVERWRITE);    	
+    	return cfg;
     }
 
     private void ensureNotLocked() {

http://git-wip-us.apache.org/repos/asf/isis/blob/73f1c25f/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 9123aea..e9ae6f1 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().getString(SystemConstants.DEPLOYMENT_TYPE_KEY);
+        deploymentTypeStr = isisConfigurationBuilder.peekConfiguration(SystemConstants.DEPLOYMENT_TYPE_KEY).getString(SystemConstants.DEPLOYMENT_TYPE_KEY);
         if (deploymentTypeStr != null) {
             return deploymentTypeStr;
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/73f1c25f/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 c40b7d9..f898465 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();
+            final IsisConfiguration configuration = isisConfigurationBuilder.peekConfiguration("isis.deploymentType");
             String deploymentTypeFromConfig = configuration.getString("isis.deploymentType");
             deploymentType = determineDeploymentType(deploymentTypeFromConfig);
         } finally {

http://git-wip-us.apache.org/repos/asf/isis/blob/73f1c25f/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 2478b73..6aa7ea4 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();
+        final IsisConfiguration configuration = isisConfigurationBuilder.peekConfiguration(EMBEDDED_WEB_SERVER_STARTUP_MODE_KEY);
         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();
+        final IsisConfiguration configuration = configurationBuilder.peekConfiguration(EMBEDDED_WEB_SERVER_PORT_KEY, EMBEDDED_WEB_SERVER_RESOURCE_BASE_KEY);
         final int port = configuration.getInteger(
                 EMBEDDED_WEB_SERVER_PORT_KEY, EMBEDDED_WEB_SERVER_PORT_DEFAULT);
         final String webappContextPath = configuration.getString(
@@ -236,8 +236,11 @@ public class WebServer {
         final String contextPath = handler.getContextPath();
 
         final StringBuilder buf = new StringBuilder();
-        final Formatter formatter = new Formatter(buf);
-        formatter.format("%s://%s:%d/%s", scheme, host, port, contextPath);
+        
+        try(final Formatter formatter = new Formatter(buf)) {
+        	formatter.format("%s://%s:%d/%s", scheme, host, port, contextPath);
+        }
+        
         return appendSlashIfRequired(buf).toString();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/73f1c25f/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
new file mode 100644
index 0000000..5aaa2a4
--- /dev/null
+++ b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/isis-core-webserver/src/main/java/org/apache/isis/WebServer.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
+<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
+<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
+</mapAttribute>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
+<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER_PROTOTYPE --port 9090"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simpleapp-webapp"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+</launchConfiguration>


[7/9] isis git commit: Merge branch 'ISIS-1526' into maint-1.13.2

Posted by da...@apache.org.
Merge branch 'ISIS-1526' into maint-1.13.2


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

Branch: refs/heads/maint-1.13.2
Commit: 854da9ead4f1c39eecdde3b44f849ccf69ace0b9
Parents: 8b70b19 19a2ef3
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 22 12:15:28 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 22 12:15:28 2016 +0000

----------------------------------------------------------------------
 .../configbuilder/IsisConfigurationBuilder.java | 24 +++++---
 ...figurationBuilder_PeekConfigurationTest.java | 64 ++++++++++++++++++++
 .../apache/isis/core/webserver/WebServer.java   |  7 ++-
 3 files changed, 84 insertions(+), 11 deletions(-)
----------------------------------------------------------------------