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 2013/11/21 18:16:30 UTC
git commit: ISIS-599: config property to enable logging in exception
recognizers
Updated Branches:
refs/heads/master 3a629128d -> e0dd1c868
ISIS-599: config property to enable logging in exception recognizers
Thus, if "isis.services.exceprecog.logRecognizedExceptions" set to true,
then a stack trace of any recognized exceptions will be logged.
If the exception is NOT recognized, then no stack trace is logged; the
assumption is that if none of the recognizers recognize the exception,
then it will bubble up and its stack trace be logged anyway as a
unexpected exception.
In addition:
- simplified the ExceptionRecognizer hierarchy
- made ExceptionRecognizers be init/shutdown via @PostConstruct methods etc
(to read the configuration)
- updated the example isis.properties files for the archetypes.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e0dd1c86
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e0dd1c86
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e0dd1c86
Branch: refs/heads/master
Commit: e0dd1c868f643734050fdf23a56c2ffbbc04cbe7
Parents: 3a62912
Author: Dan Haywood <da...@apache.org>
Authored: Thu Nov 21 17:01:06 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Nov 21 17:01:06 2013 +0000
----------------------------------------------------------------------
...ionRecognizerCompositeForJdoObjectStore.java | 1 +
.../exceprecog/ExceptionRecognizer.java | 13 ++++
.../exceprecog/ExceptionRecognizerAbstract.java | 82 +++++++++++++++++++-
.../ExceptionRecognizerComposite.java | 25 +++++-
.../ExceptionRecognizerDelegating.java | 39 ----------
.../exceprecog/ExceptionRecognizerForType.java | 5 +-
.../exceprecog/ExceptionRecognizerGeneral.java | 64 ---------------
.../ExceptionRecognizerCompositeTest.java | 9 +++
.../ExceptionRecognizerGeneralTest.java | 8 +-
.../container/DomainObjectContainerDefault.java | 21 ++++-
.../src/main/webapp/WEB-INF/isis.properties | 21 +++++
.../src/main/webapp/WEB-INF/isis.properties | 21 +++++
12 files changed, 194 insertions(+), 115 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
index d7a4a2e..a985243 100644
--- a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
@@ -34,6 +34,7 @@ import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
@Hidden
public class ExceptionRecognizerCompositeForJdoObjectStore extends ExceptionRecognizerComposite {
+
public ExceptionRecognizerCompositeForJdoObjectStore() {
// most specific ones first
add(new ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException());
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java
index 1cbbd66..d74bd37 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java
@@ -18,6 +18,12 @@
*/
package org.apache.isis.applib.services.exceprecog;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+
/**
* Domain service to (attempt) to recognize certain
@@ -55,4 +61,11 @@ public interface ExceptionRecognizer {
* @return user-friendly message to render, or <tt>null</tt> otherwise.
*/
public String recognize(Throwable ex);
+
+ @PostConstruct
+ public void init(Map<String, String> properties);
+
+ @PreDestroy
+ public void shutdown();
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
index 6e60c33..dcf80f4 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
@@ -18,14 +18,45 @@
*/
package org.apache.isis.applib.services.exceprecog;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
import com.google.common.base.Function;
+import com.google.common.base.Functions;
+import com.google.common.base.Predicate;
+import com.google.common.base.Throwables;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.isis.applib.annotation.Hidden;
/**
- * Convenience implementation of {@link ExceptionRecognizer} that provides some
- * utility methods to subclasses.
+ * Abstract implementation of {@link ExceptionRecognizer} that looks
+ * exceptions meeting the {@link Predicate} supplied in the constructor
+ * and, if found anywhere in the {@link Throwables#getCausalChain(Throwable) causal chain},
+ * then returns a non-null message indicating that the exception has been recognized.
+ *
+ * <p>
+ * If a messaging-parsing {@link Function} is provided through the constructor,
+ * then the message can be altered. Otherwise the exception's {@link Throwable#getMessage() message} is returned as-is.
*/
+@Hidden
public abstract class ExceptionRecognizerAbstract implements ExceptionRecognizer {
+ public static final Logger LOG = LoggerFactory.getLogger(ExceptionRecognizerAbstract.class);
+
+ /**
+ * Normally recognized exceptions are not logged (because they are expected and handled).
+ *
+ * <p>
+ * This key is primarily for diagnostic purposes, to log the exception regardless.
+ */
+ private static final String KEY_LOG_RECOGNIZED_EXCEPTIONS = "isis.services.exceprecog.logRecognizedExceptions";
+
/**
* Convenience for subclass implementations that always return a fixed message.
*/
@@ -52,5 +83,52 @@ public abstract class ExceptionRecognizerAbstract implements ExceptionRecognizer
}
};
}
+
+ // //////////////////////////////////////
+
+
+ private final Predicate<Throwable> predicate;
+ private final Function<String,String> messageParser;
+
+ private boolean logRecognizedExceptions;
+ // //////////////////////////////////////
+
+ public ExceptionRecognizerAbstract(Predicate<Throwable> predicate, final Function<String,String> messageParser) {
+ this.predicate = predicate;
+ this.messageParser = messageParser != null? messageParser: Functions.<String>identity();
+ }
+
+ public ExceptionRecognizerAbstract(Predicate<Throwable> predicate) {
+ this(predicate, null);
+ }
+
+
+ @PostConstruct
+ public void init(Map<String, String> properties) {
+ final String prop = properties.get(KEY_LOG_RECOGNIZED_EXCEPTIONS);
+ this.logRecognizedExceptions = Boolean.parseBoolean(prop);
+ }
+
+ @PreDestroy
+ public void shutdown() {
+ }
+
+ // //////////////////////////////////////
+
+ public String recognize(Throwable ex) {
+ List<Throwable> causalChain = Throwables.getCausalChain(ex);
+ for (Throwable throwable : causalChain) {
+ if(predicate.apply(throwable)) {
+ if(logRecognizedExceptions) {
+ LOG.info("Recognized exception, stacktrace : ", throwable);
+ }
+ final Throwable rootCause = Throwables.getRootCause(throwable);
+ final String rootCauseMessage = rootCause.getMessage();
+ final String parsedMessage = messageParser.apply(rootCauseMessage);
+ return parsedMessage;
+ }
+ }
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
index f075b00..af31fc9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
@@ -20,6 +20,10 @@ package org.apache.isis.applib.services.exceprecog;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
import com.google.common.collect.Lists;
@@ -62,7 +66,7 @@ public class ExceptionRecognizerComposite implements ExceptionRecognizer {
* before the more general ones. See the <i>JDO object store</i> applib for
* an example.
*/
- public void add(ExceptionRecognizer ers) {
+ public final void add(ExceptionRecognizer ers) {
services.add(ers);
}
@@ -70,7 +74,7 @@ public class ExceptionRecognizerComposite implements ExceptionRecognizer {
* Returns the non-<tt>null</tt> message of the first {@link #add(ExceptionRecognizer) add}ed
* {@link ExceptionRecognizer service} that recognizes the exception.
*/
- public String recognize(Throwable ex) {
+ public final String recognize(Throwable ex) {
for (ExceptionRecognizer ers : services) {
String message = ers.recognize(ex);
if(message != null) {
@@ -79,4 +83,21 @@ public class ExceptionRecognizerComposite implements ExceptionRecognizer {
}
return null;
}
+
+ @PostConstruct
+ @Override
+ public final void init(Map<String, String> properties) {
+ for (ExceptionRecognizer ers : services) {
+ ers.init(properties);
+ }
+ }
+
+ @PreDestroy
+ @Override
+ public final void shutdown() {
+ for (ExceptionRecognizer ers : services) {
+ ers.shutdown();
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerDelegating.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerDelegating.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerDelegating.java
deleted file mode 100644
index e13ae45..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerDelegating.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.applib.services.exceprecog;
-
-
-/**
- * Convenience implementation of {@link ExceptionRecognizer} that simply
- * delegates to an underlying implementation.
- */
-public abstract class ExceptionRecognizerDelegating extends ExceptionRecognizerAbstract {
-
- private final ExceptionRecognizer delegate;
-
- public ExceptionRecognizerDelegating(ExceptionRecognizer delegate) {
- this.delegate = delegate;
- }
-
- @Override
- public String recognize(Throwable ex) {
- return delegate.recognize(ex);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
index 4ed5a26..56908b0 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
@@ -38,7 +38,7 @@ import org.apache.isis.applib.annotation.Hidden;
* then the message can be altered. Otherwise the exception's {@link Throwable#getMessage() message} is returned as-is.
*/
@Hidden
-public class ExceptionRecognizerForType extends ExceptionRecognizerDelegating {
+public class ExceptionRecognizerForType extends ExceptionRecognizerAbstract {
protected final static Predicate<Throwable> ofTypeExcluding(final Class<? extends Throwable> exceptionType, final String... messages) {
return Predicates.and(ofType(exceptionType), excluding(messages));
@@ -114,10 +114,11 @@ public class ExceptionRecognizerForType extends ExceptionRecognizerDelegating {
}
public ExceptionRecognizerForType(final Predicate<Throwable> predicate, final Function<String,String> messageParser) {
- super(new ExceptionRecognizerGeneral(predicate, messageParser));
+ super(predicate, messageParser);
}
public ExceptionRecognizerForType(Class<? extends Exception> exceptionType) {
this(exceptionType, null);
}
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneral.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneral.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneral.java
deleted file mode 100644
index 79e50da..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneral.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.applib.services.exceprecog;
-
-import java.util.List;
-
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.base.Predicate;
-import com.google.common.base.Throwables;
-
-import org.apache.isis.applib.annotation.Hidden;
-
-/**
- * A general purpose implementation of {@link ExceptionRecognizer} that looks
- * exceptions meeting the {@link Predicate} supplied in the constructor
- * and, if found anywhere in the {@link Throwables#getCausalChain(Throwable) causal chain},
- * then returns a non-null message indicating that the exception has been recognized.
- *
- * <p>
- * If a messaging-parsing {@link Function} is provided through the constructor,
- * then the message can be altered. Otherwise the exception's {@link Throwable#getMessage() message} is returned as-is.
- */
-@Hidden
-public class ExceptionRecognizerGeneral extends ExceptionRecognizerAbstract {
-
- private final Predicate<Throwable> predicate;
- private final Function<String,String> messageParser;
-
- public ExceptionRecognizerGeneral(Predicate<Throwable> predicate, final Function<String,String> messageParser) {
- this.predicate = predicate;
- this.messageParser = messageParser != null? messageParser: Functions.<String>identity();
- }
-
- public ExceptionRecognizerGeneral(Predicate<Throwable> predicate) {
- this(predicate, null);
- }
-
- public String recognize(Throwable ex) {
- List<Throwable> causalChain = Throwables.getCausalChain(ex);
- for (Throwable throwable : causalChain) {
- if(predicate.apply(throwable)) {
- return messageParser.apply(throwable.getMessage());
- }
- }
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
----------------------------------------------------------------------
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
index dab5ff7..47a5341 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
@@ -23,6 +23,8 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
+import java.util.Map;
+
import org.junit.Before;
import org.junit.Test;
@@ -39,6 +41,13 @@ public class ExceptionRecognizerCompositeTest {
public String recognize(Throwable ex) {
return message;
}
+ @Override
+ public void init(Map<String, String> properties) {
+ }
+
+ @Override
+ public void shutdown() {
+ }
}
@Before
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java
----------------------------------------------------------------------
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java
index ff625e1..239e59c 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java
@@ -30,7 +30,7 @@ import org.junit.Test;
public class ExceptionRecognizerGeneralTest {
- private ExceptionRecognizerGeneral ersGeneral;
+ private ExceptionRecognizerAbstract ersGeneral;
static class FooException extends Exception {
private static final long serialVersionUID = 1L;
@@ -49,19 +49,19 @@ public class ExceptionRecognizerGeneralTest {
@Test
public void whenRecognized() {
- ersGeneral = new ExceptionRecognizerGeneral(Predicates.<Throwable>alwaysTrue());
+ ersGeneral = new ExceptionRecognizerAbstract(Predicates.<Throwable>alwaysTrue()){};
assertThat(ersGeneral.recognize(new FooException()), is("foo"));
}
@Test
public void whenDoesNotRecognize() {
- ersGeneral = new ExceptionRecognizerGeneral(Predicates.<Throwable>alwaysFalse());
+ ersGeneral = new ExceptionRecognizerAbstract(Predicates.<Throwable>alwaysFalse()){};
assertThat(ersGeneral.recognize(new FooException()), is(nullValue()));
}
@Test
public void whenRecognizedWithMessageParser() {
- ersGeneral = new ExceptionRecognizerGeneral(Predicates.<Throwable>alwaysTrue(), prepend);
+ ersGeneral = new ExceptionRecognizerAbstract(Predicates.<Throwable>alwaysTrue(), prepend){};
assertThat(ersGeneral.recognize(new FooException()), is("pre: foo"));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index 14ebbd6..855a764 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -21,6 +21,10 @@ package org.apache.isis.core.metamodel.services.container;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
import com.google.common.base.Predicate;
@@ -518,14 +522,25 @@ public class DomainObjectContainerDefault implements DomainObjectContainer, Que
*/
@Override
public String recognize(Throwable ex) {
- return getRecognizer().recognize(ex);
+ return recognizer.recognize(ex);
}
ExceptionRecognizer getRecognizer() {
return recognizer;
}
-
+ @PostConstruct
+ @Override
+ public void init(Map<String, String> properties) {
+ recognizer.init(properties);
+ }
+
+ @PreDestroy
+ @Override
+ public void shutdown() {
+ recognizer.shutdown();
+ }
+
// //////////////////////////////////////////////////////////////////
// Dependencies
// //////////////////////////////////////////////////////////////////
@@ -599,4 +614,6 @@ public class DomainObjectContainerDefault implements DomainObjectContainer, Que
}
+
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
index 3580607..b947bd2 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -197,3 +197,24 @@ isis.services = \
isis.fixtures=fixture.todo.ToDoItemsFixture
+#
+# whether ExceptionRecognizers should also log any recognized exceptions
+# (default false; enable for diagnostics/debugging)
+#
+#isis.services.exceprecog.logRecognizedExceptions=true
+
+
+
+
+################################################################################
+#
+# Viewer defaults
+#
+#################################################################################
+
+#
+# Specify viewer defaults
+#
+#isis.viewers.paged.standalone=30
+#isis.viewers.paged.parented=10
+
http://git-wip-us.apache.org/repos/asf/isis/blob/e0dd1c86/example/application/simple_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/simple_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
index c32d07f..cb633bf 100644
--- a/example/application/simple_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/simple_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -193,3 +193,24 @@ isis.services = \
isis.fixtures=fixture.simple.SimpleObjectsFixture
+#
+# whether ExceptionRecognizers should also log any recognized exceptions
+# (default false; enable for diagnostics/debugging)
+#
+#isis.services.exceprecog.logRecognizedExceptions=true
+
+
+
+
+################################################################################
+#
+# Viewer defaults
+#
+#################################################################################
+
+#
+# Specify viewer defaults
+#
+#isis.viewers.paged.standalone=30
+#isis.viewers.paged.parented=10
+