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/02/15 10:24:43 UTC

[1/3] git commit: ISIS-335, ISIS-342: length to abbreviate title to now configurable

ISIS-335, ISIS-342: length to abbreviate title to now configurable

* using "isis.viewer.wicket.maxTitleLengthInTables" config property
* this can go in isis.properties, or (as of ISIS-342 fix) can live in "viewer_wicket.properties",
  (assuming have added appropriate "isis.viewers" context param in web.xml)


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

Branch: refs/heads/master
Commit: d1b1d0c9fae88733c5a695d75cd2f908bc8e6920
Parents: 2bbc2a8
Author: Dan Haywood <da...@apache.org>
Authored: Fri Feb 15 08:58:06 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Fri Feb 15 08:58:06 2013 +0000

----------------------------------------------------------------------
 .../wicket/viewer/IsisWicketApplication.java       |   19 ++-
 .../viewer/wicket/viewer/IsisWicketModule.java     |    9 +-
 .../viewer/IsisWicketUnsecuredApplication.java     |    2 +-
 .../viewer/imagecache/ImageCacheClassPath.java     |  130 ---------------
 .../imagecache/ImageResourceCacheClassPath.java    |  130 +++++++++++++++
 .../settings/WicketViewerSettingsDefault.java      |   38 +++++
 .../wicket/model/isis/ImageResourceCache.java      |   33 ++++
 .../wicket/model/isis/WicketViewerSettings.java    |   26 +++
 .../wicket/model/models/ImageResourceCache.java    |   33 ----
 .../ui/components/actionlink/ActionLinkPanel.java  |    2 +-
 .../bookmarkedpages/BookmarkedPagesPanel.java      |    2 +-
 .../entity/header/EntityHeaderPanel.java           |    2 +-
 .../entity/icontitle/EntityIconAndTitlePanel.java  |   21 ++-
 .../EntityIconAndTitlePanelTest_abbreviated.java   |   34 ++++
 .../isis/core/webapp/IsisWebAppBootstrapper.java   |   17 +--
 .../core/webapp/IsisWebAppBootstrapperUtil.java    |   52 ++++++
 .../main/webapp/WEB-INF/viewer_wicket.properties   |   29 ++++
 .../viewer-webapp/src/main/webapp/WEB-INF/web.xml  |   11 +-
 18 files changed, 392 insertions(+), 198 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index e1cebfe..086b878 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -47,9 +47,11 @@ import org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
+import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilderPrimer;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilderResourceStreams;
+import org.apache.isis.core.commons.config.NotFoundPolicy;
 import org.apache.isis.core.commons.resource.ResourceStreamSource;
 import org.apache.isis.core.commons.resource.ResourceStreamSourceComposite;
 import org.apache.isis.core.commons.resource.ResourceStreamSourceContextLoaderClassPath;
@@ -60,11 +62,13 @@ import org.apache.isis.core.runtime.runner.IsisInjectModule;
 import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.core.webapp.IsisWebAppBootstrapperUtil;
 import org.apache.isis.core.webapp.WebAppConstants;
 import org.apache.isis.core.webapp.config.ResourceStreamSourceForWebInf;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.BookmarkedPagesModel;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
@@ -149,6 +153,12 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
      * {@link Inject}ed when {@link #init() initialized}.
      */
     @Inject
+    private WicketViewerSettings wicketViewerSettings;
+
+    /**
+     * {@link Inject}ed when {@link #init() initialized}.
+     */
+    @Inject
     private PageClassRegistry pageClassRegistry;
 
 
@@ -177,11 +187,8 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
     protected void init() {
         super.init();
 
-        final RenderStrategy renderStrategy = RenderStrategy.REDIRECT_TO_RENDER;
-
-        getRequestCycleSettings().setRenderStrategy(renderStrategy);
+        getRequestCycleSettings().setRenderStrategy(RenderStrategy.REDIRECT_TO_RENDER);
 
-        // 6.0.0 instead of subclassing newRequestCycle
         getRequestCycleListeners().add(new WebRequestCycleForIsis());
 
         getResourceSettings().setParentFolderPlaceholder("$up$");
@@ -237,6 +244,8 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
         
         primeConfigurationBuilder(configurationBuilder, servletContext);
         configurationBuilder.addDefaultConfigurationResources();
+        
+        IsisWebAppBootstrapperUtil.addConfigurationResourcesForViewers(configurationBuilder, servletContext);
         return configurationBuilder;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
index 2e74e82..cb3c1e5 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
@@ -23,16 +23,18 @@ import com.google.inject.AbstractModule;
 import com.google.inject.name.Names;
 import com.google.inject.util.Providers;
 
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
-import org.apache.isis.viewer.wicket.viewer.imagecache.ImageCacheClassPath;
+import org.apache.isis.viewer.wicket.viewer.imagecache.ImageResourceCacheClassPath;
 import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistrarDefault;
 import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault;
 import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
 import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault;
+import org.apache.isis.viewer.wicket.viewer.settings.WicketViewerSettingsDefault;
 
 /**
  * To override
@@ -63,7 +65,8 @@ public class IsisWicketModule extends AbstractModule {
         bind(PageClassRegistry.class).to(PageClassRegistryDefault.class);
         bind(PageClassList.class).to(PageClassListDefault.class);
         bind(ComponentFactoryRegistrar.class).to(ComponentFactoryRegistrarDefault.class);
-        bind(ImageResourceCache.class).to(ImageCacheClassPath.class);
+        bind(ImageResourceCache.class).to(ImageResourceCacheClassPath.class);
+        bind(WicketViewerSettings.class).to(WicketViewerSettingsDefault.class);
         
         bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("Apache Isis Wicket Viewer");
         bind(String.class).annotatedWith(Names.named("applicationCss")).toProvider(Providers.of((String)null));

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
index b4c1eb2..6685be3 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
@@ -59,8 +59,8 @@ import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.webapp.WebAppConstants;
 import org.apache.isis.core.webapp.config.ResourceStreamSourceForWebInf;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageCacheClassPath.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageCacheClassPath.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageCacheClassPath.java
deleted file mode 100644
index ecb7f53..0000000
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageCacheClassPath.java
+++ /dev/null
@@ -1,130 +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.viewer.wicket.viewer.imagecache;
-
-import images.Images;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
-import org.apache.wicket.request.resource.PackageResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
-
-import com.google.common.collect.Maps;
-import com.google.inject.Singleton;
-
-/**
- * Caches images loaded up the <tt>images</tt> package (using the {@link Images}
- * class).
- * 
- * <p>
- * Searches for a fixed set of suffixes: {@value #IMAGE_SUFFICES}.
- */
-@Singleton
-public class ImageCacheClassPath implements ImageResourceCache {
-
-    private static final List<String> IMAGE_SUFFICES = Arrays.asList("png", "gif", "jpeg", "jpg");
-    private static final String FALLBACK_IMAGE = "Default.png";
-    
-    private final Map<ObjectSpecification, ResourceReference> resourceReferenceBySpec = Maps.newHashMap();
-    private PackageResourceReference fallbackResourceReference;
-
-
-    @Override
-    public ResourceReference resourceReferenceFor(ObjectAdapter adapter) {
-        return resourceReferenceForSpec(adapter.getSpecification());
-    }
-
-    @Override
-    public ResourceReference resourceReferenceForSpec(final ObjectSpecification spec) {
-        if(spec == null) {
-            return fallbackResourceReference(); 
-        }
-        ResourceReference resourceReference = resourceReferenceBySpec.get(spec);
-        if(resourceReference != null) {
-            return resourceReference;
-        }
-        
-        resourceReference = lookupResourceReferenceFor(spec);
-        
-        resourceReferenceBySpec.put(spec, resourceReference);
-        return resourceReference;
-    }
-
-    private ResourceReference lookupResourceReferenceFor(final ObjectSpecification spec) {
-        final Class<?> correspondingClass = spec.getCorrespondingClass();
-        final String specName = correspondingClass.getSimpleName();
-        
-        final ResourceReference resourceReference = resourceReferenceFor(specName);
-        if(resourceReference != null) {
-            return resourceReference;
-        }
-        
-        // search up hierarchy
-        final ObjectSpecification superSpec = spec.superclass();
-        if(superSpec != null) {
-            return resourceReferenceForSpec(superSpec);
-        } 
-
-        return fallbackResourceReference();
-    }
-
-    
-    private ResourceReference fallbackResourceReference() {
-        if(fallbackResourceReference == null) {
-            fallbackResourceReference = newPackageResourceReference(FALLBACK_IMAGE);
-        }
-        return fallbackResourceReference;
-    }
-
-    private static ResourceReference resourceReferenceFor(final String specName) {
-        for(String imageSuffix: IMAGE_SUFFICES) {
-            final String imageName = specName + "." + imageSuffix;
-
-            InputStream resourceAsStream = null;
-            resourceAsStream = Images.class.getResourceAsStream(imageName);
-            if(resourceAsStream == null) {
-                continue;
-            } else {
-                closeSafely(resourceAsStream);
-            }
-            return newPackageResourceReference(imageName);
-        }
-        return null;
-    }
-
-    private static PackageResourceReference newPackageResourceReference(final String imageFile) {
-        return new PackageResourceReference(Images.class, imageFile);
-    }
-
-    private static void closeSafely(InputStream resourceAsStream) {
-        try {
-            resourceAsStream.close();
-        } catch (IOException e) {
-            // ignore
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java
new file mode 100644
index 0000000..42d2293
--- /dev/null
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java
@@ -0,0 +1,130 @@
+/*
+ *  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.viewer.wicket.viewer.imagecache;
+
+import images.Images;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
+import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Singleton;
+
+/**
+ * Caches images loaded up the <tt>images</tt> package (using the {@link Images}
+ * class).
+ * 
+ * <p>
+ * Searches for a fixed set of suffixes: {@value #IMAGE_SUFFICES}.
+ */
+@Singleton
+public class ImageResourceCacheClassPath implements ImageResourceCache {
+
+    private static final List<String> IMAGE_SUFFICES = Arrays.asList("png", "gif", "jpeg", "jpg");
+    private static final String FALLBACK_IMAGE = "Default.png";
+    
+    private final Map<ObjectSpecification, ResourceReference> resourceReferenceBySpec = Maps.newHashMap();
+    private PackageResourceReference fallbackResourceReference;
+
+
+    @Override
+    public ResourceReference resourceReferenceFor(ObjectAdapter adapter) {
+        return resourceReferenceForSpec(adapter.getSpecification());
+    }
+
+    @Override
+    public ResourceReference resourceReferenceForSpec(final ObjectSpecification spec) {
+        if(spec == null) {
+            return fallbackResourceReference(); 
+        }
+        ResourceReference resourceReference = resourceReferenceBySpec.get(spec);
+        if(resourceReference != null) {
+            return resourceReference;
+        }
+        
+        resourceReference = lookupResourceReferenceFor(spec);
+        
+        resourceReferenceBySpec.put(spec, resourceReference);
+        return resourceReference;
+    }
+
+    private ResourceReference lookupResourceReferenceFor(final ObjectSpecification spec) {
+        final Class<?> correspondingClass = spec.getCorrespondingClass();
+        final String specName = correspondingClass.getSimpleName();
+        
+        final ResourceReference resourceReference = resourceReferenceFor(specName);
+        if(resourceReference != null) {
+            return resourceReference;
+        }
+        
+        // search up hierarchy
+        final ObjectSpecification superSpec = spec.superclass();
+        if(superSpec != null) {
+            return resourceReferenceForSpec(superSpec);
+        } 
+
+        return fallbackResourceReference();
+    }
+
+    
+    private ResourceReference fallbackResourceReference() {
+        if(fallbackResourceReference == null) {
+            fallbackResourceReference = newPackageResourceReference(FALLBACK_IMAGE);
+        }
+        return fallbackResourceReference;
+    }
+
+    private static ResourceReference resourceReferenceFor(final String specName) {
+        for(String imageSuffix: IMAGE_SUFFICES) {
+            final String imageName = specName + "." + imageSuffix;
+
+            InputStream resourceAsStream = null;
+            resourceAsStream = Images.class.getResourceAsStream(imageName);
+            if(resourceAsStream == null) {
+                continue;
+            } else {
+                closeSafely(resourceAsStream);
+            }
+            return newPackageResourceReference(imageName);
+        }
+        return null;
+    }
+
+    private static PackageResourceReference newPackageResourceReference(final String imageFile) {
+        return new PackageResourceReference(Images.class, imageFile);
+    }
+
+    private static void closeSafely(InputStream resourceAsStream) {
+        try {
+            resourceAsStream.close();
+        } catch (IOException e) {
+            // ignore
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
new file mode 100644
index 0000000..5e06b2f
--- /dev/null
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
@@ -0,0 +1,38 @@
+/*
+ *  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.viewer.wicket.viewer.settings;
+
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
+
+import com.google.inject.Singleton;
+
+@Singleton
+public class WicketViewerSettingsDefault implements WicketViewerSettings {
+
+    public int getMaxTitleLengthInTables() {
+        return getConfiguration().getInteger("isis.viewer.wicket.maxTitleLengthInTables", 12);
+    }
+
+    IsisConfiguration getConfiguration() {
+        return IsisContext.getConfiguration();
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/ImageResourceCache.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/ImageResourceCache.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/ImageResourceCache.java
new file mode 100644
index 0000000..4167013
--- /dev/null
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/ImageResourceCache.java
@@ -0,0 +1,33 @@
+/*
+ *  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.viewer.wicket.model.isis;
+
+import org.apache.wicket.request.resource.ResourceReference;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+
+public interface ImageResourceCache {
+
+    ResourceReference resourceReferenceFor(ObjectAdapter adapter);
+    
+    ResourceReference resourceReferenceForSpec(ObjectSpecification objectSpecification);
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
new file mode 100644
index 0000000..8855a02
--- /dev/null
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
@@ -0,0 +1,26 @@
+/*
+ *  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.viewer.wicket.model.isis;
+
+
+public interface WicketViewerSettings {
+
+    public int getMaxTitleLengthInTables();
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java
deleted file mode 100644
index b12bcf4..0000000
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java
+++ /dev/null
@@ -1,33 +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.viewer.wicket.model.models;
-
-import org.apache.wicket.request.resource.ResourceReference;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-public interface ImageResourceCache {
-
-    ResourceReference resourceReferenceFor(ObjectAdapter adapter);
-    
-    ResourceReference resourceReferenceForSpec(ObjectSpecification objectSpecification);
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java
index 7d9aa81..dd1d7fa 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java
@@ -36,9 +36,9 @@ import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.components.entity.EntityActionLinkFactory;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
index 5eb7a69..fe364a0 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
@@ -38,9 +38,9 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
 import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
 import org.apache.isis.viewer.wicket.model.models.BookmarkedPagesModel;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
index f437c0a..bdfdcec 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
@@ -40,10 +40,10 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.util.ObjectAssociations;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.ComponentType;

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index 29fad02..237f341 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -20,8 +20,9 @@
 package org.apache.isis.viewer.wicket.ui.components.entity.icontitle;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.viewer.wicket.model.isis.ImageResourceCache;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.components.entity.EntityActionLinkFactory;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
@@ -52,7 +53,6 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
     private static final String ID_ENTITY_TITLE = "entityTitle";
     private static final String ID_ENTITY_ICON = "entityImage";
 
-    private static final int TITLE_MAX_LEN_IF_ULTRA_COMPACT = 12;
 
     private Label label;
     private Image image;
@@ -115,8 +115,7 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
          if (adapter != null) {
             String titleString = adapter.titleString();
             if(model.getRenderingHint().isUltraCompact()) {
-                //return "";
-                return abbreviated(titleString, TITLE_MAX_LEN_IF_ULTRA_COMPACT);
+                return abbreviated(titleString, getSettings().getMaxTitleLengthInTables());
             }
             return titleString;
         } else {
@@ -124,8 +123,12 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
         }
     }
     
-    private static String abbreviated(final String str, final int maxLength) {
-        return str.length() < maxLength ? str : str.substring(0, maxLength - 3) + "...";
+    static String abbreviated(final String str, final int maxLength) {
+        int length = str.length();
+        if (length <= maxLength) {
+            return str;
+        }
+        return maxLength <= 3 ? "" : str.substring(0, maxLength - 3) + "...";
     }
 
 
@@ -154,5 +157,11 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
     protected ImageResourceCache getImageCache() {
         return imageCache;
     }
+    
+    @Inject
+    private WicketViewerSettings settings;
+    protected WicketViewerSettings getSettings() {
+        return settings;
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelTest_abbreviated.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelTest_abbreviated.java b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelTest_abbreviated.java
new file mode 100644
index 0000000..8fc27eb
--- /dev/null
+++ b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelTest_abbreviated.java
@@ -0,0 +1,34 @@
+package org.apache.isis.viewer.wicket.ui.components.entity.icontitle;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.assertThat;
+
+import org.junit.Test;
+
+public class EntityIconAndTitlePanelTest_abbreviated {
+
+    @Test
+    public void notTruncated() throws Exception {
+        assertThat(EntityIconAndTitlePanel.abbreviated("abcdef", 6), is("abcdef"));
+    }
+
+    @Test
+    public void truncated() throws Exception {
+        assertThat(EntityIconAndTitlePanel.abbreviated("abcdefg", 6), is("abc..."));
+    }
+
+    @Test
+    public void notTruncatedAtEllipsesLimit() throws Exception {
+        assertThat(EntityIconAndTitlePanel.abbreviated("abc", 3), is("abc"));
+        assertThat(EntityIconAndTitlePanel.abbreviated("ab", 2), is("ab"));
+        assertThat(EntityIconAndTitlePanel.abbreviated("a", 1), is("a"));
+    }
+
+    @Test
+    public void truncatedAtEllipsesLimit() throws Exception {
+        assertThat(EntityIconAndTitlePanel.abbreviated("abcd", 3), is(""));
+        assertThat(EntityIconAndTitlePanel.abbreviated("abc", 2), is(""));
+        assertThat(EntityIconAndTitlePanel.abbreviated("ab", 1), is(""));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/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 b24cfea..7e0f065 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
@@ -105,7 +105,7 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
 
             addConfigurationResourcesForWebApps(isisConfigurationBuilder);
             addConfigurationResourcesForDeploymentType(isisConfigurationBuilder, deploymentType);
-            addConfigurationResourcesForViewers(isisConfigurationBuilder, servletContext);
+            IsisWebAppBootstrapperUtil.addConfigurationResourcesForViewers(isisConfigurationBuilder, servletContext);
 
             isisConfigurationBuilder.add(WebAppConstants.WEB_APP_DIR, webappDir);
             isisConfigurationBuilder.add(SystemConstants.NOSPLASH_KEY, "true");
@@ -184,21 +184,6 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
         }
     }
 
-    private void addConfigurationResourcesForViewers(final IsisConfigurationBuilder configurationLoader, final ServletContext servletContext) {
-        addConfigurationResourcesForContextParam(configurationLoader, servletContext, "isis.viewers");
-        addConfigurationResourcesForContextParam(configurationLoader, servletContext, "isis.viewer");
-    }
-
-    private void addConfigurationResourcesForContextParam(final IsisConfigurationBuilder configurationLoader, final ServletContext servletContext, final String name) {
-        final String viewers = servletContext.getInitParameter(name);
-        if (viewers == null) {
-            return;
-        }
-        for (final String viewer : viewers.split(",")) {
-            configurationLoader.addConfigurationResource("viewer_" + viewer + ".properties", NotFoundPolicy.CONTINUE);
-        }
-    }
-
     // /////////////////////////////////////////////////////
     // Destroy
     // /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java
new file mode 100644
index 0000000..d859b56
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapperUtil.java
@@ -0,0 +1,52 @@
+/*
+ *  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.webapp;
+
+import javax.servlet.ServletContext;
+
+import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
+import org.apache.isis.core.commons.config.NotFoundPolicy;
+
+
+/**
+ * Factored out of {@link IsisWebAppBootstrapper} in order that can
+ * be reused by other bootstrappers (eg the wicket viewer's
+ * <tt>IsisWicketApplication</tt>).
+ */
+public final class IsisWebAppBootstrapperUtil {
+    
+    private IsisWebAppBootstrapperUtil(){}
+
+    public static void addConfigurationResourcesForViewers(final IsisConfigurationBuilder configurationLoader, final ServletContext servletContext) {
+        addConfigurationResourcesForContextParam(configurationLoader, servletContext, "isis.viewers");
+        addConfigurationResourcesForContextParam(configurationLoader, servletContext, "isis.viewer");
+    }
+
+    private static void addConfigurationResourcesForContextParam(final IsisConfigurationBuilder configurationLoader, final ServletContext servletContext, final String name) {
+        final String viewers = servletContext.getInitParameter(name);
+        if (viewers == null) {
+            return;
+        }
+        for (final String viewer : viewers.split(",")) {
+            configurationLoader.addConfigurationResource("viewer_" + viewer + ".properties", NotFoundPolicy.CONTINUE);
+        }
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
new file mode 100644
index 0000000..9deff07
--- /dev/null
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -0,0 +1,29 @@
+#  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.
+
+#
+# configuration file for the Wicket viewer
+#
+
+#
+# The maximum length of titles to display in standalone or parented tables.
+# Titles longer than this length will be truncated with trailing ellipses (...)
+#
+# For example, if set to 12, the title
+# "Buy milk on 15-Feb-13" will be truncated to "Buy milk ..."
+#
+isis.viewer.wicket.maxTitleLengthInTables=3

http://git-wip-us.apache.org/repos/asf/isis/blob/d1b1d0c9/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
index e8d2287..13e575e 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
@@ -27,7 +27,6 @@
         <welcome-file>about/index.html</welcome-file>
     </welcome-file-list>
 
-
     <!-- shiro security configuration -->
     <listener>
         <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
@@ -68,6 +67,16 @@
     -->
 
 
+    <!--
+    determines which additional configuration files to search for 
+     -->
+    <context-param>
+        <param-name>isis.viewers</param-name>
+        <param-value>wicket,restfulobjects</param-value>
+    </context-param>
+
+
+
 
     <!-- cache static resources for 1 day -->
     <filter>