ace-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r1306968 - in /ace/site/trunk: content/dev-doc/ content/dev-doc/analysis/ content/dev-doc/design/ content/dev-doc/design/src/ content/dev-doc/requirements/ content/dev-doc/requirements/use-cases/ content/dev-doc/use-cases/ templates/
Date Thu, 29 Mar 2012 16:32:23 GMT
Author: marrs
Date: Thu Mar 29 16:32:22 2012
New Revision: 1306968

URL: http://svn.apache.org/viewvc?rev=1306968&view=rev
Log:
Moved some stuff around in the dev-doc folder. Added the first design document.

Added:
    ace/site/trunk/content/dev-doc/analysis/
    ace/site/trunk/content/dev-doc/analysis/index.mdtext
      - copied unchanged from r1306824, ace/site/trunk/content/dev-doc/analysis.mdtext
    ace/site/trunk/content/dev-doc/design/
    ace/site/trunk/content/dev-doc/design/index.mdtext
      - copied unchanged from r1306824, ace/site/trunk/content/dev-doc/design.mdtext
    ace/site/trunk/content/dev-doc/design/remote-interfaces.mdtext
    ace/site/trunk/content/dev-doc/design/remoteinterfaces-components.svg
    ace/site/trunk/content/dev-doc/design/src/
    ace/site/trunk/content/dev-doc/design/src/remoteinterfaces-components.graffle
    ace/site/trunk/content/dev-doc/requirements/
    ace/site/trunk/content/dev-doc/requirements/index.mdtext
      - copied unchanged from r1306824, ace/site/trunk/content/dev-doc/requirements.mdtext
    ace/site/trunk/content/dev-doc/requirements/roles.mdtext
      - copied unchanged from r1306824, ace/site/trunk/content/dev-doc/roles.mdtext
    ace/site/trunk/content/dev-doc/requirements/use-cases/
      - copied from r1306824, ace/site/trunk/content/dev-doc/use-cases/
Removed:
    ace/site/trunk/content/dev-doc/analysis.mdtext
    ace/site/trunk/content/dev-doc/design.mdtext
    ace/site/trunk/content/dev-doc/requirements.mdtext
    ace/site/trunk/content/dev-doc/roles.mdtext
    ace/site/trunk/content/dev-doc/use-cases/
Modified:
    ace/site/trunk/templates/sidenav.html

Added: ace/site/trunk/content/dev-doc/design/remote-interfaces.mdtext
URL: http://svn.apache.org/viewvc/ace/site/trunk/content/dev-doc/design/remote-interfaces.mdtext?rev=1306968&view=auto
==============================================================================
--- ace/site/trunk/content/dev-doc/design/remote-interfaces.mdtext (added)
+++ ace/site/trunk/content/dev-doc/design/remote-interfaces.mdtext Thu Mar 29 16:32:22 2012
@@ -0,0 +1,81 @@
+Title: Remote Interfaces Design
+
+Summary
+=======
+
+This document describes the generic design of the remote interfaces that can be used to access
a system within the ACE topology. The design can be divided into three separate logical components:
the connectors, the protocol adapters and session management.
+
+The connectors provide the interfaces to the system. In general, you can have more than one,
for example in ACE we can define a client connector that allows us to talk to the ACE server.
+
+The protocol adapters expose interfaces through a specific protocol. A REST adapter provides
access through the HTTP protocol, and specific UI adapters can be used to interact with a
user using a specific web or desktop framework. In future extensions, adapters can also implement
JMX management for example.
+
+Session management is responsible for managing authentication and authorization across all
protocol adapters. This makes sessions a first class citizen in the design and abstracts them
away from protocol specific sessions.
+
+Design
+======
+
+The design is based on the 4+1 View, which means we look at the logical view, process view,
use case design, implementation view and deployment view to arrive at the full design.
+
+### Logical View
+
+<object data="remote-interfaces-components.svg" type="image/svg+xml" class="span12"></object>
+
+The design is split into three components:
+
+1. Protocol Adapters. For every protocol that we support, we have to create a protocol adapter,
whose responsibility it is to expose connector interfaces. Connectors are discovered by leveraging
the service registry using the whiteboard pattern. The protocol adapter talks to the session
manager for managing sessions and making sure certain permissions have been given to the authenticated
user. If the protocol itself also supports the notion of sessions, it's the adapters responsibility
to ensure that the life cycle of the protocol specific session is aligned with our own sessions.
+
+2. Connectors. Each connector, which is implemented as a collection of one or more OSGi services,
provides a specific API to talk to a system. An example is the client API. Which services
make up a connector is specified in the design of a component.
+
+3. Session Manager. Responsible for managing sessions and the authentication and authorization
of actors that use them. The session manager will be invoked by protocol adapters. It leverages
the OSGi User Admin service to provide users with credentials, roles and permissions. The
session manager is allowed to expire sessions if it needs to, so protocol adapters should
always check if a session is still open.
+
+### Process View
+
+Incoming calls arrive at a protocol implementation. As soon as they reach one of our adapters,
the adapter should synchronously talk to the session manager, because it needs to check for
the proper authentication and authorization before it can continue.
+
+A session manager is allowed to spawn a background thread for session expiration purposes,
but implementations can also decide to leverage Java features such as "weak" references, or
use synchronous expiration as a side effect of incoming calls.
+
+### Use Case Design
+
+There are two major use cases that are designed explicitly here:
+
+1. Register Connector Services
+2. Invoke Operation
+
+#### Register Connector Services
+
+##### Normal Flow
+
+1. A component registers a service in the OSGi service registry.
+2. The protocol adapter, listening whiteboard style, is notified and validates the service.
+3. The protocol adapter hands over the service to a protocol specific factory that creates
an adapter.
+4. The protocol adapter registers the created adapter with the protocol implementation.
+
+#### Invoke Operation
+
+##### Normal Flow
+
+1. An actor invokes an operation on a service.
+2. The invocation arrives at the protocol adapter, who looks up or creates the session with
the session manager.
+3. The protocol adapter checks if the actor is authenticated and authorized to invoke this
operation.
+4. The protocol adapter invokes the operation on the connector associated with this adapter.
+
+### Implementation View
+
+The implementation views for the different connectors and protocol adapters can be found
in the designs of these components.
+
+The implementation view for the session manager consists of:
+
+* o.a.a.client.repository.SessionFactory - the interface for a factory that can be used to
create and destroy sessions;
+* o.a.a.client.repository.impl.Activator - the implementation of the session factory.
+
+Note that this current implementation is specific to the client, because for now that is
the only place where we have sessions (the other connectors are essentially stateless).
+
+### Deployment View
+
+The connectors and protocol adapters are deployed as different bundles:
+
+* o.a.a.client.repository.api - contains the API for the client connector and session manager;
+* o.a.a.client.repository.impl- contains the implementation for the session manager and client
connector
+* o.a.a.client.repository.* - various bundles that also contain parts of the implementation
of the client connector;
+* o.a.a.client.rest - protocol adapter for the REST client API;
+* o.a.a.webui.vaadin - protocol adapter for the Vaadin based web UI.

Added: ace/site/trunk/content/dev-doc/design/remoteinterfaces-components.svg
URL: http://svn.apache.org/viewvc/ace/site/trunk/content/dev-doc/design/remoteinterfaces-components.svg?rev=1306968&view=auto
==============================================================================
--- ace/site/trunk/content/dev-doc/design/remoteinterfaces-components.svg (added)
+++ ace/site/trunk/content/dev-doc/design/remoteinterfaces-components.svg Thu Mar 29 16:32:22
2012
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1"
viewBox="1 -2 524 194" width="524pt" height="194pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-03-29
15:58Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><font-face
font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594"
underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953"
descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><marker
orient="auto" overflow="visible" markerUnits="strokeWidth" id="StickArrow_Marker" viewBox="-1
-4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0
0 M 0 -3 L 8 0 L 0 3" fill="none" stroke="currentColor" stroke-width="1"/></g></marker></defs><g
stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1
 "><title>Canvas 1</title><g><title>Layer 1</title><rect
x="34.615372" y="15" width="124.38464" height="55.43802" fill="white"/><rect x="34.615372"
y="15" width="124.38464" height="55.43802" stroke="black" stroke-linecap="round" stroke-linejoin="round"
stroke-width="1"/><text transform="translate(39.615376 35.71901)" fill="black"><tspan
font-family="Helvetica" font-size="12" font-weight="500" x="35.846619" y="11" textLength="42.691406">protocol</tspan></text><rect
x="12.000019" y="26.43959" width="37.6923" height="10.559624" fill="white"/><rect x="12.000019"
y="26.43959" width="37.6923" height="10.559624" stroke="black" stroke-linecap="round" stroke-linejoin="round"
stroke-width="1"/><rect x="12.000019" y="48.438797" width="37.6923" height="10.559624"
fill="white"/><rect x="12.000019" y="48.438797" width="37.6923" height="10.559624" stroke="black"
stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="207.61539"
y="15" width="124.38464" height="55.43802" fi
 ll="white"/><rect x="207.61539" y="15" width="124.38464" height="55.43802" stroke="black"
stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(212.61539
35.71901)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500"
x="13.830017" y="11" textLength="86.72461">protocol adapter</tspan></text><rect
x="185.00003" y="26.43959" width="37.692291" height="10.559624" fill="white"/><rect
x="185.00003" y="26.43959" width="37.692291" height="10.559624" stroke="black" stroke-linecap="round"
stroke-linejoin="round" stroke-width="1"/><rect x="185.00003" y="48.438797" width="37.692291"
height="10.559624" fill="white"/><rect x="185.00003" y="48.438797" width="37.692291"
height="10.559624" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect
x="207.61536" y="112" width="124.38464" height="55.43802" fill="white"/><rect x="207.61536"
y="112" width="124.38464" height="55.43802" stroke="black" stroke-l
 inecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(212.61536
132.71901)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500"
x="11.5009155" y="11" textLength="91.38281">session manager</tspan></text><rect
x="185" y="123.43959" width="37.692291" height="10.5596313" fill="white"/><rect x="185"
y="123.43959" width="37.692291" height="10.5596313" stroke="black" stroke-linecap="round"
stroke-linejoin="round" stroke-width="1"/><rect x="185" y="145.43881" width="37.692291"
height="10.5596313" fill="white"/><rect x="185" y="145.43881" width="37.692291" height="10.5596313"
stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect
x="380.61539" y="14.999985" width="124.38464" height="55.43802" fill="white"/><rect
x="380.61539" y="14.999985" width="124.38464" height="55.43802" stroke="black" stroke-linecap="round"
stroke-linejoin="round" stroke-width="1"/><text transform="translate(385.61539 35.718994
 )" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="30.842712"
y="11" textLength="52.69922">connector</tspan></text><rect x="358.00003"
y="26.43959" width="37.692322" height="10.559624" fill="white"/><rect x="358.00003"
y="26.43959" width="37.692322" height="10.559624" stroke="black" stroke-linecap="round" stroke-linejoin="round"
stroke-width="1"/><rect x="358.00003" y="48.438797" width="37.692322" height="10.559624"
fill="white"/><rect x="358.00003" y="48.438797" width="37.692322" height="10.559624"
stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line
x1="159" y1="42.71901" x2="197.71539" y2="42.71901" marker-end="url(#StickArrow_Marker)" stroke="black"
stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/><line
x1="332.00006" y1="42.71901" x2="370.71536" y2="42.718998" marker-end="url(#StickArrow_Marker)"
stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-wid
 th="1" stroke-dasharray="4,4"/><line x1="269.80771" y1="70.438026" x2="269.80768" y2="102.1"
marker-end="url(#StickArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round"
stroke-width="1" stroke-dasharray="4,4"/></g></g></svg>

Added: ace/site/trunk/content/dev-doc/design/src/remoteinterfaces-components.graffle
URL: http://svn.apache.org/viewvc/ace/site/trunk/content/dev-doc/design/src/remoteinterfaces-components.graffle?rev=1306968&view=auto
==============================================================================
--- ace/site/trunk/content/dev-doc/design/src/remoteinterfaces-components.graffle (added)
+++ ace/site/trunk/content/dev-doc/design/src/remoteinterfaces-components.graffle Thu Mar
29 16:32:22 2012
@@ -0,0 +1,619 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGrafflePro</string>
+		<string>138.33.0.157554</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2012-03-29 15:54:32 +0000</string>
+	<key>Creator</key>
+	<string>Marcel Offermans</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1 0/72 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>33</integer>
+			</dict>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Points</key>
+			<array>
+				<string>{269.80771, 70.438026}</string>
+				<string>{269.80768, 112}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>StickArrow</string>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>29</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>37</integer>
+			</dict>
+			<key>ID</key>
+			<integer>39</integer>
+			<key>Points</key>
+			<array>
+				<string>{332.00006, 42.719009}</string>
+				<string>{380.61536, 42.718994}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>StickArrow</string>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>29</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>29</integer>
+			</dict>
+			<key>ID</key>
+			<integer>38</integer>
+			<key>Points</key>
+			<array>
+				<string>{159.00002, 42.719009}</string>
+				<string>{207.61539, 42.719009}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>StickArrow</string>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>25</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>Group</string>
+			<key>Graphics</key>
+			<array>
+				<dict>
+					<key>Bounds</key>
+					<string>{{358.00003, 48.438797}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>35</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{358.00003, 26.43959}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>36</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{380.61539, 14.999985}, {124.38464, 55.438019}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>37</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict/>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 connector}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+				</dict>
+			</array>
+			<key>ID</key>
+			<integer>34</integer>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>Group</string>
+			<key>Graphics</key>
+			<array>
+				<dict>
+					<key>Bounds</key>
+					<string>{{185, 145.43881}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>31</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{185, 123.43959}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>32</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{207.61536, 112}, {124.38464, 55.438019}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>33</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict/>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 session manager}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+				</dict>
+			</array>
+			<key>ID</key>
+			<integer>30</integer>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>Group</string>
+			<key>Graphics</key>
+			<array>
+				<dict>
+					<key>Bounds</key>
+					<string>{{185.00003, 48.438797}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>27</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{185.00003, 26.43959}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>28</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{207.61539, 15}, {124.38464, 55.438019}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>29</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict/>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 protocol adapter}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+				</dict>
+			</array>
+			<key>ID</key>
+			<integer>26</integer>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>Group</string>
+			<key>Graphics</key>
+			<array>
+				<dict>
+					<key>Bounds</key>
+					<string>{{12.000019, 48.438797}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>23</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{12.000019, 26.43959}, {37.692299, 10.559624}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>24</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{34.615376, 15}, {124.38464, 55.438019}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>25</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict/>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 protocol}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+				</dict>
+			</array>
+			<key>ID</key>
+			<integer>22</integer>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2012-03-29 15:58:41 +0000</string>
+	<key>Modifier</key>
+	<string>Marcel Offermans</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg==</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{946, 240}, {693, 938}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>

Modified: ace/site/trunk/templates/sidenav.html
URL: http://svn.apache.org/viewvc/ace/site/trunk/templates/sidenav.html?rev=1306968&r1=1306967&r2=1306968&view=diff
==============================================================================
--- ace/site/trunk/templates/sidenav.html (original)
+++ ace/site/trunk/templates/sidenav.html Thu Mar 29 16:32:22 2012
@@ -37,16 +37,16 @@
     <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developer Documentation
<b class="caret"></b></a>
     <ul class="dropdown-menu">
       <li>
-        <a href="/dev-doc/requirements.html">Requirements</a>
+        <a href="/dev-doc/requirements/">Requirements</a>
       </li>
       <li>
         <a href="/dev-doc/architecture.html">Architecture</a>
       </li>
       <li>
-        <a href="/dev-doc/analysis.html">Analysis</a>
+        <a href="/dev-doc/analysis/">Analysis</a>
       </li>
       <li>
-        <a href="/dev-doc/design.html">Design</a>
+        <a href="/dev-doc/design/">Design</a>
       </li>
       <li>
         <a href="/dev-doc/coding-standards.html">Coding Standards</a>



Mime
View raw message