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/03/28 11:35:38 UTC

[14/20] ISIS-381: mothballing HTML viewer, SQL security, LDAP security

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/Task.java
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/Task.java b/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/Task.java
deleted file mode 100644
index 208316e..0000000
--- a/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/Task.java
+++ /dev/null
@@ -1,394 +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.html.task;
-
-import org.apache.isis.applib.profiles.Localization;
-import org.apache.isis.core.commons.debug.DebugBuilder;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.object.bounded.BoundedFacetUtils;
-import org.apache.isis.core.metamodel.facets.object.parseable.InvalidEntryException;
-import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
-import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.progmodel.facets.value.password.PasswordValueFacet;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.html.component.Page;
-import org.apache.isis.viewer.html.context.Context;
-import org.apache.isis.viewer.html.request.Request;
-
-/**
- * Represents a task that the user is working through. Is used for both editing
- * objects and setting up parameters for an action method.
- */
-public abstract class Task {
-
-    private static int nextID = 1;
-    private int[] boundaries;
-    private final String description;
-    protected final String[] errors;
-    protected String error;
-    private final String[] entryText;
-    protected final ObjectAdapter[] initialState;
-    private final String name;
-    protected final String[] names;
-    protected final String[] descriptions;
-    protected final boolean[] optional;
-    protected final boolean[] readOnly;
-    protected final int numberOfEntries;
-    private int step;
-    private final String targetId;
-    protected final ObjectSpecification[] fieldSpecifications;
-    protected final int[] noLines;
-    protected final boolean[] wraps;
-    protected final int[] maxLength;
-    protected final int[] typicalLength;
-    protected final int id = nextID++;
-
-    public Task(final Context context, final String name, final String description, final ObjectAdapter target, final int noFields) {
-        this.name = name;
-        this.description = description;
-        targetId = context.mapObject(target);
-
-        initialState = new ObjectAdapter[noFields];
-        names = new String[noFields];
-        descriptions = new String[noFields];
-        optional = new boolean[noFields];
-        readOnly = new boolean[noFields];
-        fieldSpecifications = new ObjectSpecification[noFields];
-
-        numberOfEntries = noFields;
-        entryText = new String[noFields];
-        errors = new String[noFields];
-
-        noLines = new int[noFields];
-        wraps = new boolean[noFields];
-        maxLength = new int[noFields];
-        typicalLength = new int[noFields];
-    }
-
-    public void init(final Context context) {
-        for (int i = 0; i < entryText.length; i++) {
-            final ObjectAdapter obj = initialState[i];
-            if (obj == null) {
-                entryText[i] = "";
-            } else if (obj.getSpecification().getFacet(PasswordValueFacet.class) != null) {
-                final PasswordValueFacet facet = obj.getSpecification().getFacet(PasswordValueFacet.class);
-                entryText[i] = facet.getEditText(obj);
-            } else if (obj.getSpecification().isParseable()) {
-                entryText[i] = obj.titleString();
-            } else if (obj.getSpecification().isNotCollection()) {
-                if (readOnly[i]) {
-                    entryText[i] = (obj).titleString();
-                } else {
-                    entryText[i] = context.mapObject(obj);
-                }
-            } else if (obj.getSpecification().isParentedOrFreeCollection()) {
-                entryText[i] = (obj).titleString();
-            }
-        }
-
-        divyUpWork();
-    }
-
-    public abstract ObjectAdapter completeTask(Context context, Page page);
-
-    private void copyForThisStep(final Object[] source, final Object[] destination) {
-        for (int i = 0; i < noOfEntriesInThisStep(); i++) {
-            destination[i] = source[firstEntryInThisStep() + i];
-        }
-    }
-
-    private void copyForThisStep(final boolean[] source, final boolean[] destination) {
-        for (int i = 0; i < noOfEntriesInThisStep(); i++) {
-            destination[i] = source[firstEntryInThisStep() + i];
-        }
-    }
-
-    private void copyForThisStep(final int[] source, final int[] destination) {
-        for (int i = 0; i < noOfEntriesInThisStep(); i++) {
-            destination[i] = source[firstEntryInThisStep() + i];
-        }
-    }
-
-    public void checkInstances(final Context context, final ObjectAdapter[] objects) {
-    }
-
-    public void debug(final DebugBuilder debug) {
-        debug.indent();
-        debug.appendln("name", name);
-        debug.appendln("number of steps ", numberOfSteps());
-        debug.appendln("current step", step);
-        debug.appendln("target", targetId);
-        debug.appendln("steps (" + (boundaries.length - 1) + ")");
-        debug.indent();
-        for (int i = 0; i < boundaries.length - 1; i++) {
-            debug.appendln("    " + (i + 1) + ". " + boundaries[i] + " - " + (boundaries[i + 1] - 1));
-        }
-        debug.unindent();
-        debug.appendln("fields (" + names.length + ")");
-        debug.indent();
-        for (int i = 0; i < names.length; i++) {
-            final String status = (readOnly[i] ? "R" : "-") + (optional[i] ? "O" : "M") + (errors[i] == null ? "-" : "E");
-            debug.appendln("    " + i + "  " + names[i] + " (" + status + "):  " + fieldSpecifications[i].getFullIdentifier() + " -> " + entryText[i]);
-        }
-        debug.unindent();
-        debug.unindent();
-    }
-
-    private void divyUpWork() {
-        if (numberOfEntries == 0) {
-            boundaries = new int[2];
-        } else {
-            final int[] b = new int[numberOfEntries + 2];
-            int count = 0;
-            b[count++] = 0;
-
-            ObjectSpecification type = fieldSpecifications[0];
-            boolean direct = simpleField(type, 0);
-
-            for (int i = 1; i < numberOfEntries; i++) {
-                type = fieldSpecifications[i];
-                if (true || direct && (simpleField(type, i))) {
-                    continue;
-                }
-                b[count++] = i;
-                direct = simpleField(type, i);
-            }
-            b[count++] = numberOfEntries;
-            boundaries = new int[count];
-            System.arraycopy(b, 0, boundaries, 0, count);
-        }
-    }
-
-    protected boolean simpleField(final ObjectSpecification specification, final int i) {
-        return readOnly[i] || (specification.isNotCollection() && BoundedFacetUtils.isBoundedSet(specification));
-    }
-
-    private int firstEntryInThisStep() {
-        return boundaries[step];
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public String getError() {
-        return error;
-    }
-
-    /**
-     * Returns an array of errors, one for each element in the task.
-     */
-    public String[] getErrors() {
-        final String[] array = new String[noOfEntriesInThisStep()];
-        copyForThisStep(errors, array);
-        return array;
-    }
-
-    public String[] getFieldDescriptions() {
-        final String[] array = new String[noOfEntriesInThisStep()];
-        copyForThisStep(descriptions, array);
-        return array;
-    }
-
-    public String[] getEntryText() {
-        final String[] array = new String[noOfEntriesInThisStep()];
-        copyForThisStep(entryText, array);
-        return array;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String[] getNames() {
-        final String[] array = new String[noOfEntriesInThisStep()];
-        copyForThisStep(names, array);
-        return array;
-    }
-
-    public ObjectAdapter[][] getOptions(final Context context) {
-        return getOptions(context, firstEntryInThisStep(), noOfEntriesInThisStep());
-    }
-
-    protected ObjectAdapter[][] getOptions(final Context context, final int from, final int len) {
-        return new ObjectAdapter[len][];
-    }
-
-    protected ObjectAdapter[] getEntries(final Context context) {
-        final ObjectAdapter[] entries = new ObjectAdapter[entryText.length];
-        for (int i = 0; i < entries.length; i++) {
-            if (entryText == null || readOnly[i]) {
-                continue;
-            }
-            final ObjectSpecification fieldSpecification = fieldSpecifications[i];
-            if (fieldSpecification.isParseable()) {
-                final ParseableFacet parser = fieldSpecification.getFacet(ParseableFacet.class);
-                try {
-                    Localization localization = IsisContext.getLocalization(); 
-                    entries[i] = parser.parseTextEntry(initialState[i], entryText[i], localization);
-                } catch (final InvalidEntryException e) {
-                    errors[i] = e.getMessage();
-                } catch (final TextEntryParseException e) {
-                    errors[i] = e.getMessage();
-                }
-            } else if (fieldSpecification.isNotCollection() && entryText[i] != null) {
-                if (entryText[i].equals("null")) {
-                    entries[i] = null;
-                } else {
-                    entries[i] = context.getMappedObject(entryText[i]);
-                }
-            }
-        }
-        return entries;
-    }
-
-    public String getId() {
-        return "" + id;
-    }
-
-    public boolean[] getOptional() {
-        final boolean[] array = new boolean[noOfEntriesInThisStep()];
-        copyForThisStep(optional, array);
-        return array;
-    }
-
-    public int[] getNoLines() {
-        final int[] array = new int[noOfEntriesInThisStep()];
-        copyForThisStep(noLines, array);
-        return array;
-    }
-
-    public boolean[] getWraps() {
-        final boolean[] array = new boolean[noOfEntriesInThisStep()];
-        copyForThisStep(wraps, array);
-        return array;
-    }
-
-    public int[] getMaxLength() {
-        final int[] array = new int[noOfEntriesInThisStep()];
-        copyForThisStep(maxLength, array);
-        return array;
-    }
-
-    public int[] getTypicalLength() {
-        final int[] array = new int[noOfEntriesInThisStep()];
-        copyForThisStep(typicalLength, array);
-        return array;
-    }
-
-    public boolean[] getReadOnly() {
-        final boolean[] array = new boolean[noOfEntriesInThisStep()];
-        copyForThisStep(readOnly, array);
-        return array;
-    }
-
-    public int getStep() {
-        return step;
-    }
-
-    public ObjectAdapter getTarget(final Context context) {
-        return context.getMappedObject(targetId);
-    }
-
-    public String[] getTrail() {
-        final String[] trail = new String[boundaries.length - 1];
-        for (int i = 0; i < trail.length; i++) {
-            trail[i] = "step " + i;
-        }
-        return trail;
-    }
-
-    public ObjectSpecification[] getTypes() {
-        final ObjectSpecification[] array = new ObjectSpecification[noOfEntriesInThisStep()];
-        copyForThisStep(fieldSpecifications, array);
-        return array;
-    }
-
-    public boolean isEditing() {
-        return false;
-    }
-
-    public void nextStep() {
-        step++;
-    }
-
-    private int noOfEntriesInThisStep() {
-        return boundaries[step + 1] - boundaries[step];
-    }
-
-    public int numberOfSteps() {
-        return boundaries.length - 1;
-    }
-
-    public void previousStep() {
-        step--;
-    }
-
-    public void setFromFields(final Request request, final Context context) {
-        int fldNo = 0;
-        for (int i = boundaries[step]; i < boundaries[step + 1]; i++) {
-            String textEntry = request.getFieldEntry(fldNo++);
-            if (readOnly[i]) {
-                continue;
-            }
-            final ObjectSpecification spec = fieldSpecifications[i];
-            // deal with check boxes specially: expect 'true' if checked and no
-            // entry if not checked, hence
-            // need to set as 'false'
-            if (spec.isOfType(IsisContext.getSpecificationLoader().loadSpecification(boolean.class)) || spec.isOfType(IsisContext.getSpecificationLoader().loadSpecification(Boolean.class))) {
-                if (textEntry == null || !textEntry.equals("true")) {
-                    textEntry = "false";
-                }
-            }
-            entryText[i] = textEntry;
-            try {
-                errors[i] = null;
-                setFromField(context, i, spec, textEntry);
-                if (!optional[i] && (textEntry == null || textEntry.equals(""))) {
-                    errors[i] = "Field required";
-                }
-            } catch (final InvalidEntryException e) {
-                errors[i] = e.getMessage();
-            } catch (final TextEntryParseException e) {
-                errors[i] = e.getMessage();
-            }
-        }
-    }
-
-    private void setFromField(final Context context, final int i, final ObjectSpecification spec, final String textEntry) {
-        if (spec.isParseable()) {
-            if (textEntry == null) {
-                return;
-            }
-            // REVIEW this block uses the existing adapter as it contains the
-            // regex needed. This needs to
-            // be reviewed in line with Dan's proposed changes to the reflector.
-            final ObjectAdapter valueAdapter = initialState[i];
-            final ParseableFacet parser = spec.getFacet(ParseableFacet.class);
-            Localization localization = IsisContext.getLocalization(); 
-            parser.parseTextEntry(valueAdapter, textEntry, localization);
-            // REVIEW what do we do when an exception is thrown - a parse fails?
-        }
-    }
-
-    public abstract void checkForValidity(Context context);
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskLookupException.java
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskLookupException.java b/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskLookupException.java
deleted file mode 100644
index 206bf7d..0000000
--- a/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskLookupException.java
+++ /dev/null
@@ -1,42 +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.html.task;
-
-import org.apache.isis.viewer.html.action.ActionException;
-
-public class TaskLookupException extends ActionException {
-    private static final long serialVersionUID = 1L;
-
-    public TaskLookupException() {
-    }
-
-    public TaskLookupException(final String msg, final Throwable cause) {
-        super(msg, cause);
-    }
-
-    public TaskLookupException(final String msg) {
-        super(msg);
-    }
-
-    public TaskLookupException(final Throwable cause) {
-        super(cause);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskStep.java
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskStep.java b/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskStep.java
deleted file mode 100644
index 230eace..0000000
--- a/component/viewer/html/impl/src/main/java/org/apache/isis/viewer/html/task/TaskStep.java
+++ /dev/null
@@ -1,238 +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.html.task;
-
-import org.apache.isis.core.commons.exceptions.IsisException;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.progmodel.facets.value.booleans.BooleanValueFacet;
-import org.apache.isis.viewer.html.action.Action;
-import org.apache.isis.viewer.html.action.ActionException;
-import org.apache.isis.viewer.html.component.Component;
-import org.apache.isis.viewer.html.component.Form;
-import org.apache.isis.viewer.html.component.Page;
-import org.apache.isis.viewer.html.component.ViewPane;
-import org.apache.isis.viewer.html.context.Context;
-import org.apache.isis.viewer.html.request.Request;
-
-public final class TaskStep implements Action {
-    private void addSelector(final Context context, final Form form, final String currentEntry, final String fieldId, final String fieldLabel, final String fieldDescription, final boolean required, final String errorMessage, final Task task, final ObjectAdapter[] objects) {
-        task.checkInstances(context, objects);
-
-        int size = 0;
-        for (final ObjectAdapter object : objects) {
-            if (object != null) {
-                size++;
-            }
-        }
-
-        final String[] instances = new String[size];
-        final String[] ids = new String[size];
-        int selectedIndex = -1;
-
-        for (int i = 0, j = 0; i < objects.length; i++) {
-            final ObjectAdapter element = objects[i];
-            if (element != null) {
-                instances[j] = element.titleString();
-                ids[j] = context.mapObject(element);
-                if (ids[j].equals(currentEntry)) {
-                    selectedIndex = i;
-                }
-                j++;
-            }
-        }
-        form.addLookup(fieldLabel, fieldDescription, fieldId, selectedIndex, instances, ids, required, errorMessage);
-    }
-
-    private void addSelectorForKnownReferences(final Context context, final Form form, final ObjectSpecification type, final String currentEntry, final String fieldId, final String fieldLabel, final String fieldDescription, final boolean required, final String errorMessage, final Task task) {
-
-        final ObjectAdapter[] objects = context.getKnownInstances(type);
-        addSelector(context, form, currentEntry, fieldId, fieldLabel, fieldDescription, required, errorMessage, task, objects);
-    }
-
-    private void addSelectorForObjectOptions(final Context context, final Form form, final String currentEntry, final String fieldId, final String fieldLabel, final String fieldDescription, final ObjectAdapter[] options, final boolean required, final String errorMessage, final Task task) {
-        final ObjectAdapter[] objects = new ObjectAdapter[options.length];
-        for (int i = 0; i < options.length; i++) {
-            objects[i] = options[i];
-        }
-        addSelector(context, form, currentEntry, fieldId, fieldLabel, fieldDescription, required, errorMessage, task, objects);
-    }
-
-    private void addSelectorForValueOptions(final Form form, final String currentEntry, final String fieldId, final String fieldLabel, final String fieldDescription, final ObjectAdapter[] options, final boolean required, final String errorMessage, final Task task) {
-        int selectedIndex = -1;
-        final String[] instances = new String[options.length];
-        for (int i = 0; i < options.length; i++) {
-            instances[i] = options[i].titleString();
-            if (currentEntry.equals(instances[i])) {
-                selectedIndex = i;
-            }
-        }
-        form.addLookup(fieldLabel, fieldDescription, fieldId, selectedIndex, instances, instances, required, errorMessage);
-    }
-
-    private void addTextFieldForParseable(final Form form, final ObjectSpecification type, final String currentEntryText, final String fieldId, final String fieldLabel, final String fieldDescription, final int noLines, final boolean wrap, final int maxLength, final int typicalLength,
-            final boolean required, final String errorMessage) {
-        form.addField(type, fieldLabel, fieldDescription, fieldId, currentEntryText, noLines, wrap, maxLength, typicalLength, required, errorMessage);
-    }
-
-    private void displayTask(final Context context, final Page page, final Task task) {
-        page.setTitle(task.getName());
-
-        final ViewPane content = page.getViewPane();
-        final ObjectAdapter targetAdapter = task.getTarget(context);
-        String titleString = targetAdapter.titleString();
-        if (targetAdapter.isTransient()) {
-            titleString += " (Unsaved)";
-        }
-        content.setTitle(titleString, targetAdapter.getSpecification().getDescription());
-        String iconName = targetAdapter.getIconName();
-        if (iconName == null) {
-            iconName = targetAdapter.getSpecification().getShortIdentifier();
-        }
-        content.setIconName(iconName);
-
-        final StringBuffer crumbs = new StringBuffer();
-        final String[] trail = task.getTrail();
-        for (final String element : trail) {
-            crumbs.append(" : ");
-            crumbs.append(element);
-        }
-
-        final Component[] action = new Component[1];
-        action[0] = context.getComponentFactory().createInlineBlock("name", task.getName(), task.getDescription());
-        content.setMenu(action);
-
-        if (task.getError() != null) {
-            content.add(context.getComponentFactory().createInlineBlock("error", task.getError(), null));
-        }
-
-        final Form form = context.getComponentFactory().createForm(task.getId(), name(), task.getStep(), task.numberOfSteps(), task.isEditing());
-        final String[] parameterLabels = task.getNames();
-        final String[] parameterDescriptions = task.getFieldDescriptions();
-        final String[] errors = task.getErrors();
-        final String[] entryText = task.getEntryText();
-        final int[] noLines = task.getNoLines();
-        final boolean[] canWrap = task.getWraps();
-        final int[] maxLength = task.getMaxLength();
-        final int[] typicalLength = task.getTypicalLength();
-        final ObjectAdapter[][] options = task.getOptions(context);
-        final boolean[] optional = task.getOptional();
-        final boolean[] readOnly = task.getReadOnly();
-        final ObjectSpecification[] types = task.getTypes();
-        for (int i = 0; i < parameterLabels.length; i++) {
-            final ObjectSpecification paramSpec = types[i];
-            final String fieldId = "fld" + i;
-            final String fieldLabel = parameterLabels[i] == null ? "" : parameterLabels[i];
-            ;
-            final String fieldDescription = parameterDescriptions[i] == null ? "" : parameterDescriptions[i];
-            final String currentEntryTitle = entryText[i];
-            final String error = errors[i];
-            if (readOnly[i]) {
-                addReadOnlyField(form, paramSpec, fieldLabel, fieldDescription, currentEntryTitle);
-            } else if (paramSpec.isParseable() && options[i] != null && options[i].length > 0) {
-                addSelectorForValueOptions(form, currentEntryTitle, fieldId, fieldLabel, fieldDescription, options[i], !optional[i], error, task);
-            } else if (paramSpec.isParseable()) {
-                addTextFieldForParseable(form, paramSpec, currentEntryTitle, fieldId, fieldLabel, fieldDescription, noLines[i], canWrap[i], maxLength[i], typicalLength[i], !optional[i], error);
-            } else if (paramSpec.isNotCollection() && options[i] != null && options[i].length > 0) {
-                addSelectorForObjectOptions(context, form, currentEntryTitle, fieldId, fieldLabel, fieldDescription, options[i], !optional[i], error, task);
-            } else if (paramSpec.isNotCollection()) {
-                addSelectorForKnownReferences(context, form, paramSpec, currentEntryTitle, fieldId, fieldLabel, fieldDescription, !optional[i], error, task);
-            } else {
-                throw new IsisException();
-            }
-        }
-        content.add(form);
-    }
-
-    private void addReadOnlyField(final Form form, final ObjectSpecification paramSpec, final String fieldLabel, final String fieldDescription, final String currentEntryTitle) {
-        if (paramSpec.containsFacet(BooleanValueFacet.class)) {
-            final boolean isSet = Boolean.parseBoolean(currentEntryTitle);
-            form.addReadOnlyCheckbox(fieldLabel, isSet, fieldDescription);
-        } else {
-            form.addReadOnlyField(fieldLabel, currentEntryTitle, fieldDescription);
-        }
-    }
-
-    @Override
-    public void execute(final Request request, final Context context, final Page page) {
-        final String taskId = request.getTaskId();
-        final Task task = context.getTask(taskId);
-        final String button = request.getButtonName();
-        if (task == null && !"Cancel".equals(button)) {
-            throw new TaskLookupException("No task found with id " + taskId);
-        }
-
-        if (button == null) {
-            // start new task
-            displayTask(context, page, task);
-        } else if ("Cancel".equals(button)) {
-            forwardCancel(request, context, task);
-        } else if ("Previous".equals(button)) {
-            task.setFromFields(request, context);
-            task.previousStep();
-            displayTask(context, page, task);
-        } else if ("Next".equals(button)) {
-            task.setFromFields(request, context);
-            task.nextStep();
-            displayTask(context, page, task);
-        } else if ("Finish".equals(button) || "Save".equals(button) || "Ok".equals(button)) {
-            task.setFromFields(request, context);
-            task.checkForValidity(context);
-
-            if (hasErrors(task)) {
-                displayTask(context, page, task);
-            } else {
-                final String targetId = context.mapObject(task.getTarget(context));
-                final ObjectAdapter result = task.completeTask(context, page);
-                if (result instanceof ObjectAdapter) {
-                    final ObjectAdapter object = result;
-                    context.updateVersion(object);
-                }
-                InvokeMethod.displayMethodResult(request, context, page, result, targetId);
-                context.endTask(task);
-            }
-        } else {
-            throw new ActionException("No task action: " + button);
-        }
-    }
-
-    private void forwardCancel(final Request request, final Context context, final Task task) {
-        final Request cancelTask = context.cancelTask(task);
-        request.forward(cancelTask);
-    }
-
-    private boolean hasErrors(final Task task) {
-        if (task.getError() != null) {
-            return true;
-        }
-        final String[] errors = task.getErrors();
-        for (final String error : errors) {
-            if (error != null) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public String name() {
-        return Request.TASK_COMMAND;
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/arrow.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/arrow.gif b/component/viewer/html/impl/src/main/resources/default-images/arrow.gif
deleted file mode 100644
index c6b4db2..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/arrow.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/bg-button.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/bg-button.gif b/component/viewer/html/impl/src/main/resources/default-images/bg-button.gif
deleted file mode 100644
index ee08c8b..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/bg-button.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/branch.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/branch.gif b/component/viewer/html/impl/src/main/resources/default-images/branch.gif
deleted file mode 100644
index 99a2904..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/branch.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/breadcrumbs-bg.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/breadcrumbs-bg.gif b/component/viewer/html/impl/src/main/resources/default-images/breadcrumbs-bg.gif
deleted file mode 100644
index bab1f44..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/breadcrumbs-bg.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/button-bg1.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/button-bg1.gif b/component/viewer/html/impl/src/main/resources/default-images/button-bg1.gif
deleted file mode 100644
index ab37093..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/button-bg1.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/button-bg2.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/button-bg2.gif b/component/viewer/html/impl/src/main/resources/default-images/button-bg2.gif
deleted file mode 100644
index 288fc8f..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/button-bg2.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/help.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/help.gif b/component/viewer/html/impl/src/main/resources/default-images/help.gif
deleted file mode 100644
index 6a151a0..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/help.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/logo-bg.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/logo-bg.gif b/component/viewer/html/impl/src/main/resources/default-images/logo-bg.gif
deleted file mode 100644
index 525bfca..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/logo-bg.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/logo-bg2.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/logo-bg2.gif b/component/viewer/html/impl/src/main/resources/default-images/logo-bg2.gif
deleted file mode 100644
index bfb0f3a..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/logo-bg2.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/menu-bg.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/menu-bg.gif b/component/viewer/html/impl/src/main/resources/default-images/menu-bg.gif
deleted file mode 100644
index 021f996..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/menu-bg.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/menu-bg2.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/menu-bg2.gif b/component/viewer/html/impl/src/main/resources/default-images/menu-bg2.gif
deleted file mode 100644
index e6a42cf..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/menu-bg2.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/object-header-bg.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/object-header-bg.gif b/component/viewer/html/impl/src/main/resources/default-images/object-header-bg.gif
deleted file mode 100644
index 4cf32b9..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/object-header-bg.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/page-header-bg.jpg
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/page-header-bg.jpg b/component/viewer/html/impl/src/main/resources/default-images/page-header-bg.jpg
deleted file mode 100644
index 6e044ed..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/page-header-bg.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/page-header-bg1.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/page-header-bg1.gif b/component/viewer/html/impl/src/main/resources/default-images/page-header-bg1.gif
deleted file mode 100644
index 252075a..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/page-header-bg1.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/page-header-bg2.jpg
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/page-header-bg2.jpg b/component/viewer/html/impl/src/main/resources/default-images/page-header-bg2.jpg
deleted file mode 100644
index 4d041ca..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/page-header-bg2.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/poweredby-logo.png
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/poweredby-logo.png b/component/viewer/html/impl/src/main/resources/default-images/poweredby-logo.png
deleted file mode 100644
index c9f66ac..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/poweredby-logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/shadow-bottom.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/shadow-bottom.gif b/component/viewer/html/impl/src/main/resources/default-images/shadow-bottom.gif
deleted file mode 100644
index 16c1c99..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/shadow-bottom.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/sign-info.png
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/sign-info.png b/component/viewer/html/impl/src/main/resources/default-images/sign-info.png
deleted file mode 100644
index 5b8e845..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/sign-info.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/sign-warning.png
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/sign-warning.png b/component/viewer/html/impl/src/main/resources/default-images/sign-warning.png
deleted file mode 100644
index 78e238d..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/sign-warning.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/site-header-bg.jpg
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/site-header-bg.jpg b/component/viewer/html/impl/src/main/resources/default-images/site-header-bg.jpg
deleted file mode 100644
index 39a1c8c..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/site-header-bg.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/submenu-bullet.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/submenu-bullet.gif b/component/viewer/html/impl/src/main/resources/default-images/submenu-bullet.gif
deleted file mode 100644
index 27f305a..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/submenu-bullet.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/tab-bar-bg.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/tab-bar-bg.gif b/component/viewer/html/impl/src/main/resources/default-images/tab-bar-bg.gif
deleted file mode 100644
index 09130d5..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/tab-bar-bg.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/tab-off-bg.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/tab-off-bg.gif b/component/viewer/html/impl/src/main/resources/default-images/tab-off-bg.gif
deleted file mode 100644
index 9305e13..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/tab-off-bg.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default-images/tab-on-bg.gif
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default-images/tab-on-bg.gif b/component/viewer/html/impl/src/main/resources/default-images/tab-on-bg.gif
deleted file mode 100644
index 976c31a..0000000
Binary files a/component/viewer/html/impl/src/main/resources/default-images/tab-on-bg.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/default.css
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/default.css b/component/viewer/html/impl/src/main/resources/default.css
deleted file mode 100644
index 9956ce9..0000000
--- a/component/viewer/html/impl/src/main/resources/default.css
+++ /dev/null
@@ -1,939 +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.
- */
-/* Start Global styles */
-
-body {
-  background: #101254;
-  text-align: center;
-}
-#wrapper {
-  width: 980px;
-  min-height: 800px;
-  border:3px solid #7F81C0;
-  margin:8px auto;
-  text-align: left;
-  background: white;
-}
-
-.header-icon > img {
-	max-width: 40px;
-	height: 40px;
-}
-	
-BODY {
-	font-family: Arial, Sans-Serif;
-	margin: 0 0 10px 0;
-	color: black;
-
-/*
-	background: url(default-images/poweredby-logo.png);
-	background-repeat: no-repeat;
-	background-position: 95% 95%;
-*/
-}
-
-IMG {
-	border: 0;
-}
-
-A {
-	text-decoration: none;
-}
-
-A:hover {
-	text-decoration: underline;
-}
-
-/* End Global styles */ /* Start Heading */ 
-
-div#site-header:after {
-	bottom: 0px;
-	display: block;
-	text-align: right;
-	float:right;
-	bottom: 0;
-	font-size: 70%;
-	color: gray;
-}
-
-div#site-header {
-	background: url(images/banner-bg.png); 
-	background-repeat: repeat-x white-space :   nowrap;
-	list-style: none;
-	margin: 0px;
-	height: 100px;
-}
-
-div#site-logo {
-	background: url(images/banner.png);
-	background-repeat: no-repeat;
-	background-position: left;
-	position: absolute;
-	width: 980px;
-	height: 100px;
-	margin: 0 auto;
-}
-
-div#page-header {
-	display: none;
-}
-
-/* END Heading */
-DIV#body {
-	display: block;
-	padding-bottom: 10px;
-}
-
-div#navigation {
-	margin: 0;
-	padding: 0px;
-}
-
-/* Start options*/
-DIV.options {
-	background-color: #eeeeee;
-	margin: 0;
-	padding: 4px 0px 4px 5px;
-	min-height: 20px;
-	align: right;
-	float:right;
-}
-
-
-DIV.options H4 {
-	display: none;
-}
-
-DIV.options DIV.item {
-	display: inline;
-	border-right: 1px solid #000000;
-	font-family: arial, 'sans serif';
-	font-weight: bold;
-	color: #00000;
-	font-size: 70%;
-	margin: 0 6px 0 6px;
-	padding 0 0 0 0;
-	min-width: 200px;
-}
-
-DIV.options DIV.item IMG {
-	display: none;
-}
-
-DIV.options DIV.item a:link {
-	color: #000000;
-	text-decoration: none;
-	margin: 0 5px 0 0px;
-	padding: 0 2px 0 0px;
-}
-
-DIV.options DIV.item a:hover {
-	background-color: #dddddd;
-	margin: 0 5px 0 0px;
-	padding: 0 2px 0 0px;
-}
-
-DIV.options DIV.item a:visited {
-	color: #000000;
-	text-decoration: none;
-	margin: 0 5px 0 0px;
-	padding: 0 2px 0 0px;
-}
-
-/* End options */ 
-
-/* Start services */
-DIV.services {
-	background-color: #7F81C0;
-	margin: 0;
-	padding: 4px 20px 4px 5px;
-	min-height: 20px;
-
-}
-
-DIV.services H4 {
-	display: none;
-}
-
-DIV.services DIV.item {
-	display: inline;
-	border-right: 1px solid #ffffff;
-	font-family: arial, 'sans serif';
-	font-weight: bold;
-	color: #ffffff;
-	font-size: 70%;
-	margin: 3px;
-}
-
-DIV.services DIV.item IMG {
-	display: none;
-}
-
-DIV.services DIV.item a:link {
-	color: #ffffff;
-	text-decoration: none;
-	margin: 0 5px 0 5px;
-	padding: 0 2px 0 0px;
-}
-
-DIV.services DIV.item a:hover {
-	background-color: #2683E2;
-	margin: 0 5px 0 5px;
-	padding: 0 2px 0 0px;
-}
-
-DIV.services DIV.item a:visited {
-	color: #ffffff;
-	text-decoration: none;
-	margin: 0 5px 0 5px;
-	padding: 0 2px 0 0px;
-}
-
-DIV.services DIV.item-selected {
-	background-color: #2683E2;
-	display: inline;
-	border-right: 1px solid #ffffff;
-	font-family: arial, 'sans serif';
-	font-weight: bold;
-	color: #ffffff;
-	font-size: 70%;
-}
-
-DIV.services DIV.item-selected a:link {
-	color: #ffffff;
-	text-decoration: none;
-	margin: 0 5px 0 5px;
-	padding: 0 2px 0 0px;
-}
-
-DIV.services DIV.item-selected a:hover {
-	background-color: #556677;
-	margin: 0 5px 0 5px;
-	padding: 0 2px 0 0px;
-}
-
-DIV.services DIV.item-selected a:visited {
-	color: #ffffff;
-	text-decoration: none;
-	margin: 0 5px 0 5px;
-	padding: 0 2px 0 0px;
-}
-
-/* End services */ /* Start History */
-DIV.history {
-	background-color: #D6D6D6;
-	margin: 0;
-	padding: 1px 30px 0 5px;
-	min-height: 26px;
-}
-
-DIV.history H4 {
-	display: none;
-}
-
-DIV.history DIV.item {
-	display: inline;
-	border-right: 1px solid #ffffff;
-	font-family: arial, 'sans serif';
-	font-weight: bold;
-	color: #29357D;
-	font-size: 70%;
-}
-
-DIV.history DIV.item IMG {
-	position: relative;
-	top: 4px;
-	height: 16px;
-	padding: 0 5px 0 0px;
-}
-
-DIV.history DIV.item a:link {
-	color: #29357D;
-	text-decoration: none;
-	margin: 5px;
-	padding: 1px 3px 1px 3px;
-}
-
-DIV.history DIV.item a:hover {
-	background-color: #B7B6B6;
-	padding: 1px 3px 1px 3px;
-}
-
-DIV.history DIV.item a:visited {
-	color: #29357D;
-	text-decoration: none;
-	padding: 1px 3px 1px 3px;
-}
-
-DIV.history DIV.item-selected {
-	background-color: #2683E2;
-	display: inline;
-	border-right: 1px solid #ffffff;
-	font-family: arial, 'sans serif';
-	font-weight: bold;
-	color: #29357D;
-	font-size: 70%;
-	height: 30px;
-}
-
-DIV.history DIV.item-selected a:hover {
-	background-color: #556677;
-	padding: 1px 3px 1px 3px;
-}
-
-DIV.history DIV.item-selected a:link {
-	color: #29357D;
-	text-decoration: none;
-	margin: 10px;
-	padding: 1px 3px 1px 3px;
-}
-
-DIV.history DIV.item-selected a:visited {
-	color: #29357D;
-	text-decoration: none;
-	padding: 1px 3px 1px 3px;
-}
-
-/* INVISIBLE character for empty item. FIREFOX ONLY*/
-DIV.history:after {
-	content: "X";
-	display: inline;
-	text-align: right;
-	font-size: 70%;
-	color: #D6D6D6;
-}
-
-/* End History */ /* Start Context */
-div#context {
-	background-color: #F0F0F0;
-	margin: 0;
-	padding: 1px 30px 0 7px;
-	min-height: 26px;
-}
-
-div#context span.disabled {
-	display: inline;
-	font-family: arial, 'sans serif';
-	font-weight: normal;
-	color: #666666;
-	font-size: 70%;
-	padding: 0px 5px 0px 7px;
-	white-space: nowrap;
-}
-
-div#context span.disabled IMG {
-	display: none
-}
-
-div#context span.disabled a:link {
-	color: #29357D;
-	text-decoration: none;
-	margin: 5px;
-	padding: 1px 3px 1px 3px;
-}
-
-div#context span.disabled a:hover {
-	background-color: #B7B6B6;
-	padding: 1px 3px 1px 3px;
-}
-
-div#context span.disabled a:visited {
-	color: #29357D;
-	text-decoration: none;
-	padding: 1px 3px 1px 3px;
-}
-
-div#context a.linked {
-	display: inline;
-	font-family: arial, 'sans serif';
-	font-weight: normal;
-	color: #29357D;
-	font-size: 70%;
-	padding: 0px 5px 0px 7px;
-}
-
-div#context a.linked IMG {
-	display: none
-}
-
-div#context a.linked a:link {
-	color: #29357D;
-	text-decoration: none;
-	margin: 5px;
-	padding: 1px 3px 1px 3px;
-}
-
-div#context a.linked  a:hover {
-	background-color: #29357D;
-	padding: 1px 3px 1px 3px;
-	text-decoration: underline;
-}
-
-div#context a.linked  a:visited {
-	color: #29357D;
-	text-decoration: none;
-	padding: 1px 3px 1px 3px;
-}
-
-/* INVISIBLE character for empty breadcrumbs. FIREFOX ONLY*/
-span.disabled:after {
-	content: "X";
-	display: inline;
-	text-align: right;
-	font-size: 70%;
-	color: #F0F0F0;
-}
-
-/* End Context */ /*
-div#help-bar {
-	position: relative;
-	right: 50px;
-	top: 10px;
-	text-align: right; 
-	font-family : arial, 'sans serif'; 
-	font-weight : normal;  
-	color: #0000FF; 
-	font-size : 90%; 
-	line-height : 110%;
-	text-decoration: underline;
-	height: 22px;
-}
-*/
-DIV#body DIV#view {
-	position: relative;
-	top: 0px;
-	left: 0px;
-	margin: 0px;
-}
-
-/* Start of Message Header */
-DIV.message-header {
-	position: relative;
-	top: 40px;
-	padding: 5px 25px 5px 25px;
-	margin: 0 50px 0 255px;
-	vertical-align: middle;
-	COLOR: #003366;
-	FONT-WEIGHT: bold;
-	FONT-SIZE: 80%;
-	LEFT: auto;
-	FONT-STYLE: normal;
-	FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif;
-	width: 40%;
-}
-
-DIV.message-header DIV.warning {
-	COLOR: #ff0033;
-	padding: 5px 25px 5px 25px;
-	background: url(default-images/sign-warning.png);
-	background-repeat: no-repeat;
-	background-color: #D6D6D6;
-	background-position: 5px 5px;
-}
-
-DIV.message-header DIV.message {
-	COLOR: #003366;
-	padding: 5px 25px 5px 25px;
-	background: url(default-images/sign-info.png);
-	background-repeat: no-repeat;
-	background-color: #D6D6D6;
-	background-position: 5px 5px;
-}
-
-DIV.message-header DIV.message {
-	FONT-WEIGHT: normal;
-}
-
-/* End of Message Header */ /* Start of Object Header */
-DIV.header {
-	position: relative;
-	top: 40px;
-	display: block;
-	background-color: #F0F0F0;
-	min-height: 48px;
-	margin: 0 50px 0 280px;
-
-}
-
-SPAN.header-icon IMG {
-	float: left;
-}
-
-SPAN.header-text {
-	float: left;
-	position: relative;
-	top: 10px;
-	margin-left: 7px;
-	FONT-WEIGHT: bold;
-	FONT-SIZE: 16px;
-	LEFT: auto;
-	COLOR: #003366;
-	FONT-STYLE: normal;
-	FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif;
-}
-
-/* End of Object Header */ /* Start of Object Contents */
-DIV#content {
-	position: relative;
-	display: block;
-	top: 40px;
-	margin: 0 50px 10px 280px;
-}
-
-/* Start of Object Fields */
-DIV.field {
-	margin: 0;
-	padding: 5px 0px 5px 0px;
-	border-top: 1px solid #666666;
-	min-height: 20px;
-}
-
-DIV.field SPAN.value IMG,DIV.field DIV.value IMG {
-	position: relative;
-	top: 3px;
-	margin: 0px 5px 0 0;
-	height: 16px;
-}
-
-DIV.field SPAN.value A,DIV.field DIV.value A {
-	position: relative;
-	top: -2px;
-	margin: 0px 5px 0 0;
-	height: 16px;
-}
-
-DIV.field DIV.icon IMG {
-	position: relative;
-	top: 0px;
-	margin: 0px 5px 0 0;
-	height: 16px;
-}
-
-.label,.value {
-	font-size: 80%;
-	color: #333399;
-}
-
-DIV.field DIV.icon {
-	display: inline;
-	color: #333399;
-	position: absolute;
-	left: 200px;
-}
-
-DIV.field span.label,DIV.field DIV.label {
-	width: 170px;
-	display: block;
-	/*content: ":";*/
-	margin: 0 0 -18px 7px;
-}
-
-DIV.field span.separator {
-	display: inline;
-	position: relative;
-	margin: 0 0 -15px 180px;
-	vertical-align: top;
-}
-
-DIV.field span.value, DIV.field DIV.value, DIV.field INPUT.value, DIV.field SELECT.value
-	{
-	top: -2px;
-	position: relative;
-	margin: 0px 10px -5px 0px;
-	display: inline;
-}
-
-DIV.field span.value PRE {
-	color: #333399;
-	margin: 0;
-	font-family: inherit;
-}
-
-
-DIV.field textarea.value {
-	font-family: inherit;
-}
-
-
-DIV.field span.optional {
-	margin: -35px 0 0 0;
-	font-size: 70%;
-	color: grey;
-}
-
-DIV.field span.required {
-	display: inline;
-	position: relative;
-	margin: 0;
-	vertical-align: top;
-	color: red;
-}
-
-DIV.field span.error {
-	display: inline;
-	position: relative;
-	color: red;
-	font-size: 70%;
-}
-
-/* INVISIBLE character for empty value FIREFOX ONLY*/
-DIV.field span.value:after {
-	content: "X";
-	display: inline;
-	text-align: right;
-	font-size: 70%;
-	color: white;
-}
-
-/* INVISIBLE character for empty value FIREFOX ONLY*/
-DIV.field span.label:after {
-	content: "X";
-	display: inline;
-	text-align: right;
-	font-size: 70%;
-	color: white;
-}
-
-/* End of Object Fields */ /* Start of Object Table */
-DIV#content TABLE {
-	position: relative;
-	float: left;
-	width: 100%;
-	border: 0;
-	margin: 0 0 10px 0;
-	border-collapse: collapse;
-}
-
-DIV#content TH {
-	padding: 6px;
-	border: 1px solid #ffffff;
-	background-color: #D6D6D6;
-	font-family: arial, 'sans serif';
-	font-weight: bold;
-	color: black;
-	font-size: 70%;
-}
-
-DIV#content TD {
-	background-color: #ffffff;
-	border-right: 0;
-	border-left: 0;
-	border-bottom: 1px solid black;
-	padding: 6px;
-	font-family: arial, 'sans serif';
-	font-weight: normal;
-	font-size: 80%;
-	color: #333399;
-	margin: 0;
-	text-align: left;
-}
-
-DIV#content TD.rowstart {
-	background-color: #F0F0F0;
-}
-
-DIV#content TD A:visited {
-	color: #0000FF;
-}
-
-DIV#content H4 {
-	font-family: arial, 'sans serif';
-	font-weight: normal;
-	color: #000000;
-	font-size: 70%;
-	border-top: 1px solid black;
-	margin: -2px 0 0 0px;
-	padding: 5px;
-}
-
-TD DIV.icon {
-	font-size: 100%;
-	margin-top: 5px;
-}
-
-TD DIV.icon IMG {
-	float: left;
-	margin: -1px 5px 5px 0px;
-	height: 16px;
-}
-
-TD DIV.action-button {
-	background-color: #ffffff;
-	font-size: 130%;
-	text-decoration: none;
-}
-
-/* End of Object Table */
-INPUT.action-button,DIV.action-button {
-	background-color: #F0F0F0;
-	padding: 10px;
-	display: block;
-	margin: 0;
-	min-height: 20px;
-}
-
-INPUT.action-button,DIV.action-button A {
-	background: url(default-images/bg-button.gif);
-	background-repeat: repeat-x;
-	padding: 2px;
-	margin: 5px;
-	border: 1px solid #333399;
-	font-family: arial, 'sans serif';
-	font-weight: normal;
-	color: #000000;
-	font-size: 70%;
-	font-weight: normal;
-	text-align: center;
-}
-
-DIV.action-button a:link {
-	color: #000000;
-}
-
-DIV.action-button a:visited {
-	color: #000000;
-}
-
-DIV.action-button a:hover {
-	color: #000000;
-	text-decoration: none;
-}
-
-INPUT.action-button,DIV.action-button INPUT {
-	float: left;
-}
-
-/* End of Object Contents */ /* Start of Object Actions Menu */
-DIV#body DIV#view DIV#menu {
-	position: relative;
-	top: 40px;
-	left: 0;
-	background-color: #ffffff;
-	border-top: 1px solid #00336F;
-	margin: 0px;
-	width: 210px;
-	display: block;
-	float: left;
-}
-
-DIV#body DIV#menu H3 {
-	display: none;
-}
-
-DIV#menu SPAN.name {
-	display: block;
-	font-size: 80%;
-	background-color: #ffffff;
-	color: #333399;
-	line-height: 100%;
-	margin: 0 0 0 10px;
-}
-
-DIV.menu-item  a:link {
-	color: #333399;
-}
-
-DIV.menu-item  a:visited {
-	color: #333399;
-}
-
-DIV.submenu-item {
-	font-size: 80%;
-	background-color: #ffffff;
-	color: #1A59A7;
-	margin: 0px;
-	padding: 5px 0px 5px 10px;
-	border-bottom: 1px solid #00336F;
-	line-height: 100%;
-}
-
-DIV.submenu-item DIV.menu-item {
-	background: url(default-images/submenu-bullet.gif);
-	background-repeat: no-repeat;
-	background-position: left;
-	background-color: #ffffff;
-	margin: 0px;
-	line-height: 100%;
-	border: 0;
-	padding: 4px 5px 0px 10px;
-	font-family: arial, 'sans serif';
-	font-weight: normal;
-	color: #1A59A7;
-	font-size: 85%;
-}
-
-DIV.menu-item {
-	background-color: #ffffff;
-	margin: 0px;
-	line-height: 110%;
-	border-bottom: 1px solid #00336F;
-	padding: 5px 5px 5px 10px;
-	font-family: arial, 'sans serif';
-	font-weight: normal;
-	color: #1A59A7;
-	font-size: 80%;
-}
-
-DIV.menu-item DIV.disabled {
-	color: #a0a0a0;
-}
-
-DIV.menu-item a:link {
-	color: #1A59A7;
-}
-
-DIV.menu-item a:visited {
-	color: #1A59A7;
-}
-
-DIV.menu-item a:hover {
-	color: #006666;
-	text-decoration: underline;
-}
-
-DIV.submenu-item DIV.menu-item a:link {
-	color: #1A59A7;
-}
-
-DIV.submenu-item DIV.menu-item a:visited {
-	color: #1A59A7;
-}
-
-DIV.submenu-item DIV.menu-item a:hover {
-	color: #006666;
-	text-decoration: underline;
-}
-
-/* End of Object Menu */
-DIV.page-footer {
-	position: absolute;
-	right: 10px;
-	bottom: 10px;
-	font-size: 50%;
-	color: #333399;
-}
-
-H1 {
-	font-size: 140%;
-	margin-top: -8px;
-}
-
-H2 {
-	font-size: 90%;
-	color: #333399;
-	letter-spacing: 1pt;
-	text-indent:-1pt;
-	margin: 0;
-}
-
-H3 {
-	font-size: 80%;
-	color: #ffffff;
-	letter-spacing: 1pt;
-	text-indent:-1pt;
-	margin: 15px 10px 5px 10px;
-}
-
-H4 {
-	font-size: 80%;
-	color: #333399;
-	letter-spacing: 1pt;
-	text-indent:-1pt;
-	margin: 10px 10px 0px 10px;
-}
-
-DIV.text {
-	font-size: 100%;
-	color: #336699;
-	letter-spacing: 1pt;
-	text-indent:-1pt;
-	margin: 10px 10px 0px 10px;
-}
-
-DIV.error {
-	font-size: 120%;
-	color: #cc0000;
-	letter-spacing: 1pt;
-	text-indent:-1pt;
-	margin: 10px 10px 0px 10px;
-}
-
-PRE.error-trace {
-	font-size: 80%;
-	color: #cc0000;
-	margin: 10px 10px 0px 10px;
-}
-
-DIV#debug { /*	float: left;*/
-	background-color: #F0F0F0;
-	margin: 30px;
-	padding: 1px 10px 0 7px;
-	min-height: 22px;
-	border: 1px;
-}
-
-DIV#debug H4 {
-	display: inline;
-	font-size: 80%;
-	color: #999;
-	margin: 0 5px 0 10px;
-}
-
-DIV#debug DIV.detail {
-	display: inline;
-	font-size: 80%;
-	color: #999;
-	margin: 0 5px 0 10px;
-}
-
-DIV#page-footer {
-	display: none;
-}
-
-SPAN.message {
-	position: relative;
-	top: 30px;
-	font-size: 100%;
-	color: #336699;
-	margin: 40px 0 0 0;
-	padding: 10px;
-}
-/* Think this is now redundant
-DIV.items {
-	position: relative;
-} 
-*/
-
-
-SPAN.about {
-	display: block;
-	padding: 4px;
-}
-
-
-SPAN.user {
-	display: block;
-	padding: 4px;
-}
-
-.nav-link {
-    display: block;
-    padding: 10px;
-    font-size: 75%;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/htmlviewer.js
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/htmlviewer.js b/component/viewer/html/impl/src/main/resources/htmlviewer.js
deleted file mode 100644
index d05e14b..0000000
--- a/component/viewer/html/impl/src/main/resources/htmlviewer.js
+++ /dev/null
@@ -1,22 +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.
- */
-$(document).ready(function()
-{
-    $(".message-header").fadeOut(5000)
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/images/Default.png
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/images/Default.png b/component/viewer/html/impl/src/main/resources/images/Default.png
deleted file mode 100644
index 8409e46..0000000
Binary files a/component/viewer/html/impl/src/main/resources/images/Default.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/resources/images/banner.png
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/resources/images/banner.png b/component/viewer/html/impl/src/main/resources/images/banner.png
deleted file mode 100644
index adf2159..0000000
Binary files a/component/viewer/html/impl/src/main/resources/images/banner.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/src-archived/MonitorServlet.java
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/src-archived/MonitorServlet.java b/component/viewer/html/impl/src/main/src-archived/MonitorServlet.java
deleted file mode 100644
index 80e3dec..0000000
--- a/component/viewer/html/impl/src/main/src-archived/MonitorServlet.java
+++ /dev/null
@@ -1,101 +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.extensions.htmlviewer.webapp;
-
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.net.URLDecoder;
-import java.util.Date;
-import java.util.Iterator;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.apache.isis.metamodel.authentication.AuthenticationSession;
-import org.apache.isis.extensions.html.servlet.internal.SessionAccess;
-import org.apache.isis.runtime.system.internal.monitor.MonitorListenerImpl;
-
-
-public class MonitorServlet extends HttpServlet {
-    private static final long serialVersionUID = 1L;
-    private MonitorListenerImpl monitor;
-
-    @Override
-    protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException,
-            IOException {
-        final String queryString = request.getQueryString();
-        final String query = queryString == null ? "Overview" : URLDecoder.decode(queryString, "UTF-8");
-        response.setContentType("text/html");
-        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(response.getOutputStream()));
-        if (query.equals("Sessions")) {
-            writer.println("<HTML><HEAD><TITLE>NOF System Monitor - " + "Sessions" + "</TITLE></HEAD>");
-            writer.println("<BODY>");
-
-            writer.println("<h1>" + "Sessions" + "</h1>");
-            writer.println("<pre>");
-            writer.println(listSessions());
-            writer.println("</pre>");
-            writer.println("</BODY></HTML>");
-        } else {
-            monitor.writeHtmlPage(query, writer);
-        }
-        writer.flush();
-    }
-
-    private static String listSessions() {
-        final StringBuffer str = new StringBuffer();
-        final Iterator<?> it = SessionAccess.getSessions().iterator();
-        while (it.hasNext()) {
-            final HttpSession session = (HttpSession) it.next();
-            final String id = session.getId();
-            str.append(id);
-            str.append(" \t");
-
-            final long creationTime = session.getCreationTime();
-            str.append(new Date(creationTime));
-            str.append(" \t");
-
-            final long lastAccessedTime = session.getLastAccessedTime();
-            str.append(new Date(lastAccessedTime));
-            str.append(" \t");
-
-            final AuthenticationSession nofSession = (AuthenticationSession) session.getAttribute("NOF_SESSION_ATTRIBUTE");
-            if (nofSession != null) {
-                str.append(nofSession.getUserName());
-            }
-
-            str.append("\n");
-        }
-        return str.toString();
-    }
-
-    @Override
-    public void init(final ServletConfig servletConfig) throws ServletException {
-        super.init(servletConfig);
-        monitor = new MonitorListenerImpl();
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/src-archived/SessionAccess.java
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/src-archived/SessionAccess.java b/component/viewer/html/impl/src/main/src-archived/SessionAccess.java
deleted file mode 100644
index 0855677..0000000
--- a/component/viewer/html/impl/src/main/src-archived/SessionAccess.java
+++ /dev/null
@@ -1,183 +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.extensions.html.servlet.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.apache.isis.applib.fixtures.LogonFixture;
-import org.apache.isis.metamodel.authentication.AuthenticationSession;
-import org.apache.isis.runtime.authentication.AuthenticationManager;
-import org.apache.isis.runtime.authentication.PasswordAuthenticationRequest;
-import org.apache.isis.runtime.authentication.standard.ExplorationSession;
-import org.apache.isis.runtime.authentication.standard.SimpleSession;
-import org.apache.isis.runtime.context.IsisContext;
-import org.apache.isis.runtime.system.DeploymentType;
-
-
-public class SessionAccess {
-
-    private static final Logger LOG = Logger.getLogger(SessionAccess.class);
-    private static SessionAccess instance;
-
-    // //////////////////////////////////////////////
-    // Singleton factory
-    // //////////////////////////////////////////////
-
-    /**
-     * Create singleton
-     */
-    public static void createInstance(final AuthenticationManager authenticationManager) {
-        new SessionAccess(authenticationManager);
-    }
-
-    /**
-     * Create singleton
-     */
-    public static void createInstance(
-            final AuthenticationManager authenticationManager,
-            final DeploymentType deploymentType,
-            final LogonFixture logonFixture) {
-        new SessionAccess(authenticationManager, deploymentType, logonFixture);
-    }
-
-    // //////////////////////////////////////////////
-    // Sessions
-    // //////////////////////////////////////////////
-
-    // REVIEW part of decoupling systemaccess from servlet code - moved list sessions to monitorservlet
-    public static List<Object> getSessions() {
-        return instance.sessions;
-    }
-
-    // REVIEW part of decoupling systemaccess from servlet code - changed session to object
-    public static void addSession(final Object session) {
-        instance.sessions.add(session);
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("session started " + session);
-        }
-    }
-
-    // REVIEW part of decoupling systemaccess from servlet code - moved logoff part to sessionlist
-    public static void removeSession(final Object session) {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("session ended " + session);
-        }
-        instance.sessions.remove(session);
-    }
-
-    // //////////////////////////////////////////////
-    // Authentication, logoff
-    // //////////////////////////////////////////////
-
-    public static AuthenticationSession authenticate(final PasswordAuthenticationRequest passwordAuthenticationRequest) {
-        return instance.authenticateInstance(passwordAuthenticationRequest);
-    }
-
-    public static void logoffUser(final AuthenticationSession session) {
-        getAuthenticationManager().closeSession(session);
-    }
-
-    private static AuthenticationManager getAuthenticationManager() {
-        if (instance == null) {
-            throw new IllegalStateException("Server initialisation failed, or not defined as a context listener");
-        }
-        return instance.authenticationManager;
-    }
-
-    // //////////////////////////////////////////////
-    // Request
-    // //////////////////////////////////////////////
-
-    public static void startRequest(final AuthenticationSession authSession) {
-        IsisContext.openSession(authSession);
-    }
-
-    public static void endRequest(final AuthenticationSession authSession) {
-    	// if a Logout has occurred then there won't be any session
-    	// (though should the AuthenticationManagerStandard actually be closing the session? not sure)
-    	
-    	if (IsisContext.inSession()) {
-    		IsisContext.closeSession();
-    	}
-    }
-
-    // //////////////////////////////////////////////
-    // Settings
-    // //////////////////////////////////////////////
-
-    public static boolean inExplorationMode() {
-        return instance.inExplorationModeInstance();
-    }
-
-    // ///////////////////////////////////////////////////////////////////////////
-
-    private final List<Object> sessions = new ArrayList<Object>();
-
-    private final AuthenticationManager authenticationManager;
-    private DeploymentType deploymentType;
-    private LogonFixture logonFixture;
-
-    private SessionAccess(final AuthenticationManager authenticationManager) {
-        this(authenticationManager, DeploymentType.STANDALONE, null);
-    }
-
-    private SessionAccess(
-            final AuthenticationManager authenticationManager,
-            final DeploymentType deploymentType,
-            final LogonFixture logonFixture) {
-        this.authenticationManager = authenticationManager;
-
-        this.deploymentType = deploymentType;
-        this.logonFixture = logonFixture;
-
-        SessionAccess.instance = this;
-    }
-
-    public DeploymentType getDeploymentType() {
-        return deploymentType;
-    }
-
-    public LogonFixture getLogonFixture() {
-        return logonFixture;
-    }
-
-    private AuthenticationSession authenticateInstance(PasswordAuthenticationRequest passwordAuthenticationRequest) {
-
-        if ((deploymentType.isExploring() || deploymentType.isPrototyping()) && 
-             logonFixture != null) {
-            return new SimpleSession(logonFixture.getUsername(), logonFixture.getRoles());
-        }
-
-        if (deploymentType.isExploring()) {
-            return new ExplorationSession();
-        }
-
-        return authenticationManager.authenticate(passwordAuthenticationRequest);
-    }
-
-    private boolean inExplorationModeInstance() {
-        return deploymentType.isExploring();
-    }
-
-}
-

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/main/src-archived/SessionList.java
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/main/src-archived/SessionList.java b/component/viewer/html/impl/src/main/src-archived/SessionList.java
deleted file mode 100644
index 3363656..0000000
--- a/component/viewer/html/impl/src/main/src-archived/SessionList.java
+++ /dev/null
@@ -1,53 +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.extensions.htmlviewer.webapp;
-
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionEvent;
-import javax.servlet.http.HttpSessionListener;
-
-import org.apache.isis.metamodel.authentication.AuthenticationSession;
-import org.apache.isis.extensions.html.context.Context;
-import org.apache.isis.extensions.html.servlet.internal.SessionAccess;
-
-
-public class SessionList implements HttpSessionListener {
-    private static final String NOF_SESSION_ATTRIBUTE = "nof-context";
-
-    public void sessionCreated(final HttpSessionEvent event) {
-        final HttpSession session = event.getSession();
-        SessionAccess.addSession(session);
-    }
-
-    public void sessionDestroyed(final HttpSessionEvent event) {
-        final HttpSession session = event.getSession();
-        SessionAccess.removeSession(session);
-
-        final Context context = (Context) session.getAttribute(NOF_SESSION_ATTRIBUTE);
-        final AuthenticationSession nofSession = context.getSession();
-        if (nofSession != null) {
-            SessionAccess.logoffUser(nofSession);
-        }
-
-    }
-
-}
-

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/site/apt/index.apt
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/site/apt/index.apt b/component/viewer/html/impl/src/site/apt/index.apt
deleted file mode 100644
index d6f3649..0000000
--- a/component/viewer/html/impl/src/site/apt/index.apt
+++ /dev/null
@@ -1,47 +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.
-
-
-
-HTML Viewer
-
- The HTML viewer provides a simple webapp interface for interacting with an Isis domain model.
-  
- It renders each domain object or collection of domain objects as a web page, with
- hyperlinks used to navigate between objects.  In addition, object actions can also be invoked,
- with hyperlinks bringing up a page for action parameters if required.
- 
-Customization
- 
-  The HTML viewer offers only very limited customization opportunities; the CSS can be
-  altered, but that's about it. 
- 
-Alternatives
-
-  There are two other webapp viewers which provide more far wider customization opportunities:
-  
-  * the {{{../scimpi/index.html}Scimpi}} viewer uses a JSF-like markup metaphor
-  
-  * the {{{../wicket/index.html}Wicket}} viewer uses a {{{http://wicket.apache.org}Apache Wicket}} components
-    (and allows you to define your own components also).
-    
-  []
-
-Further Info
-  
-  See this module's {{{./apidocs/index.html}Javadoc}} and the {{{./docbkx/html/guide/isis-html-viewer.html}user guide}} for more information.
-  
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/site/apt/jottings.apt
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/site/apt/jottings.apt b/component/viewer/html/impl/src/site/apt/jottings.apt
deleted file mode 100644
index 7ef0d29..0000000
--- a/component/viewer/html/impl/src/site/apt/jottings.apt
+++ /dev/null
@@ -1,71 +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.
-
-
-
-Jottings
- 
-  This page is to capture any random jottings relating to this module prior 
-  to being moved into formal documentation. 
- 
-* Debugging
-
-  To turn on debugging use the debugon command, e.g.,
-
---------------------------------------------------------
-http://localhost:8080/debugon.app
---------------------------------------------------------
-
-  A control bar appears a the bottom of the page allowing you to
-  display the object graph, specification, connection details and so on
-  
-  To turn it off use the debugoff command:
-
---------------------------------------------------------
-http://localhost:8080/debugoff.app</programlisting>
---------------------------------------------------------
-
-  The debug pages can be displayed directly by providing the commands:
-  debug; spec and dump - along with a object id if necessary. For example to 
-  view the details about the specification for object 28 use:
-
---------------------------------------------------------
-http://localhost:8080/spec.app?id=28
---------------------------------------------------------
- 
- 
- * Other Notes
- 
-  The pages generated by the servlet are broken down into the following sections
-
---------------------------------------------------------
-site-header
-	site-logo
-page-header
-navigation
-	resources
-	history
-content
-	header
-	menu
-	body
-site-footer
---------------------------------------------------------
-
-Objects edited on the web don't fit the save-as-you-go pattern that we adopted in the DND.  
-This means that the options for each field, that the options might depend upon, don't get 
-updated as the fields are not being changed on the fly.

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/site/site.xml
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/site/site.xml b/component/viewer/html/impl/src/site/site.xml
deleted file mode 100644
index aca88eb..0000000
--- a/component/viewer/html/impl/src/site/site.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<project>
-
-	<body>
-		<breadcrumbs>
-			<item name="HTML"/>
-		</breadcrumbs>
-
-		<menu name="HTML Viewer">
-			<item name="About" href="index.html" />
-            <item name="Jottings" href="jottings.html" />
-		</menu>
-        
-        <menu name="Viewer Modules">
-            <item name="HTML" href="../html/index.html" />
-            <item name="Scimpi" href="../scimpi/index.html" />
-            <item name="Wicket" href="../wicket/index.html" />
-            <item name="RestfulObjects" href="../restfulobjects/index.html" />
-            <item name="JUnit Support" href="../junit/index.html" />
-            <item name="BDD Integration" href="../bdd/index.html" />
-            <item name="DnD" href="../dnd/index.html" />
-        </menu>
-        
-		<menu name="Documentation">
-			<item name="${docbkxGuideTitle} (PDF)" href="docbkx/pdf/${docbkxGuideName}.pdf" />
-			<item name="${docbkxGuideTitle} (HTML)" href="docbkx/html/guide/${docbkxGuideName}.html" />
-		</menu>
-
-		<menu name="Maven Reports" ref="reports" />
-	</body>
-
-</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/91a8000b/component/viewer/html/impl/src/test/java/org/apache/isis/viewer/html/context/ContextTest_mapAction.java
----------------------------------------------------------------------
diff --git a/component/viewer/html/impl/src/test/java/org/apache/isis/viewer/html/context/ContextTest_mapAction.java b/component/viewer/html/impl/src/test/java/org/apache/isis/viewer/html/context/ContextTest_mapAction.java
deleted file mode 100644
index 39260a1..0000000
--- a/component/viewer/html/impl/src/test/java/org/apache/isis/viewer/html/context/ContextTest_mapAction.java
+++ /dev/null
@@ -1,98 +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.html.context;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.isis.core.integtestsupport.IsisSystemWithFixtures;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.viewer.html.action.ActionException;
-
-public class ContextTest_mapAction {
-
-    @Rule
-    public IsisSystemWithFixtures iswf = IsisSystemWithFixtures.builder().build();
-
-    private Context context;
-
-
-    @Before
-    public void setUp() throws Exception {
-        Logger.getRootLogger().setLevel(Level.OFF);
-        context = new Context(null);
-    }
-
-
-    @Test
-    public void getMappedAction_forNonExistentId() {
-        try {
-            assertNull(context.getMappedAction("NON-EXISTENT-ID"));
-            fail();
-        } catch (final ActionException ex) {
-            // expected
-        }
-    }
-
-
-    @Test
-    public void mapAction_then_getMappedAction() {
-        final ObjectAction action = new ObjectActionNoop();
-        final String id = context.mapAction(action);
-        assertEquals(action, context.getMappedAction(id));
-    }
-
-
-    @Test
-    public void mapAction_returnsSameIdForSameAction() {
-        final ObjectAction action = new ObjectActionNoop();
-        final String id = context.mapAction(action);
-        final String id2 = context.mapAction(action);
-        assertEquals(id, id2);
-    }
-
-    @Test
-    public void mapAction_returnsDifferentIdsForDifferentActions() {
-        final String id = context.mapAction(new ObjectActionNoop());
-        final String id2 = context.mapAction(new ObjectActionNoop());
-        assertNotSame(id, id2);
-    }
-
-    
-    private PersistenceSession getPersistenceSession() {
-        return IsisContext.getPersistenceSession();
-    }
-
-    private AdapterManager getAdapterManager() {
-        return getPersistenceSession().getAdapterManager();
-    }
-
-}