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 2011/04/26 20:24:13 UTC
svn commit: r1096837 [14/14] - in /incubator/isis/trunk:
core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/
core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/map/
core/metamodel/src/main/java/org/apache/isis/core/met...
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java Tue Apr 26 18:24:05 2011
@@ -17,9 +17,8 @@
* under the License.
*/
+package org.apache.isis.core.metamodel.util;
-package org.apache.isis.core.metamodel.util;
-
import java.util.List;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -42,22 +41,22 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import com.google.common.collect.Lists;
-
-public final class Dump {
-
- private static DebugBuilder debugBuilder;
-
- private Dump() {}
-
-
- ///////////////////////////////////////////////////////////////////////
- // specification
- ///////////////////////////////////////////////////////////////////////
-
- /**
- * @see #specification(ObjectAdapter, DebugBuilder)
- * @see #specification(ObjectSpecification, DebugBuilder)
- */
+
+public final class Dump {
+
+ private static DebugBuilder debugBuilder;
+
+ private Dump() {
+ }
+
+ // /////////////////////////////////////////////////////////////////////
+ // specification
+ // /////////////////////////////////////////////////////////////////////
+
+ /**
+ * @see #specification(ObjectAdapter, DebugBuilder)
+ * @see #specification(ObjectSpecification, DebugBuilder)
+ */
public static String specification(final ObjectAdapter adapter) {
final DebugBuilder debugBuilder = new DebugString();
specification(adapter, debugBuilder);
@@ -69,14 +68,13 @@ public final class Dump {
* {@link ObjectSpecification} ( {@link ObjectAdapter#getSpecification()}) of the provided {@link ObjectAdapter}
*
* @see #specification(ObjectAdapter)
- * @see #specification(ObjectSpecification, DebugBuilder)
+ * @see #specification(ObjectSpecification, DebugBuilder)
*/
public static void specification(final ObjectAdapter adapter, final DebugBuilder debugBuilder) {
final ObjectSpecification specification = adapter.getSpecification();
specification(specification, debugBuilder);
}
-
public static void specification(final ObjectSpecification specification, final DebugBuilder debugBuilder) {
try {
debugBuilder.appendTitle(specification.getClass().getName());
@@ -116,8 +114,7 @@ public final class Dump {
if (facetTypes.length == 0) {
debugBuilder.appendln("none");
} else {
- for (int i = 0; i < facetTypes.length; i++) {
- final Class<? extends Facet> type = facetTypes[i];
+ for (final Class<? extends Facet> type : facetTypes) {
final Facet facet = specification.getFacet(type);
debugBuilder.appendln(facet.toString());
}
@@ -149,7 +146,8 @@ public final class Dump {
return names;
}
- private static void specificationActionMethods(final ObjectSpecification specification, final DebugBuilder debugBuilder) {
+ private static void specificationActionMethods(final ObjectSpecification specification,
+ final DebugBuilder debugBuilder) {
try {
final List<ObjectAction> userActions = specification.getObjectActions(ActionType.USER);
final List<ObjectAction> explActions = specification.getObjectActions(ActionType.EXPLORATION);
@@ -161,13 +159,14 @@ public final class Dump {
}
}
- private static void specificationServiceMethods(final ObjectSpecification specification, final DebugBuilder debugBuilder) {
+ private static void specificationServiceMethods(final ObjectSpecification specification,
+ final DebugBuilder debugBuilder) {
try {
final List<ObjectAction> userActions = specification.getServiceActionsReturning(ActionType.USER);
final List<ObjectAction> explActions = specification.getServiceActionsReturning(ActionType.EXPLORATION);
final List<ObjectAction> prototypeActions = specification.getServiceActionsReturning(ActionType.PROTOTYPE);
final List<ObjectAction> debActions = specification.getServiceActionsReturning(ActionType.DEBUG);
- specificationMethods(userActions, explActions, prototypeActions,debActions, debugBuilder);
+ specificationMethods(userActions, explActions, prototypeActions, debActions, debugBuilder);
} catch (final RuntimeException e) {
debugBuilder.appendException(e);
}
@@ -182,8 +181,8 @@ public final class Dump {
}
debugBuilder.unindent();
- final List<ObjectAssociation> fields2 = specification
- .getAssociations(ObjectAssociationFilters.STATICALLY_VISIBLE_ASSOCIATIONS);
+ final List<ObjectAssociation> fields2 =
+ specification.getAssociations(ObjectAssociationFilters.STATICALLY_VISIBLE_ASSOCIATIONS);
debugBuilder.appendln("Static");
debugBuilder.indent();
for (int i = 0; i < fields2.size(); i++) {
@@ -208,20 +207,22 @@ public final class Dump {
}
final String help = field.getHelp();
if (help != null && !help.equals("")) {
- debugBuilder
- .appendln("Help", help.substring(0, Math.min(30, help.length()))
- + (help.length() > 30 ? "..." : ""));
+ debugBuilder.appendln("Help", help.substring(0, Math.min(30, help.length()))
+ + (help.length() > 30 ? "..." : ""));
}
debugBuilder.appendln("ID", field.getIdentifier());
debugBuilder.appendln("Short ID", field.getId());
debugBuilder.appendln("Name", field.getName());
- final String type = field.isOneToManyAssociation() ? "Collection" : field.isOneToOneAssociation() ? "Object" : "Unknown";
+ final String type =
+ field.isOneToManyAssociation() ? "Collection" : field.isOneToOneAssociation() ? "Object"
+ : "Unknown";
debugBuilder.appendln("Type", type);
debugBuilder.appendln("Has identity", !field.getSpecification().isCollectionOrIsAggregated());
debugBuilder.appendln("Spec", field.getSpecification().getFullIdentifier());
- debugBuilder.appendln("Flags", (field.isAlwaysHidden() ? "" : "Visible ")
+ debugBuilder
+ .appendln("Flags", (field.isAlwaysHidden() ? "" : "Visible ")
+ (field.isNotPersisted() ? "Not Persisted " : " ")
+ (field.isMandatory() ? "Mandatory " : ""));
@@ -230,8 +231,8 @@ public final class Dump {
debugBuilder.appendln("Facets");
debugBuilder.indent();
boolean none = true;
- for (int j = 0; j < facets.length; j++) {
- debugBuilder.appendln(field.getFacet(facets[j]).toString());
+ for (final Class<? extends Facet> facet : facets) {
+ debugBuilder.appendln(field.getFacet(facet).toString());
none = false;
}
if (none) {
@@ -251,13 +252,11 @@ public final class Dump {
}
- private static void specificationMethods(
- final List<ObjectAction> userActions,
- final List<ObjectAction> explActions,
- final List<ObjectAction> prototypeActions,
- final List<ObjectAction> debugActions,
- final DebugBuilder debugBuilder) {
- if (userActions.size() == 0 && explActions.size() == 0 && prototypeActions.size() == 0 && debugActions.size() == 0) {
+ private static void specificationMethods(final List<ObjectAction> userActions,
+ final List<ObjectAction> explActions, final List<ObjectAction> prototypeActions,
+ final List<ObjectAction> debugActions, final DebugBuilder debugBuilder) {
+ if (userActions.size() == 0 && explActions.size() == 0 && prototypeActions.size() == 0
+ && debugActions.size() == 0) {
debugBuilder.appendln("no actions...");
} else {
appendActionDetails(debugBuilder, "User actions", userActions);
@@ -267,22 +266,20 @@ public final class Dump {
}
}
- private static void appendActionDetails(final DebugBuilder debug, String desc,
- List<ObjectAction> actions) {
- debug.appendln(desc);
- debug.indent();
- for (int i = 0; i < actions.size(); i++) {
- actionDetails(actions.get(i), 8, i, debug);
- }
- debug.unindent();
- }
-
- private static void actionDetails(
- final ObjectAction objectAction,
- final int indent,
- final int count,
- final DebugBuilder debugBuilder) {
- debugBuilder.appendln((count + 1) + "." + objectAction.getId() + " (" + objectAction.getClass().getName() + ")");
+ private static void appendActionDetails(final DebugBuilder debug, final String desc,
+ final List<ObjectAction> actions) {
+ debug.appendln(desc);
+ debug.indent();
+ for (int i = 0; i < actions.size(); i++) {
+ actionDetails(actions.get(i), 8, i, debug);
+ }
+ debug.unindent();
+ }
+
+ private static void actionDetails(final ObjectAction objectAction, final int indent, final int count,
+ final DebugBuilder debugBuilder) {
+ debugBuilder
+ .appendln((count + 1) + "." + objectAction.getId() + " (" + objectAction.getClass().getName() + ")");
debugBuilder.indent();
final int newIndent = indent + 4;
try {
@@ -308,8 +305,8 @@ public final class Dump {
if (facets.length > 0) {
debugBuilder.appendln("Facets");
debugBuilder.indent();
- for (int j = 0; j < facets.length; j++) {
- debugBuilder.appendln(objectAction.getFacet(facets[j]).toString());
+ for (final Class<? extends Facet> facet : facets) {
+ debugBuilder.appendln(objectAction.getFacet(facet).toString());
}
debugBuilder.unindent();
}
@@ -331,8 +328,8 @@ public final class Dump {
debugBuilder.appendln(")");
debugBuilder.indent();
final Class<? extends Facet>[] parameterFacets = p.get(j).getFacetTypes();
- for (int i = 0; i < parameterFacets.length; i++) {
- debugBuilder.appendln(p.get(j).getFacet(parameterFacets[i]).toString());
+ for (final Class<? extends Facet> parameterFacet : parameterFacets) {
+ debugBuilder.appendln(p.get(j).getFacet(parameterFacet).toString());
}
debugBuilder.unindent();
}
@@ -369,9 +366,9 @@ public final class Dump {
return str.toString();
}
- ///////////////////////////////////////////////////////////////////////
- // adapter
- ///////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////
+ // adapter
+ // /////////////////////////////////////////////////////////////////////
/**
* @see #adapter(ObjectAdapter, DebugBuilder)
@@ -385,9 +382,7 @@ public final class Dump {
/**
* @see #adapter(ObjectAdapter)
*/
- public static void adapter(
- final ObjectAdapter adapter,
- final DebugBuilder builder) {
+ public static void adapter(final ObjectAdapter adapter, final DebugBuilder builder) {
try {
builder.appendln("Adapter", adapter.getClass().getName());
builder.appendln("Class", adapter.getObject() == null ? "none" : adapter.getObject().getClass().getName());
@@ -402,24 +397,23 @@ public final class Dump {
builder.appendln("OID", adapter.getOid());
builder.appendln("State", adapter.getResolveState());
builder.appendln("Version", adapter.getVersion());
-
+
} catch (final RuntimeException e) {
builder.appendException(e);
}
}
+ // /////////////////////////////////////////////////////////////////////
+ // graph
+ // /////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////
- // graph
- ///////////////////////////////////////////////////////////////////////
-
/**
* Creates an ascii object graph diagram for the specified object, up to three levels deep.
*
* @see #graph(ObjectAdapter, AuthenticationSession, DebugBuilder)
*/
- public static String graph(final ObjectAdapter adapter, AuthenticationSession authenticationSession) {
+ public static String graph(final ObjectAdapter adapter, final AuthenticationSession authenticationSession) {
debugBuilder = new DebugString();
graph(adapter, authenticationSession, debugBuilder);
return debugBuilder.toString();
@@ -430,11 +424,12 @@ public final class Dump {
*
* @see #graph(ObjectAdapter, AuthenticationSession)
*/
- public static void graph(final ObjectAdapter object, AuthenticationSession authenticationSession, final DebugBuilder debugBuilder) {
+ public static void graph(final ObjectAdapter object, final AuthenticationSession authenticationSession,
+ final DebugBuilder debugBuilder) {
simpleObject(object, debugBuilder);
debugBuilder.appendln();
debugBuilder.append(object);
- graph(object, 0, Lists.<ObjectAdapter>newArrayList(), authenticationSession, debugBuilder);
+ graph(object, 0, Lists.<ObjectAdapter> newArrayList(), authenticationSession, debugBuilder);
}
private static void simpleObject(final ObjectAdapter collectionAdapter, final DebugBuilder debugBuilder) {
@@ -443,13 +438,13 @@ public final class Dump {
if (objectSpec.isCollection()) {
final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collectionAdapter);
int i = 1;
- for (ObjectAdapter element : facet.collection(collectionAdapter)) {
+ for (final ObjectAdapter element : facet.collection(collectionAdapter)) {
debugBuilder.appendln(i++ + " " + element.titleString());
}
- } else {
+ } else {
// object is a regular Object
try {
- List<ObjectAssociation> fields = objectSpec.getAssociations();
+ final List<ObjectAssociation> fields = objectSpec.getAssociations();
for (int i = 0; i < fields.size(); i++) {
final ObjectAssociation field = fields.get(i);
final ObjectAdapter obj = field.get(collectionAdapter);
@@ -467,20 +462,16 @@ public final class Dump {
}
}
-
- private static void collectionGraph(
- final ObjectAdapter collectionAdapter,
- final int level,
- final List<ObjectAdapter> ignoreAdapters,
- final AuthenticationSession authenticationSession,
- final DebugBuilder debugBuilder) {
-
- if (ignoreAdapters.contains(collectionAdapter)) {
- debugBuilder.append("*\n");
- } else {
- ignoreAdapters.add(collectionAdapter);
+ private static void collectionGraph(final ObjectAdapter collectionAdapter, final int level,
+ final List<ObjectAdapter> ignoreAdapters, final AuthenticationSession authenticationSession,
+ final DebugBuilder debugBuilder) {
+
+ if (ignoreAdapters.contains(collectionAdapter)) {
+ debugBuilder.append("*\n");
+ } else {
+ ignoreAdapters.add(collectionAdapter);
final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collectionAdapter);
- for (ObjectAdapter element : facet.collection(collectionAdapter)) {
+ for (final ObjectAdapter element : facet.collection(collectionAdapter)) {
graphIndent(level, debugBuilder);
debugBuilder.append(element);
if (ignoreAdapters.contains(element)) {
@@ -488,79 +479,70 @@ public final class Dump {
} else {
graph(element, level + 1, ignoreAdapters, authenticationSession, debugBuilder);
}
- }
- }
- }
-
- private static void graph(
- final ObjectAdapter adapter,
- final int level,
- final List<ObjectAdapter> ignoreAdapters,
- final AuthenticationSession authenticationSession,
- final DebugBuilder debugBuilder) {
- if (level > 3) {
- debugBuilder.appendln("..."); // only go 3 levels?
- } else {
- debugBuilder.append("\n");
- if (adapter.getSpecification().isCollection()) {
- collectionGraph(adapter, level, ignoreAdapters, authenticationSession, debugBuilder);
- } else if (adapter.getSpecification().isNotCollection()) {
- objectGraph(adapter, level, ignoreAdapters, debugBuilder, authenticationSession);
- } else {
- debugBuilder.append("??? " + adapter);
- }
- }
- }
-
- private static void graphIndent(final int level, final DebugBuilder debugBuilder) {
- for (int indent = 0; indent < level; indent++) {
- debugBuilder.append(DebugUtils.indentString(4) + "|");
- }
- debugBuilder.append(DebugUtils.indentString(4) + "+--");
- }
-
- private static void objectGraph(
- final ObjectAdapter adapter,
- final int level,
- final List<ObjectAdapter> ignoreAdapters,
- final DebugBuilder s,
- final AuthenticationSession authenticationSession) {
- ignoreAdapters.add(adapter);
-
- try {
- // work through all its fields
- List<ObjectAssociation> fields = adapter.getSpecification().getAssociations();
- for (int i = 0; i < fields.size(); i++) {
- final ObjectAssociation field = fields.get(i);
- final ObjectAdapter obj = field.get(adapter);
- final String name = field.getId();
- graphIndent(level, s);
-
- if (field.isVisible(authenticationSession, adapter).isVetoed()) {
- s.append(name + ": (not visible)");
- s.append("\n");
- } else {
- if (obj == null) {
- s.append(name + ": null\n");
- /*
- * } else if (obj.getSpecification().isParseable()) { s.append(name + ": " +
- * obj.titleString()); s.append("\n");
- */} else {
- if (ignoreAdapters.contains(obj)) {
- s.append(name + ": " + obj + "*\n");
- } else {
- s.append(name + ": " + obj);
- graph(obj, level + 1, ignoreAdapters, authenticationSession, s);
-
- }
- }
- }
- }
- } catch (final RuntimeException e) {
- s.appendException(e);
- }
- }
-
+ }
+ }
+ }
+
+ private static void graph(final ObjectAdapter adapter, final int level, final List<ObjectAdapter> ignoreAdapters,
+ final AuthenticationSession authenticationSession, final DebugBuilder debugBuilder) {
+ if (level > 3) {
+ debugBuilder.appendln("..."); // only go 3 levels?
+ } else {
+ debugBuilder.append("\n");
+ if (adapter.getSpecification().isCollection()) {
+ collectionGraph(adapter, level, ignoreAdapters, authenticationSession, debugBuilder);
+ } else if (adapter.getSpecification().isNotCollection()) {
+ objectGraph(adapter, level, ignoreAdapters, debugBuilder, authenticationSession);
+ } else {
+ debugBuilder.append("??? " + adapter);
+ }
+ }
+ }
+
+ private static void graphIndent(final int level, final DebugBuilder debugBuilder) {
+ for (int indent = 0; indent < level; indent++) {
+ debugBuilder.append(DebugUtils.indentString(4) + "|");
+ }
+ debugBuilder.append(DebugUtils.indentString(4) + "+--");
+ }
+
+ private static void objectGraph(final ObjectAdapter adapter, final int level,
+ final List<ObjectAdapter> ignoreAdapters, final DebugBuilder s,
+ final AuthenticationSession authenticationSession) {
+ ignoreAdapters.add(adapter);
+
+ try {
+ // work through all its fields
+ final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations();
+ for (int i = 0; i < fields.size(); i++) {
+ final ObjectAssociation field = fields.get(i);
+ final ObjectAdapter obj = field.get(adapter);
+ final String name = field.getId();
+ graphIndent(level, s);
+
+ if (field.isVisible(authenticationSession, adapter).isVetoed()) {
+ s.append(name + ": (not visible)");
+ s.append("\n");
+ } else {
+ if (obj == null) {
+ s.append(name + ": null\n");
+ /*
+ * } else if (obj.getSpecification().isParseable()) { s.append(name + ": " + obj.titleString());
+ * s.append("\n");
+ */} else {
+ if (ignoreAdapters.contains(obj)) {
+ s.append(name + ": " + obj + "*\n");
+ } else {
+ s.append(name + ": " + obj);
+ graph(obj, level + 1, ignoreAdapters, authenticationSession, s);
+
+ }
+ }
+ }
+ }
+ } catch (final RuntimeException e) {
+ s.appendException(e);
+ }
+ }
-
-}
+}
Modified: incubator/isis/trunk/progmodels/src/docbkx/guide/isis-progmodels.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/progmodels/src/docbkx/guide/isis-progmodels.xml?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/progmodels/src/docbkx/guide/isis-progmodels.xml (original)
+++ incubator/isis/trunk/progmodels/src/docbkx/guide/isis-progmodels.xml Tue Apr 26 18:24:05 2011
@@ -48,7 +48,7 @@
forth. The collection of programming conventions is termed a "programming
model", and is pluggable.</para>
- <para>This documentation describes how to use and customize the default
+ <para>This guide describes how to use and customize the default
programming models, or to use other available programming models (for
example, for other JVM-based languages).</para>
@@ -79,8 +79,12 @@
<listitem>
<para>Wrapper Programming Model</para>
- <para>This part of the guide (see <xref
- linkend="prt.Wrapper" />)</para>
+ <para>The wrapper programming model enables a domain object to be
+ "wrapped" by a proxy so that interactions with it by other domain
+ objects are "as if" through the viewer. This part of the guide
+ (see <xref linkend="prt.Wrapper" />) describes how to configure
+ your application in order that your domain objects can take
+ advantage of this capabilities.</para>
</listitem>
</itemizedlist></para>
</sect1>
@@ -142,7 +146,7 @@
<emphasis>applib</emphasis> <package>[oai:applib]</package> module. If
using the <emphasis>default runtime</emphasis>
<package>[oai.runtimes:dflt]</package> then the Java 5 programming model
- is configured by default . </para>
+ is configured by default .</para>
<para>The chapters in this part of the guide describe:</para>
@@ -374,7 +378,7 @@
<para>writing domain objects in Groovy</para>
<para>Guidance on how to follow the <emphasis>Apache Isis</emphasis>
- coding conventions while programming in Groovy. </para>
+ coding conventions while programming in Groovy.</para>
</listitem>
<listitem>
Modified: incubator/isis/trunk/security/src/docbkx/guide/isis-security.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/security/src/docbkx/guide/isis-security.xml?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/security/src/docbkx/guide/isis-security.xml (original)
+++ incubator/isis/trunk/security/src/docbkx/guide/isis-security.xml Tue Apr 26 18:24:05 2011
@@ -53,22 +53,68 @@
<preface id="preface">
<title>Preface</title>
- <para><emphasis>*** Apache Isis</emphasis> is designed to allow
- programmers rapidly develop domain-driven applications following the
- <ulink url="http://en.wikipedia.org/wiki/Naked_Objects">Naked
- Objects</ulink> pattern. It is made up of a core framework plus a number
- of supporting implementations, and supports various viewers and object
- stores. Apache Isis is hosted at the <ulink
- url="http://incubator.apache.org/isis">Apache Foundation</ulink>, and is
- licensed under <ulink
+ <para><emphasis>Apache Isis</emphasis> is designed to allow programmers
+ rapidly develop domain-driven applications following the <ulink
+ url="http://en.wikipedia.org/wiki/Naked_Objects">Naked Objects</ulink>
+ pattern. It is made up of a core framework that supports supports various
+ viewers, along with <acronym>API</acronym>s and implementations relating
+ to security, the programming model, the runtime (persistence) and profile
+ stores (user preferences). <emphasis>Apache Isis</emphasis> is hosted at
+ the <ulink url="http://incubator.apache.org/isis">Apache
+ Foundation</ulink>, and is licensed under <ulink
url="http://www.apache.org/licenses/LICENSE-2.0.html">Apache Software
License v2</ulink>.</para>
- <para>This guide is written for ...</para>
+ <para>The security <acronym>API</acronym> covers authentication and
+ authorization. A number of different security implementations, and this
+ guide explains how to configure them, as well as how to go about
+ implementing your own implementation.</para>
- <para></para>
+ <sect1>
+ <title>Who this Guide is For</title>
- <para></para>
+ <para>This guide is written for deployers looking to configure
+ <emphasis>Isis</emphasis> to run with a specific existing security
+ implementation, and for programmers wishing to develop their own custom
+ implementation. It is divided into the following parts:<itemizedlist>
+ <listitem>
+ <para>Isis Security Implementations</para>
+
+ <para>This part of the guide (see <xref
+ linkend="prt.IsisImplementations" />) covers the default (Java 5)
+ programming model, how to customize it, and how to extend
+ it.</para>
+ </listitem>
+
+ <listitem>
+ <para>Writing a Custom Implementation</para>
+
+ <para>This part of the guide (see <xref
+ linkend="prt.WritingACustomImplementation" />) describes how to go
+ about writing your own custom implementation of the security
+ <acronym>API</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Configuring the Runtime</para>
+
+ <para>This part of the guide (see <xref
+ linkend="prt.ConfiguringTheRuntime" />) describes how to configure
+ your application to use a specified security
+ implementation.</para>
+ </listitem>
+ </itemizedlist></para>
+ </sect1>
+
+ <sect1>
+ <title>How this Guide relates to other Documentation</title>
+
+ <para>*** todo</para>
+
+ <para>*** x-ref the core docs.</para>
+
+ <para></para>
+ </sect1>
</preface>
<chapter id="chp.SecurityApi">
@@ -177,24 +223,28 @@
</chapter>
<part>
- <title>Default (No-op) Security Implementation</title>
+ <title>Isis Security Implementations</title>
+
+ <partintro>
+ <para>***</para>
+ </partintro>
<chapter>
- <title></title>
+ <title>Default (No-op) Security Implementation</title>
- <section>
- <title></title>
+ <abstract>
+ <para>*** yada yada</para>
+ </abstract>
- <para></para>
- </section>
- </chapter>
- </part>
+ <sect1>
+ <title>***</title>
- <part>
- <title>File Security Implementation</title>
+ <para><emphasis>*** yada yadat</emphasis></para>
+ </sect1>
+ </chapter>
<chapter id="chp.FileIntro">
- <title>Introduction</title>
+ <title>File Security Implementation</title>
<abstract>
<para>*** yada yada</para>
@@ -211,21 +261,12 @@
<para><remark></remark></para>
- <para>x-ref Core documentation.</para>
-
- <para></para>
-
<para></para>
<para>... also, move into the next chapters</para>
<para></para>
- <para>Starting [[NAME]] requires a user name and password . (The
- exception is when running in exploration mode, which uses default
- values). The simplest way to specify the list of user names and
- passwords is in a passwords file.</para>
-
<sect2>
<title>Authentication using a passwords file</title>
@@ -606,13 +647,9 @@ isis.authorization.file.blacklist=disall
</sect2>
</sect1>
</chapter>
- </part>
-
- <part>
- <title>LDAP Security Implementation</title>
<chapter>
- <title>Introduction</title>
+ <title>LDAP Security Implementation</title>
<abstract>
<para>*** yada yada</para>
@@ -802,4 +839,54 @@ isis.authorization=ldap</programlisting>
</sect1>
</chapter>
</part>
+
+ <part>
+ <title>Configuring the Runtime</title>
+
+ <partintro>
+ <para>***</para>
+
+ <para></para>
+ </partintro>
+
+ <chapter>
+ <title>Configuring the Default Runtime</title>
+
+ <abstract>
+ <para>*** yada yada</para>
+ </abstract>
+
+ <para></para>
+
+ <sect1>
+ <title>Exploration Mode</title>
+
+ <para></para>
+
+ <para></para>
+ </sect1>
+
+ <sect1>
+ <title>Prototype Mode</title>
+
+ <para></para>
+
+ <para></para>
+ </sect1>
+ </chapter>
+ </part>
+
+ <part>
+ <title>Implementing a custom Security Implementation</title>
+
+ <chapter>
+ <title></title>
+
+ <section>
+ <title></title>
+
+ <para></para>
+ </section>
+ </chapter>
+ </part>
</book>
Modified: incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml (original)
+++ incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml Tue Apr 26 18:24:05 2011
@@ -284,8 +284,7 @@
<para>To install the free edition, it is necessary to install
the <acronym>GMF</acronym> at the same time (see this <ulink
url="http://www.soyatec.com/forum/viewtopic.php?t=898&sid=1a1388b502a12114e6b8f28d7bbdee2a">forum
- posting</ulink>). Note also that at the time of writing
- Soyatec only supported up to Eclipse 3.5.</para>
+ posting</ulink>).</para>
</listitem>
</itemizedlist>