You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by rm...@apache.org on 2013/03/24 18:45:08 UTC
[11/24] git commit: Restructuring Scimpi to remove dependencies and
enable easier testing.
Restructuring Scimpi to remove dependencies and enable easier testing.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/49518c89
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/49518c89
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/49518c89
Branch: refs/heads/scimpi-restructure
Commit: 49518c89ff57987cbd8dcc8c033a8b3b819e037f
Parents: b5ea578
Author: rmatthews <rm...@nakedobjects.org>
Authored: Wed Jan 16 23:25:06 2013 +0000
Committer: rmatthews <rm...@nakedobjects.org>
Committed: Wed Jan 16 23:25:06 2013 +0000
----------------------------------------------------------------------
.../apache/isis/viewer/scimpi/DebugHtmlWriter.java | 45 +
.../isis/viewer/scimpi/ForbiddenException.java | 68 ++
.../java/org/apache/isis/viewer/scimpi/Names.java | 104 ++
.../isis/viewer/scimpi/NotLoggedInException.java | 32 +
.../apache/isis/viewer/scimpi/ScimpiException.java | 44 +
.../dispatcher/AbstractElementProcessor.java | 55 -
.../scimpi/dispatcher/AbstractObjectProcessor.java | 54 -
.../isis/viewer/scimpi/dispatcher/Action.java | 37 -
.../scimpi/dispatcher/AddElementProcessors.java | 215 ++++
.../viewer/scimpi/dispatcher/BlockContent.java | 23 -
.../scimpi/dispatcher/DispatchException.java | 3 +
.../isis/viewer/scimpi/dispatcher/Dispatcher.java | 144 ++--
.../scimpi/dispatcher/ElementContentProcessor.java | 24 -
.../viewer/scimpi/dispatcher/ElementProcessor.java | 30 -
.../viewer/scimpi/dispatcher/ErrorCollator.java | 146 ---
.../scimpi/dispatcher/ForbiddenException.java | 68 --
.../isis/viewer/scimpi/dispatcher/Names.java | 91 --
.../scimpi/dispatcher/NotLoggedInException.java | 31 -
.../isis/viewer/scimpi/dispatcher/Response.java | 6 +
.../viewer/scimpi/dispatcher/ScimpiException.java | 44 -
.../scimpi/dispatcher/ScimpiNotFoundException.java | 2 +
.../scimpi/dispatcher/TagOrderException.java | 7 +-
.../isis/viewer/scimpi/dispatcher/UserManager.java | 90 --
.../scimpi/dispatcher/action/ActionAction.java | 29 +-
.../scimpi/dispatcher/action/Attributes.java | 131 ---
.../scimpi/dispatcher/action/DebugAction.java | 244 ++++
.../scimpi/dispatcher/action/DebugUserAction.java | 72 ++
.../scimpi/dispatcher/action/EditAction.java | 271 +++++
.../viewer/scimpi/dispatcher/action/LogAction.java | 76 ++
.../scimpi/dispatcher/action/LogonAction.java | 146 +++
.../scimpi/dispatcher/action/LogoutAction.java | 71 ++
.../dispatcher/action/PropertyException.java | 44 -
.../scimpi/dispatcher/action/RemoveAction.java | 117 ++
.../action/RequiredPropertyException.java | 43 -
.../viewer/scimpi/dispatcher/context/Action.java | 37 +
.../context/DefaultOidObjectMapping.java | 6 +-
.../scimpi/dispatcher/context/ErrorCollator.java | 145 +++
.../dispatcher/context/IndirectObjectMapping.java | 3 +-
.../scimpi/dispatcher/context/ObjectMapping.java | 2 +-
.../dispatcher/context/PropertyException.java | 44 +
.../viewer/scimpi/dispatcher/context/Request.java | 864 +++++++++++++++
.../scimpi/dispatcher/context/RequestContext.java | 862 --------------
.../scimpi/dispatcher/debug/DebugAction.java | 243 ----
.../scimpi/dispatcher/debug/DebugHtmlWriter.java | 45 -
.../scimpi/dispatcher/debug/DebugUserAction.java | 71 --
.../viewer/scimpi/dispatcher/debug/DebugUsers.java | 97 --
.../scimpi/dispatcher/debug/DebugUsersView.java | 30 +-
.../scimpi/dispatcher/debug/ErrorDetails.java | 8 +-
.../scimpi/dispatcher/debug/ErrorMessage.java | 8 +-
.../scimpi/dispatcher/debug/ErrorReference.java | 8 +-
.../viewer/scimpi/dispatcher/debug/LogAction.java | 76 --
.../viewer/scimpi/dispatcher/edit/EditAction.java | 269 -----
.../scimpi/dispatcher/edit/FieldEditState.java | 57 -
.../viewer/scimpi/dispatcher/edit/FormState.java | 67 --
.../scimpi/dispatcher/edit/RemoveAction.java | 116 --
.../scimpi/dispatcher/logon/LogonAction.java | 147 ---
.../scimpi/dispatcher/logon/LogoutAction.java | 71 --
.../scimpi/dispatcher/processor/Attributes.java | 132 +++
.../scimpi/dispatcher/processor/BlockContent.java | 23 +
.../processor/ElementContentProcessor.java | 25 +
.../dispatcher/processor/ElementProcessor.java | 29 +
.../dispatcher/processor/HtmlFileParser.java | 13 +-
.../scimpi/dispatcher/processor/HtmlSnippet.java | 51 +
.../dispatcher/processor/ProcessorLookup.java | 206 ----
.../scimpi/dispatcher/processor/Request.java | 323 ------
.../processor/RequiredPropertyException.java | 43 +
.../scimpi/dispatcher/processor/Snippet.java | 27 +
.../viewer/scimpi/dispatcher/processor/SwfTag.java | 89 ++
.../processor/TagProcessingException.java | 2 +-
.../scimpi/dispatcher/processor/TagProcessor.java | 317 ++++++
.../dispatcher/structure/FieldEditState.java | 57 +
.../scimpi/dispatcher/structure/FormState.java | 67 ++
.../scimpi/dispatcher/util/MethodsUtils.java | 23 +-
.../dispatcher/view/AbstractElementProcessor.java | 58 +
.../dispatcher/view/AbstractObjectProcessor.java | 55 +
.../viewer/scimpi/dispatcher/view/HelpLink.java | 72 --
.../viewer/scimpi/dispatcher/view/History.java | 150 ---
.../viewer/scimpi/dispatcher/view/HtmlSnippet.java | 51 -
.../viewer/scimpi/dispatcher/view/Snippet.java | 27 -
.../isis/viewer/scimpi/dispatcher/view/SwfTag.java | 90 --
.../scimpi/dispatcher/view/VersionNumber.java | 70 --
.../dispatcher/view/action/ActionButton.java | 117 +-
.../dispatcher/view/action/ActionContent.java | 10 +-
.../scimpi/dispatcher/view/action/ActionForm.java | 97 +-
.../scimpi/dispatcher/view/action/ActionLink.java | 62 +-
.../scimpi/dispatcher/view/action/Methods.java | 110 +-
.../scimpi/dispatcher/view/action/Parameter.java | 16 +-
.../scimpi/dispatcher/view/action/RunAction.java | 32 +-
.../scimpi/dispatcher/view/action/Services.java | 36 +-
.../dispatcher/view/collection/Collection.java | 36 +-
.../viewer/scimpi/dispatcher/view/debug/Debug.java | 168 ++--
.../dispatcher/view/debug/DebugAccessCheck.java | 10 +-
.../dispatcher/view/debug/DebugCollectionView.java | 32 +-
.../dispatcher/view/debug/DebugObjectView.java | 66 +-
.../scimpi/dispatcher/view/debug/DebuggerLink.java | 28 +-
.../scimpi/dispatcher/view/debug/Diagnostics.java | 57 +-
.../viewer/scimpi/dispatcher/view/debug/Log.java | 14 +-
.../scimpi/dispatcher/view/debug/LogLevel.java | 28 +-
.../scimpi/dispatcher/view/debug/Members.java | 44 +-
.../scimpi/dispatcher/view/debug/ShowDebug.java | 12 +-
.../dispatcher/view/debug/Specification.java | 54 +-
.../dispatcher/view/debug/ThrowException.java | 10 +-
.../dispatcher/view/display/AbstractFormView.java | 64 +-
.../dispatcher/view/display/AbstractTableView.java | 60 +-
.../scimpi/dispatcher/view/display/AddMessage.java | 12 +-
.../scimpi/dispatcher/view/display/AddWarning.java | 12 +-
.../scimpi/dispatcher/view/display/Errors.java | 22 +-
.../scimpi/dispatcher/view/display/Feedback.java | 16 +-
.../scimpi/dispatcher/view/display/FieldLabel.java | 22 +-
.../scimpi/dispatcher/view/display/FieldValue.java | 46 +-
.../scimpi/dispatcher/view/display/GetField.java | 44 +-
.../dispatcher/view/display/IncludeObject.java | 32 +-
.../scimpi/dispatcher/view/display/ListView.java | 47 +-
.../dispatcher/view/display/LongFormView.java | 14 +-
.../scimpi/dispatcher/view/display/Messages.java | 14 +-
.../dispatcher/view/display/SelectedObject.java | 26 +-
.../scimpi/dispatcher/view/display/TableBlock.java | 4 +-
.../dispatcher/view/display/TableBuilder.java | 32 +-
.../scimpi/dispatcher/view/display/TableCell.java | 55 +-
.../view/display/TableContentWriter.java | 6 +-
.../scimpi/dispatcher/view/display/TableEmpty.java | 24 +-
.../dispatcher/view/display/TableHeader.java | 12 +-
.../scimpi/dispatcher/view/display/TableRow.java | 20 +-
.../scimpi/dispatcher/view/display/TableView.java | 110 +-
.../scimpi/dispatcher/view/display/Title.java | 32 +-
.../scimpi/dispatcher/view/display/Warnings.java | 14 +-
.../scimpi/dispatcher/view/edit/EditObject.java | 74 +-
.../scimpi/dispatcher/view/edit/FieldFactory.java | 105 --
.../scimpi/dispatcher/view/edit/FormEntry.java | 44 -
.../scimpi/dispatcher/view/edit/FormField.java | 44 -
.../dispatcher/view/edit/FormFieldBlock.java | 68 --
.../scimpi/dispatcher/view/edit/HiddenField.java | 48 -
.../dispatcher/view/edit/RadioListField.java | 70 --
.../scimpi/dispatcher/view/edit/Selector.java | 158 ---
.../scimpi/dispatcher/view/field/ExcludeField.java | 10 +-
.../scimpi/dispatcher/view/field/IncludeField.java | 10 +-
.../dispatcher/view/field/InclusionList.java | 2 +-
.../scimpi/dispatcher/view/field/LinkField.java | 21 +-
.../scimpi/dispatcher/view/field/LinkedObject.java | 6 +-
.../dispatcher/view/form/HtmlFormBuilder.java | 62 +-
.../scimpi/dispatcher/view/logon/Logoff.java | 10 +-
.../viewer/scimpi/dispatcher/view/logon/Logon.java | 54 +-
.../dispatcher/view/logon/RestrictAccess.java | 16 +-
.../scimpi/dispatcher/view/logon/Secure.java | 10 +-
.../viewer/scimpi/dispatcher/view/logon/User.java | 46 +-
.../scimpi/dispatcher/view/other/HelpLink.java | 72 ++
.../scimpi/dispatcher/view/other/History.java | 150 +++
.../dispatcher/view/other/VersionNumber.java | 70 ++
.../view/simple/AbstractConditionalBlock.java | 108 +-
.../dispatcher/view/simple/AbstractLink.java | 65 +-
.../scimpi/dispatcher/view/simple/BlockDefine.java | 18 +-
.../scimpi/dispatcher/view/simple/BlockUse.java | 18 +-
.../scimpi/dispatcher/view/simple/Commit.java | 6 +-
.../scimpi/dispatcher/view/simple/ContentTag.java | 8 +-
.../scimpi/dispatcher/view/simple/CookieValue.java | 24 +-
.../dispatcher/view/simple/DefaultValue.java | 24 +-
.../scimpi/dispatcher/view/simple/EditLink.java | 8 +-
.../scimpi/dispatcher/view/simple/EndSession.java | 8 +-
.../scimpi/dispatcher/view/simple/Forward.java | 10 +-
.../scimpi/dispatcher/view/simple/GetCookie.java | 12 +-
.../scimpi/dispatcher/view/simple/Import.java | 8 +-
.../view/simple/InitializeFromCookie.java | 35 +-
.../view/simple/InitializeFromResult.java | 43 +-
.../dispatcher/view/simple/Localization.java | 14 +-
.../viewer/scimpi/dispatcher/view/simple/Mark.java | 12 +-
.../dispatcher/view/simple/NewActionLink.java | 14 +-
.../scimpi/dispatcher/view/simple/ObjectLink.java | 8 +-
.../scimpi/dispatcher/view/simple/PageTitle.java | 8 +-
.../scimpi/dispatcher/view/simple/Redirect.java | 10 +-
.../dispatcher/view/simple/RemoveElement.java | 86 +-
.../scimpi/dispatcher/view/simple/ScopeTag.java | 28 +-
.../scimpi/dispatcher/view/simple/SetCookie.java | 24 +-
.../dispatcher/view/simple/SetCookieFromField.java | 6 +-
.../dispatcher/view/simple/SetFieldFromCookie.java | 6 +-
.../dispatcher/view/simple/SetLocalization.java | 12 +-
.../dispatcher/view/simple/SimpleButton.java | 16 +-
.../dispatcher/view/simple/StartSession.java | 8 +-
.../scimpi/dispatcher/view/simple/TemplateTag.java | 6 +-
.../scimpi/dispatcher/view/simple/Unless.java | 10 +-
.../scimpi/dispatcher/view/simple/Variable.java | 40 +-
.../viewer/scimpi/dispatcher/view/simple/When.java | 10 +-
.../scimpi/dispatcher/view/value/ActionName.java | 14 +-
.../dispatcher/view/value/CountElements.java | 14 +-
.../scimpi/dispatcher/view/value/ElementType.java | 20 +-
.../scimpi/dispatcher/view/value/FieldName.java | 20 +-
.../dispatcher/view/value/ParameterName.java | 18 +-
.../scimpi/dispatcher/view/value/TitleString.java | 20 +-
.../viewer/scimpi/dispatcher/view/value/Type.java | 22 +-
.../dispatcher/view/widget/FieldFactory.java | 105 ++
.../scimpi/dispatcher/view/widget/FormEntry.java | 44 +
.../scimpi/dispatcher/view/widget/FormField.java | 44 +
.../dispatcher/view/widget/FormFieldBlock.java | 68 ++
.../scimpi/dispatcher/view/widget/HiddenField.java | 48 +
.../dispatcher/view/widget/RadioListField.java | 70 ++
.../scimpi/dispatcher/view/widget/Selector.java | 158 +++
.../isis/viewer/scimpi/security/DebugUsers.java | 97 ++
.../isis/viewer/scimpi/security/UserManager.java | 89 ++
.../viewer/scimpi/servlet/DispatchException.java | 2 +-
.../viewer/scimpi/servlet/DispatcherServlet.java | 8 +-
.../scimpi/servlet/ServletRequestContext.java | 10 +-
200 files changed, 6225 insertions(+), 6171 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/DebugHtmlWriter.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/DebugHtmlWriter.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/DebugHtmlWriter.java
new file mode 100644
index 0000000..0251e7f
--- /dev/null
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/DebugHtmlWriter.java
@@ -0,0 +1,45 @@
+/*
+ * 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.scimpi;
+
+import java.io.PrintWriter;
+
+import org.apache.isis.core.commons.debug.DebugHtmlStringAbstract;
+
+public class DebugHtmlWriter extends DebugHtmlStringAbstract {
+
+ private final PrintWriter writer;
+
+ public DebugHtmlWriter(final PrintWriter writer, final boolean createPage) {
+ super(createPage);
+ this.writer = writer;
+ header();
+ }
+
+ @Override
+ protected void appendHtml(final String html) {
+ writer.println(html);
+ }
+
+ @Override
+ protected void doClose() {
+ footer();
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ForbiddenException.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ForbiddenException.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ForbiddenException.java
new file mode 100644
index 0000000..30384ab
--- /dev/null
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ForbiddenException.java
@@ -0,0 +1,68 @@
+/*
+ * 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.scimpi;
+
+import java.util.List;
+
+import org.apache.isis.applib.Identifier;
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+
+/**
+ * Indicates that request could not complete as it could not access (for
+ * security reasons) some of the content.
+ */
+public class ForbiddenException extends ScimpiException {
+ private static final long serialVersionUID = 1L;
+ public static final boolean VISIBLE_AND_USABLE = true;
+ public static final boolean VISIBLE = false;
+ private final Identifier identifier;
+ private final AuthenticationSession session;
+
+ public ForbiddenException(final String message) {
+ this(IsisContext.getAuthenticationSession(), message);
+ }
+
+ private ForbiddenException(final AuthenticationSession session, final String message) {
+ super(message + " for " + session.getUserName() + " " + session.getRoles());
+ this.session = session;
+ identifier = null;
+ }
+
+ public ForbiddenException(final IdentifiedHolder target, final boolean isVisibleAndUsabable) {
+ this(target.getIdentifier(), IsisContext.getAuthenticationSession(), isVisibleAndUsabable);
+ }
+
+ private ForbiddenException(final Identifier identifier, final AuthenticationSession session, final boolean isVisibleAndUsabable) {
+ super((identifier.getType() == Identifier.Type.PROPERTY_OR_COLLECTION ? "Field" : "Action") + " '" + identifier.getMemberName() + "' in " + identifier.getClassName() + " is not " + (isVisibleAndUsabable ? "visible/usable " : "visible") + " for " + session.getUserName() + " "
+ + session.getRoles());
+ this.identifier = identifier;
+ this.session = session;
+ }
+
+ public Identifier getIdentifier() {
+ return identifier;
+ }
+
+ public List<String> getRoles() {
+ return session.getRoles();
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/Names.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/Names.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/Names.java
new file mode 100644
index 0000000..9ebbbbc
--- /dev/null
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/Names.java
@@ -0,0 +1,104 @@
+/*
+ * 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.scimpi;
+
+public interface Names {
+ static final String PREFIX = "_logon-";
+
+ public static final String COMMAND_ROOT = ".app";
+
+ public static final String EXTENSION = "shtml";
+
+ public static final String ACTION = "_action";
+ public static final String EDIT = "_edit";
+ public static final String REMOVE = "_remove";
+ public static final String GENERIC = "_generic";
+
+ public static final String RESULT = "_result";
+ public static final String ERROR_PARAM = "_error";
+ public static final String BACK_TO = "_back_to";
+
+ static final String BUTTON_TITLE = "button-title";
+ static final String CANCEL_TO = "cancel-to";
+ static final String COLLECTION = "collection";
+ static final String CONFIRM = "confirm";
+ static final String CLASS = "class";
+ static final String CONTAINER_CLASS = "container-" + CLASS;
+ static final String DEFAULT = "default";
+ static final String ELEMENT_NAME = "element-name";
+ static final String ELEMENT = "element";
+ static final String EVEN_ROW_CLASS = "even-row";
+ static final String FALSE = "false";
+ static final String ERROR = "error";
+ static final String FIELD = "field";
+ static final String FIELD_NAME = "field-name";
+ static final String FOOTER = "footer";
+ static final String FORM_ID = "form-id";
+ static final String FORM_TITLE = "title";
+ static final String FORMS = "show-forms";
+ static final String HEADER = "header";
+ static final String ICON_CLASS = "icon";
+ static final String HIDDEN = "hidden";
+ static final String HIDE_UNEDITABLE = "hide-uneditable";
+ static final String HEADER_LEVEL = "header";
+ static final String ID = "id";
+ static final String LABEL_DELIMITER = "label";
+ static final String LINK_VIEW = "link-view";
+ static final String LINK_NAME = "link-name";
+ static final String LINK_OBJECT = "link-object";
+ static final String METHOD = "method";
+ static final String MESSAGE = "message";
+ static final String NAME = "name";
+ static final String ODD_ROW_CLASS = "odd-row";
+ static final String OBJECT = "object";
+ static final String PARAMETER = "param";
+ static final String PARAMETER_NUMBER = "number";
+ static final String PLURAL = "plural";
+ static final String REFERENCE_NAME = "reference-name";
+ static final String RESULT_NAME = "result-name";
+ static final String RESULT_OVERRIDE = "result-override";
+ static final String ROW_CLASSES = "row-classes";
+ static final String SCOPE = "scope";
+ static final String SHOW_ICON = "icon";
+ static final String SHOW_SELECT = "select";
+ static final String SHOW_EDIT = "edit";
+ static final String SHOW_DELETE = "delete";
+ static final String SHOW_MESSAGE = "show-message";
+ static final String SHOW_TITLE = "show-title";
+ static final String TRUNCATE = "truncate";
+ static final String TABLE_TITLE = "title";
+ static final String TYPE = "type";
+ static final String VIEW = "view";
+ static final String VALUE = "value";
+ static final String VERSION = "version";
+ static final String USER = "user";
+ static final String VOID = "void";
+ static final String WHEN = "when";
+ static final String ENTRY_FIELDS = "entry-fields";
+
+
+ static final String LOGON_OBJECT = PREFIX + OBJECT;
+ static final String LOGON_METHOD = PREFIX + METHOD;
+ static final String LOGON_SCOPE = PREFIX + SCOPE;
+ static final String LOGON_RESULT_NAME = PREFIX + RESULT_NAME;
+ static final String LOGON_FORM_ID = PREFIX + "form-id";
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/NotLoggedInException.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/NotLoggedInException.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/NotLoggedInException.java
new file mode 100644
index 0000000..8a663f1
--- /dev/null
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/NotLoggedInException.java
@@ -0,0 +1,32 @@
+/*
+ * 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.scimpi;
+
+
+/**
+ * Indicates that request could not complete as a user was not logged in.
+ */
+public class NotLoggedInException extends ScimpiException {
+ private static final long serialVersionUID = 1L;
+
+ public NotLoggedInException() {
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ScimpiException.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ScimpiException.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ScimpiException.java
new file mode 100644
index 0000000..15781a4
--- /dev/null
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/ScimpiException.java
@@ -0,0 +1,44 @@
+/*
+ * 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.scimpi;
+
+public class ScimpiException extends RuntimeException {
+ private static final long serialVersionUID = 1L;
+
+ public ScimpiException() {
+ }
+
+ public ScimpiException(final String message) {
+ super(message);
+ }
+
+ public ScimpiException(final Throwable cause) {
+ super(cause);
+ }
+
+ public ScimpiException(final String message, final Throwable cause) {
+ super(message, cause);
+ }
+
+ public String getHtmlMessage() {
+ return getMessage();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractElementProcessor.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractElementProcessor.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractElementProcessor.java
deleted file mode 100644
index 4869cc4..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractElementProcessor.java
+++ /dev/null
@@ -1,55 +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.scimpi.dispatcher;
-
-import org.apache.isis.core.commons.config.ConfigurationConstants;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
-
-public abstract class AbstractElementProcessor implements ElementProcessor, Names {
-
- private static final String SHOW_ICONS_BY_DEFAULT = ConfigurationConstants.ROOT + "scimpi.show-icons";
-
- private final boolean showIconByDefault;
-
- public AbstractElementProcessor() {
- showIconByDefault = IsisContext.getConfiguration().getBoolean(SHOW_ICONS_BY_DEFAULT, false);
- }
-
- /**
- * Return the Class for the class specified in the type attribute.
- */
- protected Class<?> forClass(final Request request) {
- Class<?> cls = null;
- final String className = request.getOptionalProperty(TYPE);
- if (className != null) {
- try {
- cls = Class.forName(className);
- } catch (final ClassNotFoundException e) {
- throw new ScimpiException("No class for " + className, e);
- }
- }
- return cls;
- }
-
- protected boolean showIconByDefault() {
- return showIconByDefault;
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractObjectProcessor.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractObjectProcessor.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractObjectProcessor.java
deleted file mode 100644
index d163bc1..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AbstractObjectProcessor.java
+++ /dev/null
@@ -1,54 +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.scimpi.dispatcher;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
-
-public abstract class AbstractObjectProcessor extends AbstractElementProcessor {
-
- @Override
- public void process(final Request request) {
- final String id = request.getOptionalProperty(OBJECT);
- ObjectAdapter object = request.getContext().getMappedObjectOrResult(id);
-
- final String field = request.getOptionalProperty(FIELD);
- if (field != null) {
- final ObjectAssociation objectField = object.getSpecification().getAssociation(field);
- final String error = checkFieldType(objectField);
- if (error != null) {
- throw new ScimpiException("Field " + objectField.getId() + " " + error);
- }
- IsisContext.getPersistenceSession().resolveField(object, objectField);
- object = objectField.get(object);
- }
-
- process(request, object);
- }
-
- protected String checkFieldType(final ObjectAssociation objectField) {
- return null;
- }
-
- protected abstract void process(Request request, ObjectAdapter object);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Action.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Action.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Action.java
deleted file mode 100644
index 7bd6b26..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Action.java
+++ /dev/null
@@ -1,37 +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.scimpi.dispatcher;
-
-import java.io.IOException;
-
-import org.apache.isis.core.commons.debug.DebugBuilder;
-import org.apache.isis.viewer.scimpi.dispatcher.context.RequestContext;
-
-public interface Action extends Names {
-
- void process(RequestContext context) throws IOException;
-
- String getName();
-
- void init();
-
- void debug(DebugBuilder debug);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AddElementProcessors.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AddElementProcessors.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AddElementProcessors.java
new file mode 100644
index 0000000..ad51add
--- /dev/null
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/AddElementProcessors.java
@@ -0,0 +1,215 @@
+package org.apache.isis.viewer.scimpi.dispatcher;
+
+import org.apache.isis.viewer.scimpi.dispatcher.debug.DebugUsersView;
+import org.apache.isis.viewer.scimpi.dispatcher.debug.ErrorDetails;
+import org.apache.isis.viewer.scimpi.dispatcher.debug.ErrorMessage;
+import org.apache.isis.viewer.scimpi.dispatcher.debug.ErrorReference;
+import org.apache.isis.viewer.scimpi.dispatcher.processor.ProcessorLookup;
+import org.apache.isis.viewer.scimpi.dispatcher.view.action.ActionButton;
+import org.apache.isis.viewer.scimpi.dispatcher.view.action.ActionForm;
+import org.apache.isis.viewer.scimpi.dispatcher.view.action.ActionLink;
+import org.apache.isis.viewer.scimpi.dispatcher.view.action.Methods;
+import org.apache.isis.viewer.scimpi.dispatcher.view.action.Parameter;
+import org.apache.isis.viewer.scimpi.dispatcher.view.action.RunAction;
+import org.apache.isis.viewer.scimpi.dispatcher.view.action.Services;
+import org.apache.isis.viewer.scimpi.dispatcher.view.collection.Collection;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.DebugAccessCheck;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.DebugCollectionView;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.DebugObjectView;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.DebuggerLink;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.Diagnostics;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.Log;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.LogLevel;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.Members;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.ShowDebug;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.Specification;
+import org.apache.isis.viewer.scimpi.dispatcher.view.debug.ThrowException;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.AddMessage;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.AddWarning;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.Errors;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.Feedback;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.FieldLabel;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.FieldValue;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.GetField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.IncludeObject;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.ListView;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.LongFormView;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.Messages;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.SelectedObject;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.ShortFormView;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.TableBuilder;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.TableCell;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.TableEmpty;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.TableHeader;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.TableRow;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.TableView;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.Title;
+import org.apache.isis.viewer.scimpi.dispatcher.view.display.Warnings;
+import org.apache.isis.viewer.scimpi.dispatcher.view.edit.EditObject;
+import org.apache.isis.viewer.scimpi.dispatcher.view.field.ExcludeField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.field.IncludeField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.field.LinkField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.logon.Logoff;
+import org.apache.isis.viewer.scimpi.dispatcher.view.logon.Logon;
+import org.apache.isis.viewer.scimpi.dispatcher.view.logon.RestrictAccess;
+import org.apache.isis.viewer.scimpi.dispatcher.view.logon.Secure;
+import org.apache.isis.viewer.scimpi.dispatcher.view.logon.User;
+import org.apache.isis.viewer.scimpi.dispatcher.view.other.HelpLink;
+import org.apache.isis.viewer.scimpi.dispatcher.view.other.History;
+import org.apache.isis.viewer.scimpi.dispatcher.view.other.VersionNumber;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.BlockDefine;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.BlockUse;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Commit;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.ContentTag;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.CookieValue;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.DefaultValue;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.EditLink;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.EndSession;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Forward;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.GetCookie;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Import;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.InitializeFromCookie;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.InitializeFromResult;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Localization;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Mark;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.NewActionLink;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.ObjectLink;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.PageTitle;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Redirect;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.RemoveElement;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.ScopeTag;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.SetCookie;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.SetCookieFromField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.SetFieldFromCookie;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.SetLocalization;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.SimpleButton;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.StartSession;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.TemplateTag;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Unless;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.Variable;
+import org.apache.isis.viewer.scimpi.dispatcher.view.simple.When;
+import org.apache.isis.viewer.scimpi.dispatcher.view.value.ActionName;
+import org.apache.isis.viewer.scimpi.dispatcher.view.value.CountElements;
+import org.apache.isis.viewer.scimpi.dispatcher.view.value.ElementType;
+import org.apache.isis.viewer.scimpi.dispatcher.view.value.FieldName;
+import org.apache.isis.viewer.scimpi.dispatcher.view.value.ParameterName;
+import org.apache.isis.viewer.scimpi.dispatcher.view.value.TitleString;
+import org.apache.isis.viewer.scimpi.dispatcher.view.value.Type;
+import org.apache.isis.viewer.scimpi.dispatcher.view.widget.FormEntry;
+import org.apache.isis.viewer.scimpi.dispatcher.view.widget.FormField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.widget.HiddenField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.widget.RadioListField;
+import org.apache.isis.viewer.scimpi.dispatcher.view.widget.Selector;
+
+public class AddElementProcessors {
+
+ public static void init(ProcessorLookup processors) {
+
+ processors.addElementProcessor(new ActionLink());
+ processors.addElementProcessor(new ActionButton());
+ processors.addElementProcessor(new ActionForm());
+ processors.addElementProcessor(new ActionName());
+ processors.addElementProcessor(new AddMessage());
+ processors.addElementProcessor(new AddWarning());
+ processors.addElementProcessor(new BlockDefine());
+ processors.addElementProcessor(new BlockUse());
+ processors.addElementProcessor(new History());
+ processors.addElementProcessor(new Collection());
+ processors.addElementProcessor(new Commit());
+ processors.addElementProcessor(new ContentTag());
+ processors.addElementProcessor(new CountElements());
+ processors.addElementProcessor(new Diagnostics());
+ processors.addElementProcessor(new DebugAccessCheck());
+ processors.addElementProcessor(new DebugCollectionView());
+ processors.addElementProcessor(new DebuggerLink());
+ processors.addElementProcessor(new DebugObjectView());
+ processors.addElementProcessor(new DebugUsersView());
+ processors.addElementProcessor(new DefaultValue());
+ processors.addElementProcessor(new EditLink());
+ processors.addElementProcessor(new EditObject());
+ processors.addElementProcessor(new ElementType());
+ processors.addElementProcessor(new Errors());
+ processors.addElementProcessor(new ErrorDetails());
+ processors.addElementProcessor(new ErrorMessage());
+ processors.addElementProcessor(new ErrorReference());
+ processors.addElementProcessor(new ExcludeField());
+ processors.addElementProcessor(new Feedback());
+ processors.addElementProcessor(new FieldLabel());
+ processors.addElementProcessor(new FieldName());
+ processors.addElementProcessor(new FieldValue());
+ processors.addElementProcessor(new FormField());
+ processors.addElementProcessor(new FormEntry());
+ processors.addElementProcessor(new Forward());
+ processors.addElementProcessor(new GetField());
+ processors.addElementProcessor(new HelpLink());
+ processors.addElementProcessor(new HiddenField());
+ processors.addElementProcessor(new Import());
+ processors.addElementProcessor(new IncludeObject());
+ processors.addElementProcessor(new IncludeField());
+ processors.addElementProcessor(new InitializeFromCookie());
+ processors.addElementProcessor(new InitializeFromResult());
+ processors.addElementProcessor(new Log());
+ processors.addElementProcessor(new LogLevel());
+ processors.addElementProcessor(new Logon());
+ processors.addElementProcessor(new Logoff());
+ processors.addElementProcessor(new LongFormView());
+ processors.addElementProcessor(new LinkField());
+ processors.addElementProcessor(new ListView());
+ processors.addElementProcessor(new NewActionLink());
+ processors.addElementProcessor(new Mark());
+ processors.addElementProcessor(new Members());
+ processors.addElementProcessor(new Messages());
+ processors.addElementProcessor(new Methods());
+ processors.addElementProcessor(new ObjectLink());
+ processors.addElementProcessor(new PageTitle());
+ processors.addElementProcessor(new Parameter());
+ processors.addElementProcessor(new ParameterName());
+ processors.addElementProcessor(new RadioListField());
+ processors.addElementProcessor(new Redirect());
+ processors.addElementProcessor(new RemoveElement());
+ processors.addElementProcessor(new VersionNumber());
+ processors.addElementProcessor(new RunAction());
+ processors.addElementProcessor(new RestrictAccess());
+ processors.addElementProcessor(new ScopeTag());
+ processors.addElementProcessor(new Secure());
+ processors.addElementProcessor(new SelectedObject());
+ processors.addElementProcessor(new Selector());
+ processors.addElementProcessor(new Services());
+ processors.addElementProcessor(new ShortFormView());
+ processors.addElementProcessor(new ShowDebug());
+ processors.addElementProcessor(new SimpleButton());
+ processors.addElementProcessor(new Specification());
+ processors.addElementProcessor(new TableCell());
+ processors.addElementProcessor(new TableView());
+ processors.addElementProcessor(new TableBuilder());
+ processors.addElementProcessor(new TableEmpty());
+ processors.addElementProcessor(new TableRow());
+ processors.addElementProcessor(new TableHeader());
+ processors.addElementProcessor(new TemplateTag());
+ processors.addElementProcessor(new Title());
+ processors.addElementProcessor(new TitleString());
+ processors.addElementProcessor(new ThrowException());
+ processors.addElementProcessor(new Type());
+ processors.addElementProcessor(new User());
+ processors.addElementProcessor(new Unless());
+ processors.addElementProcessor(new Variable());
+ processors.addElementProcessor(new Warnings());
+ processors.addElementProcessor(new When());
+
+ processors.addElementProcessor(new StartSession());
+ processors.addElementProcessor(new EndSession());
+
+ processors.addElementProcessor(new CookieValue());
+ processors.addElementProcessor(new SetCookie());
+ processors.addElementProcessor(new GetCookie());
+ processors.addElementProcessor(new SetCookieFromField());
+ processors.addElementProcessor(new SetFieldFromCookie());
+
+ // new, alpha, processors
+ processors.addElementProcessor(new Localization());
+ processors.addElementProcessor(new SetLocalization());
+
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/BlockContent.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/BlockContent.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/BlockContent.java
deleted file mode 100644
index 836ae60..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/BlockContent.java
+++ /dev/null
@@ -1,23 +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.scimpi.dispatcher;
-
-public interface BlockContent {
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/DispatchException.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/DispatchException.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/DispatchException.java
index cc679ae..25eadbc 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/DispatchException.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/DispatchException.java
@@ -19,6 +19,9 @@
package org.apache.isis.viewer.scimpi.dispatcher;
+import org.apache.isis.viewer.scimpi.ScimpiException;
+
+
public class DispatchException extends ScimpiException {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Dispatcher.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Dispatcher.java
index 045536e..f5e2e5e 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Dispatcher.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Dispatcher.java
@@ -23,7 +23,6 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
-import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -39,6 +38,7 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.config.ConfigurationConstants;
import org.apache.isis.core.commons.debug.DebugBuilder;
+import org.apache.isis.core.commons.debug.Debuggable;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.factory.InstanceUtil;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -50,41 +50,55 @@ import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
import org.apache.isis.core.runtime.userprofile.UserLocalization;
+import org.apache.isis.viewer.scimpi.DebugHtmlWriter;
+import org.apache.isis.viewer.scimpi.ForbiddenException;
+import org.apache.isis.viewer.scimpi.Names;
+import org.apache.isis.viewer.scimpi.NotLoggedInException;
+import org.apache.isis.viewer.scimpi.ScimpiException;
import org.apache.isis.viewer.scimpi.dispatcher.action.ActionAction;
-import org.apache.isis.viewer.scimpi.dispatcher.context.RequestContext;
-import org.apache.isis.viewer.scimpi.dispatcher.context.RequestContext.Debug;
-import org.apache.isis.viewer.scimpi.dispatcher.context.RequestContext.Scope;
-import org.apache.isis.viewer.scimpi.dispatcher.debug.DebugAction;
-import org.apache.isis.viewer.scimpi.dispatcher.debug.DebugUserAction;
-import org.apache.isis.viewer.scimpi.dispatcher.debug.DebugUsers;
-import org.apache.isis.viewer.scimpi.dispatcher.debug.DebugHtmlWriter;
-import org.apache.isis.viewer.scimpi.dispatcher.debug.LogAction;
-import org.apache.isis.viewer.scimpi.dispatcher.edit.EditAction;
-import org.apache.isis.viewer.scimpi.dispatcher.edit.RemoveAction;
-import org.apache.isis.viewer.scimpi.dispatcher.logon.LogonAction;
-import org.apache.isis.viewer.scimpi.dispatcher.logon.LogoutAction;
+import org.apache.isis.viewer.scimpi.dispatcher.action.DebugAction;
+import org.apache.isis.viewer.scimpi.dispatcher.action.DebugUserAction;
+import org.apache.isis.viewer.scimpi.dispatcher.action.EditAction;
+import org.apache.isis.viewer.scimpi.dispatcher.action.LogAction;
+import org.apache.isis.viewer.scimpi.dispatcher.action.LogonAction;
+import org.apache.isis.viewer.scimpi.dispatcher.action.LogoutAction;
+import org.apache.isis.viewer.scimpi.dispatcher.action.RemoveAction;
+import org.apache.isis.viewer.scimpi.dispatcher.context.Action;
+import org.apache.isis.viewer.scimpi.dispatcher.context.ErrorCollator;
+import org.apache.isis.viewer.scimpi.dispatcher.context.Request;
+import org.apache.isis.viewer.scimpi.dispatcher.context.Request.Debug;
+import org.apache.isis.viewer.scimpi.dispatcher.context.Request.Scope;
+import org.apache.isis.viewer.scimpi.dispatcher.processor.ElementProcessor;
import org.apache.isis.viewer.scimpi.dispatcher.processor.Encoder;
import org.apache.isis.viewer.scimpi.dispatcher.processor.HtmlFileParser;
import org.apache.isis.viewer.scimpi.dispatcher.processor.ProcessorLookup;
-import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
import org.apache.isis.viewer.scimpi.dispatcher.processor.SimpleEncoder;
+import org.apache.isis.viewer.scimpi.dispatcher.processor.Snippet;
import org.apache.isis.viewer.scimpi.dispatcher.processor.TagProcessingException;
+import org.apache.isis.viewer.scimpi.dispatcher.processor.TagProcessor;
import org.apache.isis.viewer.scimpi.dispatcher.util.MethodsUtils;
-import org.apache.isis.viewer.scimpi.dispatcher.view.Snippet;
+import org.apache.isis.viewer.scimpi.security.DebugUsers;
+import org.apache.isis.viewer.scimpi.security.UserManager;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
-public class Dispatcher {
+public class Dispatcher implements Debuggable {
private static final String SHOW_UNSHOWN_MESSAGES = ConfigurationConstants.ROOT + "scimpi.show-unshown-messages";
+ @Deprecated
public static final String ACTION = "_action";
+ @Deprecated
public static final String EDIT = "_edit";
+ @Deprecated
public static final String REMOVE = "_remove";
+ @Deprecated
public static final String GENERIC = "_generic";
+ @Deprecated
public static final String EXTENSION = "shtml";
private static final Logger LOG = Logger.getLogger(Dispatcher.class);
+ @Deprecated
public static final String COMMAND_ROOT = ".app";
private final Map<String, Action> actions = new HashMap<String, Action>();
private final Map<String, String> parameters = new HashMap<String, String>();
@@ -93,37 +107,37 @@ public class Dispatcher {
private final Encoder encoder = new SimpleEncoder();
private boolean showUnshownMessages;
- public void process(final RequestContext context, final String servletPath) {
+ public void process(final Request request, final Response response, final String servletPath) {
LOG.debug("processing request " + servletPath);
- final AuthenticationSession session = UserManager.startRequest(context);
- LOG.debug("exsiting session: " + session);
+ final AuthenticationSession session = UserManager.startRequest(request.getSession());
+ LOG.debug(" using session: " + session);
- String language = (String) context.getVariable("user-language");
+ String language = (String) request.getVariable("user-language");
if (language != null) {
Locale locale = Util.locale(language);
- TimeZone timeZone = Util.timeZone((String) context.getVariable("user-time-zone"));
+ TimeZone timeZone = Util.timeZone((String) request.getVariable("user-time-zone"));
IsisContext.getUserProfile().setLocalization(new UserLocalization(locale, timeZone));
}
IsisContext.getPersistenceSession().getTransactionManager().startTransaction();
- context.setRequestPath(servletPath);
- context.startRequest();
+ request.setRequestPath(servletPath);
+ request.startRequest();
try {
- processActions(context, false, servletPath);
- processTheView(context);
+ processActions(request, false, servletPath);
+ processTheView(request);
} catch (final ScimpiNotFoundException e) {
- if (context.isInternalRequest()) {
+ if (request.isInternalRequest()) {
LOG.error("invalid page request (from within application): " + e.getMessage());
ErrorCollator error = new ErrorCollator();
error.missingFile("Failed to find page " + servletPath + ".");
- show500ErrorPage(context, e, error);
+ show500ErrorPage(request, e, error);
} else {
LOG.info("invalid page request (from outside application): " + e.getMessage());
- show404ErrorPage(context, servletPath);
+ show404ErrorPage(request, servletPath);
}
} catch (final NotLoggedInException e) {
- redirectToLoginPage(context);
+ redirectToLoginPage(request);
} catch (final Throwable e) {
ErrorCollator error = new ErrorCollator();
final PersistenceSession checkSession = IsisContext.getPersistenceSession();
@@ -136,25 +150,25 @@ public class Dispatcher {
final Throwable ex = e instanceof TagProcessingException ? e.getCause() : e;
if (ex instanceof ForbiddenException) {
LOG.error("invalid access to " + servletPath, e);
- show403ErrorPage(context, error, e, ex);
+ show403ErrorPage(request, error, e, ex);
} else {
LOG.error("error procesing " + servletPath, e);
- if (context.getErrorMessage() != null) {
- fallbackToSimpleErrorPage(context, e);
+ if (request.getErrorMessage() != null) {
+ fallbackToSimpleErrorPage(request, e);
} else {
- show500ErrorPage(context, e, error);
+ show500ErrorPage(request, e, error);
}
}
} finally {
try {
- UserManager.endRequest(context.getSession());
+ UserManager.endRequest(request.getSession());
} catch (final Exception e1) {
LOG.error("endRequest call failed", e1);
}
}
}
- private void redirectToLoginPage(final RequestContext context) {
+ private void redirectToLoginPage(final Request context) {
IsisContext.getMessageBroker().addWarning(
"You are not currently logged in! Please log in so you can continue.");
context.setRequestPath("/login.shtml");
@@ -165,13 +179,13 @@ public class Dispatcher {
}
}
- private void show404ErrorPage(final RequestContext context, final String servletPath) {
+ private void show404ErrorPage(final Request context, final String servletPath) {
ErrorCollator error = new ErrorCollator();
error.missingFile("Failed to find page " + servletPath + ".");
context.raiseError(404, error);
}
- private void show403ErrorPage(final RequestContext context, ErrorCollator error, final Throwable e, final Throwable ex) {
+ private void show403ErrorPage(final Request context, ErrorCollator error, final Throwable e, final Throwable ex) {
DebugBuilder debug = error.getDebug();
error.message(e);
error.message(ex);
@@ -195,13 +209,13 @@ public class Dispatcher {
context.raiseError(403, error);
}
- private void show500ErrorPage(final RequestContext context, final Throwable e, ErrorCollator error) {
+ private void show500ErrorPage(final Request context, final Throwable e, ErrorCollator error) {
error.exception(e);
error.compileError(context);
context.raiseError(500, error);
}
- private void fallbackToSimpleErrorPage(final RequestContext context, final Throwable e) {
+ private void fallbackToSimpleErrorPage(final Request context, final Throwable e) {
context.setContentType("text/html");
final PrintWriter writer = context.getWriter();
writer.write("<html><head><title>Error</title></head>");
@@ -213,7 +227,7 @@ public class Dispatcher {
LOG.error("Error while processing error", e);
}
- protected void processTheView(final RequestContext context) throws IOException {
+ protected void processTheView(final Request context) throws IOException {
IsisTransactionManager transactionManager = IsisContext.getPersistenceSession().getTransactionManager();
if (transactionManager.getTransaction().getState().canFlush()) {
transactionManager.flushTransaction();
@@ -239,7 +253,7 @@ public class Dispatcher {
return parameters.get(name);
}
- private void processActions(final RequestContext context, final boolean userLoggedIn, final String actionName) throws IOException {
+ private void processActions(final Request context, final boolean userLoggedIn, final String actionName) throws IOException {
if (actionName.endsWith(COMMAND_ROOT)) {
final int pos = actionName.lastIndexOf('/');
final Action action = actions.get(actionName.substring(pos, actionName.length() - COMMAND_ROOT.length()));
@@ -256,7 +270,7 @@ public class Dispatcher {
}
}
- private void processView(final RequestContext context) throws IOException {
+ private void processView(final Request context) throws IOException {
String file = context.getRequestedFile();
if (file == null) {
LOG.warn("No view specified to process");
@@ -274,10 +288,10 @@ public class Dispatcher {
context.addVariable("title", "Untitled Page", Scope.REQUEST);
final Stack<Snippet> tags = loadPageTemplate(context, fullPath);
- final Request request = new Request(file, context, encoder, tags, processors);
- request.appendDebug("processing " + fullPath);
+ final TagProcessor tagProcessor = new TagProcessor(file, context, encoder, tags, processors);
+ tagProcessor.appendDebug("processing " + fullPath);
try {
- request.processNextTag();
+ tagProcessor.processNextTag();
noteIfMessagesHaveNotBeenDisplay(context);
IsisContext.getUpdateNotifier().clear();
} catch (final RuntimeException e) {
@@ -286,7 +300,7 @@ public class Dispatcher {
IsisContext.getUpdateNotifier().clear();
throw e;
}
- final String page = request.popBuffer();
+ final String page = tagProcessor.popBuffer();
final PrintWriter writer = context.getWriter();
writer.write(page);
if (context.getDebug() == Debug.PAGE) {
@@ -295,7 +309,7 @@ public class Dispatcher {
}
}
- public void noteIfMessagesHaveNotBeenDisplay(final RequestContext context) {
+ public void noteIfMessagesHaveNotBeenDisplay(final Request context) {
final List<String> messages = IsisContext.getMessageBroker().getMessages();
if (showUnshownMessages) {
if (messages.size() > 0) {
@@ -316,43 +330,43 @@ public class Dispatcher {
}
}
- private String determineFile(final RequestContext context, String file) {
+ private String determineFile(final Request context, String file) {
final String fileName = file.trim();
- if (fileName.startsWith(GENERIC)) {
- final Object result = context.getVariable(RequestContext.RESULT);
+ if (fileName.startsWith(Names.GENERIC)) {
+ final Object result = context.getVariable(Names.RESULT);
final ObjectAdapter mappedObject = MethodsUtils.findObject(context, (String) result);
if (mappedObject == null) {
throw new ScimpiException("No object mapping for " + result);
}
- if (fileName.equals(GENERIC + "." + EXTENSION)) {
+ if (fileName.equals(Names.GENERIC + "." + Names.EXTENSION)) {
final Facet facet = mappedObject.getSpecification().getFacet(CollectionFacet.class);
if (facet != null) {
final ObjectSpecification specification = mappedObject.getSpecification();
final TypeOfFacet facet2 = specification.getFacet(TypeOfFacet.class);
- file = findFileForSpecification(context, facet2.valueSpec(), "collection", EXTENSION);
+ file = findFileForSpecification(context, facet2.valueSpec(), "collection", Names.EXTENSION);
} else {
final ObjectAdapter mappedObject2 = mappedObject;
if (mappedObject2.isTransient()) {
- file = findFileForSpecification(context, mappedObject.getSpecification(), "edit", EXTENSION);
+ file = findFileForSpecification(context, mappedObject.getSpecification(), "edit", Names.EXTENSION);
} else {
- file = findFileForSpecification(context, mappedObject.getSpecification(), "object", EXTENSION);
+ file = findFileForSpecification(context, mappedObject.getSpecification(), "object", Names.EXTENSION);
}
}
- } else if (fileName.equals(GENERIC + EDIT + "." + EXTENSION)) {
- file = findFileForSpecification(context, mappedObject.getSpecification(), "edit", EXTENSION);
- } else if (fileName.equals(GENERIC + ACTION + "." + EXTENSION)) {
+ } else if (fileName.equals(Names.GENERIC + Names.EDIT + "." + Names.EXTENSION)) {
+ file = findFileForSpecification(context, mappedObject.getSpecification(), "edit", Names.EXTENSION);
+ } else if (fileName.equals(Names.GENERIC + Names.ACTION + "." + Names.EXTENSION)) {
final String method = context.getParameter("method");
- file = findFileForSpecification(context, mappedObject.getSpecification(), method, "action", EXTENSION);
+ file = findFileForSpecification(context, mappedObject.getSpecification(), method, "action", Names.EXTENSION);
}
}
return file;
}
- private String findFileForSpecification(final RequestContext context, final ObjectSpecification specification, final String name, final String extension) {
+ private String findFileForSpecification(final Request context, final ObjectSpecification specification, final String name, final String extension) {
return findFileForSpecification(context, specification, name, name, extension);
}
- private String findFileForSpecification(final RequestContext context, final ObjectSpecification specification, final String name, final String defaultName, final String extension) {
+ private String findFileForSpecification(final Request context, final ObjectSpecification specification, final String name, final String defaultName, final String extension) {
String find = findFile(context, specification, name, extension);
if (find == null) {
@@ -361,7 +375,7 @@ public class Dispatcher {
return find;
}
- private String findFile(final RequestContext context, final ObjectSpecification specification, final String name, final String extension) {
+ private String findFile(final Request context, final ObjectSpecification specification, final String name, final String extension) {
final String className = specification.getShortIdentifier();
String fileName = context.findFile("/" + className + "/" + name + "." + extension);
if (fileName == null) {
@@ -379,14 +393,14 @@ public class Dispatcher {
return fileName;
}
- private Stack<Snippet> loadPageTemplate(final RequestContext context, final String path) throws IOException, FileNotFoundException {
+ private Stack<Snippet> loadPageTemplate(final Request context, final String path) throws IOException, FileNotFoundException {
// TODO cache stacks and check for them first
copyParametersToVariableList(context);
LOG.debug("parsing source " + path);
return parser.parseHtmlFile(path, context);
}
- private void copyParametersToVariableList(final RequestContext context) {
+ private void copyParametersToVariableList(final Request context) {
/*
* Enumeration parameterNames = context.getParameterNames(); while
* (parameterNames.hasMoreElements()) { String name = (String)
@@ -418,7 +432,7 @@ public class Dispatcher {
}
}
- processors.init();
+ AddElementProcessors.init(processors);
processors.addElementProcessor(new org.apache.isis.viewer.scimpi.dispatcher.view.debug.Debug(this));
showUnshownMessages = IsisContext.getConfiguration().getBoolean(SHOW_UNSHOWN_MESSAGES, true);
@@ -463,7 +477,7 @@ public class Dispatcher {
action.init();
}
- public void debug(final DebugBuilder debug) {
+ public void debugData(final DebugBuilder debug) {
debug.startSection("Actions");
final Set<String> keySet = actions.keySet();
final ArrayList<String> list = new ArrayList<String>(keySet);
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementContentProcessor.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementContentProcessor.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementContentProcessor.java
deleted file mode 100644
index eaae2ac..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementContentProcessor.java
+++ /dev/null
@@ -1,24 +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.scimpi.dispatcher;
-
-public interface ElementContentProcessor extends ElementProcessor {
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementProcessor.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementProcessor.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementProcessor.java
deleted file mode 100644
index 471ac00..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ElementProcessor.java
+++ /dev/null
@@ -1,30 +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.scimpi.dispatcher;
-
-import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
-
-public interface ElementProcessor {
-
- String getName();
-
- void process(Request request);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ErrorCollator.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ErrorCollator.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ErrorCollator.java
deleted file mode 100644
index 4c162a2..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ErrorCollator.java
+++ /dev/null
@@ -1,146 +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.scimpi.dispatcher;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.PrintWriter;
-import java.util.List;
-
-import org.apache.isis.core.commons.config.ConfigurationConstants;
-import org.apache.isis.core.commons.debug.DebugBuilder;
-import org.apache.isis.core.commons.debug.DebugHtmlString;
-import org.apache.isis.core.commons.debug.DebugString;
-import org.apache.isis.core.commons.debug.DebugTee;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.scimpi.dispatcher.context.RequestContext;
-import org.apache.isis.viewer.scimpi.dispatcher.debug.DebugHtmlWriter;
-import org.apache.log4j.Logger;
-
-public class ErrorCollator {
- private static final Logger LOG = Logger.getLogger(ErrorCollator.class);
-
- private String errorRef;
- private String message;
- private final DebugString debugText = new DebugString();
- private final DebugHtmlString debugHtml = new DebugHtmlString();
- private final DebugBuilder debug = new DebugTee(debugText, debugHtml);
-
- public void missingFile(String message) {
- this.message = message;
- }
-
- public void message(final Throwable exception) {
- LOG.debug(exception.getMessage(), exception);
- message = exception.getMessage();
- debug.appendPreformatted(message);
- }
-
- public void exception(final Throwable exception) {
- String messageText = exception.getMessage();
- LOG.debug(messageText, exception);
- try {
- debug.startSection("Exception");
- debug.appendException(exception);
- debug.endSection();
- } catch (final RuntimeException e) {
- debug.appendln("NOTE - an exception occurred while dumping an exception!");
- debug.appendException(e);
- }
- message = messageText == null ? exception.getClass().getName() : messageText;
- }
-
- public DebugBuilder getDebug() {
- return debug;
- }
-
- public void compileError(final RequestContext requestContext) {
- errorRef = Long.toString(System.currentTimeMillis(), 36).toUpperCase();
- LOG.info("error " + errorRef);
-
- captureWarningsAndMessages();
- dumpDebugDetails(requestContext);
- writeErrorFile();
- }
-
- private void captureWarningsAndMessages() {
- // Capture warnings/messages
- if (IsisContext.getCurrentTransaction() != null) {
- final List<String> messages = IsisContext.getMessageBroker().getMessages();
- final List<String> warnings = IsisContext.getMessageBroker().getWarnings();
- if (messages.size() > 0 || messages.size() > 0) {
- debug.startSection("Warnings/Messages");
- for (final String message : messages) {
- debug.appendln("message", message);
- }
- for (final String message : warnings) {
- debug.appendln("warning", message);
- }
- }
- }
- }
-
- private void dumpDebugDetails(final RequestContext requestContext) {
- // Dump page debug details
- requestContext.append(debug);
-
- debug.startSection("Processing Trace");
- debug.appendPreformatted(requestContext.getDebugTrace());
- debug.endSection();
- debug.close();
- }
-
- private void writeErrorFile() {
- LOG.error(message + "\n" + debugText.toString());
-
-
- PrintWriter writer;
- try {
- final String directory =
- IsisContext.getConfiguration().getString(ConfigurationConstants.ROOT + "scimpi.error-snapshots", ".");
- File dir = new File(directory);
- if (!dir.exists()) {
- dir.mkdirs();
- }
- writer = new PrintWriter(new File(dir, "error_" + errorRef + ".html"));
- final DebugHtmlWriter writer2 = new DebugHtmlWriter(writer, true);
- writer2.concat(debugHtml);
- writer2.close();
- writer.close();
- } catch (final FileNotFoundException e) {
- LOG.error("Failed to archive error page", e);
- }
- }
-
- public String getReference() {
- return errorRef;
- }
-
- public String getDetails() {
- return debugHtml.toString();
- }
-
- public String getMessage() {
- return message;
- }
-
-
-}
-
http://git-wip-us.apache.org/repos/asf/isis/blob/49518c89/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ForbiddenException.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ForbiddenException.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ForbiddenException.java
deleted file mode 100644
index 32d0c0c..0000000
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/ForbiddenException.java
+++ /dev/null
@@ -1,68 +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.scimpi.dispatcher;
-
-import java.util.List;
-
-import org.apache.isis.applib.Identifier;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-
-/**
- * Indicates that request could not complete as it could not access (for
- * security reasons) some of the content.
- */
-public class ForbiddenException extends ScimpiException {
- private static final long serialVersionUID = 1L;
- public static final boolean VISIBLE_AND_USABLE = true;
- public static final boolean VISIBLE = false;
- private final Identifier identifier;
- private final AuthenticationSession session;
-
- public ForbiddenException(final String message) {
- this(IsisContext.getAuthenticationSession(), message);
- }
-
- private ForbiddenException(final AuthenticationSession session, final String message) {
- super(message + " for " + session.getUserName() + " " + session.getRoles());
- this.session = session;
- identifier = null;
- }
-
- public ForbiddenException(final IdentifiedHolder target, final boolean isVisibleAndUsabable) {
- this(target.getIdentifier(), IsisContext.getAuthenticationSession(), isVisibleAndUsabable);
- }
-
- private ForbiddenException(final Identifier identifier, final AuthenticationSession session, final boolean isVisibleAndUsabable) {
- super((identifier.getType() == Identifier.Type.PROPERTY_OR_COLLECTION ? "Field" : "Action") + " '" + identifier.getMemberName() + "' in " + identifier.getClassName() + " is not " + (isVisibleAndUsabable ? "visible/usable " : "visible") + " for " + session.getUserName() + " "
- + session.getRoles());
- this.identifier = identifier;
- this.session = session;
- }
-
- public Identifier getIdentifier() {
- return identifier;
- }
-
- public List<String> getRoles() {
- return session.getRoles();
- }
-}