Fixed broken linkes

This commit is contained in:
Henry 2015-11-06 17:40:43 -08:00
parent 51968954a9
commit 78004ebf37
6 changed files with 62 additions and 39 deletions

View File

@ -58,13 +58,13 @@ of the software.
These layers are: These layers are:
* [_Framework_](Framework.md): The framework layer is responsible for * [_Framework_](framework.md): The framework layer is responsible for
managing the interactions between application components. It has no managing the interactions between application components. It has no
application-specific knowledge; at this layer, we have only application-specific knowledge; at this layer, we have only
established an abstraction by which different software components established an abstraction by which different software components
may communicate and/or interact. may communicate and/or interact.
* [_Platform_](Platform.md): The platform layer defines the general look, feel, and * [_Platform_](platform.md): The platform layer defines the general look,
behavior of Open MCT Web. This includes user-facing components like feel, and behavior of Open MCT Web. This includes user-facing components like
Browse mode and Edit mode, as well as underlying elements of the Browse mode and Edit mode, as well as underlying elements of the
information model and the general service infrastructure. information model and the general service infrastructure.
* _Application_: The application layer defines specific features of * _Application_: The application layer defines specific features of

View File

@ -0,0 +1,20 @@
0 info it worked if it ends with ok
1 verbose cli [ '/Users/akhenry/.nvm/v0.10.35/bin/node',
1 verbose cli '/Users/akhenry/.nvm/v0.10.35/bin/npm',
1 verbose cli 'run',
1 verbose cli 'docs' ]
2 info using npm@1.4.28
3 info using node@v0.10.35
4 error Error: ENOENT, open '/Users/akhenry/Code/mct/openmctweb/docs/src/architecture/package.json'
5 error If you need help, you may report this *entire* log,
5 error including the npm and node versions, at:
5 error <http://github.com/npm/npm/issues>
6 error System Darwin 14.5.0
7 error command "/Users/akhenry/.nvm/v0.10.35/bin/node" "/Users/akhenry/.nvm/v0.10.35/bin/npm" "run" "docs"
8 error cwd /Users/akhenry/Code/mct/openmctweb/docs/src/architecture
9 error node -v v0.10.35
10 error npm -v 1.4.28
11 error path /Users/akhenry/Code/mct/openmctweb/docs/src/architecture/package.json
12 error code ENOENT
13 error errno 34
14 verbose exit [ 34, true ]

View File

@ -129,7 +129,7 @@ The framework's role in the application is to manage connections between
bundles. All application-specific behavior is provided by individual bundles, or bundles. All application-specific behavior is provided by individual bundles, or
as the result of their collaboration. as the result of their collaboration.
The framework is described in more detail in the [Framework Overview](../architecture/Framework.md#Overview) of the The framework is described in more detail in the [Framework Overview](../architecture/framework.md#overview) of the
architecture guide. architecture guide.
### Tiers ### Tiers
@ -186,7 +186,8 @@ as well as the framework layer's role in mediating between these components.
Once the framework layer has wired these software components together, however, Once the framework layer has wired these software components together, however,
the application's logical architecture emerges. the application's logical architecture emerges.
An overview of the logical architecture of the platform is given in the [Platform Architecture](../architecture/Platform.md#PlatformArchitecture) An overview of the logical architecture of the platform is given in the
[Platform Architecture](../architecture/platform.md#platform-architecture)
section of the Platform guide section of the Platform guide
### Web Services ### Web Services
@ -233,7 +234,7 @@ The application is composed of bundles. Plug-ins are bundles.
non-persistent state associated with a domain object. non-persistent state associated with a domain object.
* __category__: A machine-readable identifier for a group that something may * __category__: A machine-readable identifier for a group that something may
belong to. belong to.
* __composition __: In the context of a domain object, this refers to the set of * __composition__: In the context of a domain object, this refers to the set of
other domain objects that compose or are contained by that object. A domain other domain objects that compose or are contained by that object. A domain
object's composition is the set of domain objects that should appear immediately object's composition is the set of domain objects that should appear immediately
beneath it in a tree hierarchy. A domain object's composition is described in beneath it in a tree hierarchy. A domain object's composition is described in
@ -244,10 +245,10 @@ identifiers asynchronously.
readable description of a thing; usually a single sentence or short paragraph. readable description of a thing; usually a single sentence or short paragraph.
(Most often used in the context of extensions, domain object models, or other (Most often used in the context of extensions, domain object models, or other
similar application-specific objects.) similar application-specific objects.)
* __domain object __: A meaningful object to the user; a distinct thing in the * __domain object__: A meaningful object to the user; a distinct thing in the
work support by Open MCT Web. Anything that appears in the left-hand tree is a work support by Open MCT Web. Anything that appears in the left-hand tree is a
domain object. domain object.
* __extension __: An extension is a unit of functionality exposed to the platform * __extension__: An extension is a unit of functionality exposed to the platform
in a declarative fashion by a bundle. The term 'extension category' is used to in a declarative fashion by a bundle. The term 'extension category' is used to
distinguish types of extensions from specific extension instances. distinguish types of extensions from specific extension instances.
* __id__: A string which uniquely identifies a domain object. * __id__: A string which uniquely identifies a domain object.
@ -609,8 +610,8 @@ path relative to the bundle's resource directory (`res` by default.)
### Composite Services ### Composite Services
Composite services are described in the [relevant section](../architecture/Framework.md#Composite-Services) Composite services are described in the [Composite Services](../architecture/framework.md#composite-services)
of the framework guide. section of the framework guide.
A component should include the following properties in its extension definition: A component should include the following properties in its extension definition:
@ -724,8 +725,8 @@ interpretations for specific sources.
### Telemetry Responses ### Telemetry Responses
When returned from the `telemetryService` (see [Services](#Services) section), When returned from the `telemetryService` (see [Telemetry Services](#telemetry-service)
telemetry series data will be packaged in a `source -> key -> TelemetrySeries` section), telemetry series data will be packaged in a `source -> key -> TelemetrySeries`
fashion. That is, telemetry is passed in an object containing key-value pairs. fashion. That is, telemetry is passed in an object containing key-value pairs.
Keys identify telemetry sources; values are objects containing additional Keys identify telemetry sources; values are objects containing additional
key-value pairs. In this object, keys identify individual telemetry series (and key-value pairs. In this object, keys identify individual telemetry series (and
@ -1042,7 +1043,7 @@ Angular templates which need to interact with information (e.g. the domain
object being represented) provided by the platform. This information is passed object being represented) provided by the platform. This information is passed
in through the template's scope, such that simple representations may be created in through the template's scope, such that simple representations may be created
by providing only templates. (More complex representations will need controllers by providing only templates. (More complex representations will need controllers
which are referenced from templates. See [https://docs.angularjs.org/guide/controller ]() which are referenced from templates. See https://docs.angularjs.org/guide/controller
for more information on controllers in Angular.) for more information on controllers in Angular.)
A representation's scope will contain: A representation's scope will contain:
@ -1074,7 +1075,7 @@ representing domain objects in general. For example, support for the _gestures_
extension category is added by a _representer_. extension category is added by a _representer_.
A representer needs only provide an implementation. When an `mct-representation` A representer needs only provide an implementation. When an `mct-representation`
is linked (see [https://docs.angularjs.org/guide/directive ]() or when the is linked (see https://docs.angularjs.org/guide/directive ) or when the
domain object being represented changes, a new _representer_ of each declared domain object being represented changes, a new _representer_ of each declared
type is instantiated. The constructor arguments for a _representer_ are the same type is instantiated. The constructor arguments for a _representer_ are the same
as the arguments to the link function in an Angular directive: `scope` the as the arguments to the link function in an Angular directive: `scope` the
@ -1157,7 +1158,7 @@ capability.
(as should appear in the _Create_ or the _Edit Properties_ dialog.) Each (as should appear in the _Create_ or the _Edit Properties_ dialog.) Each
property is described by an object containing the following properties: property is described by an object containing the following properties:
* `control`: The key of the control (see `mct-control` and the `controls` * `control`: The key of the control (see `mct-control` and the `controls`
[extension category](#Controls)) to use for editing this property. [extension category](#controls-category)) to use for editing this property.
* `property`: A string which will be used as the name of the property in the * `property`: A string which will be used as the name of the property in the
domain object's model that the value for this property should be stored domain object's model that the value for this property should be stored
under. If this value should be stored in an object nested within the domain under. If this value should be stored in an object nested within the domain
@ -1180,7 +1181,7 @@ the list of version information in the About dialog.
dialog. dialog.
To control the ordering of line items within the About dialog, use `priority`. To control the ordering of line items within the About dialog, use `priority`.
(See section on [Extension Definitions](#ExtensionDefinitions) above.) (See section on [Extensions](#extensions) above.)
This extension category does not have implementations. This extension category does not have implementations.
@ -1202,7 +1203,7 @@ applicable for domain objects which have the capabilities identified by these
strings. strings.
* `delegation`: Optional boolean, intended to be used in conjunction with * `delegation`: Optional boolean, intended to be used in conjunction with
`needs`; if present, allow required capabilities to be satisfied by means of `needs`; if present, allow required capabilities to be satisfied by means of
capability delegation. (See [Delegation](#Delegation)) capability delegation. (See [Delegation](#delegation-capability))
* `toolbar`: Optional; a definition for the toolbar which may appear in a * `toolbar`: Optional; a definition for the toolbar which may appear in a
toolbar when using this view in Edit mode. This should be specified as a toolbar when using this view in Edit mode. This should be specified as a
structure for mct-toolbar , with additional properties available for each item in structure for mct-toolbar , with additional properties available for each item in
@ -1563,7 +1564,8 @@ extension mechanism is insufficient to achieve a desired result.
### Action Service ### Action Service
The [Action Service](../architecture/platform#action-service) (`actionService`) The [Action Service](../architecture/platform.md#action-service)
(`actionService`)
provides `Action` instances which are applicable in specific contexts. See Core provides `Action` instances which are applicable in specific contexts. See Core
API for additional notes on the interface for actions. The `actionService` has API for additional notes on the interface for actions. The `actionService` has
the following interface: the following interface:
@ -1573,7 +1575,8 @@ in the specified action context.
### Capability Service ### Capability Service
The [Capability Service](../architecture/platform#capability-service) (`capabilityService`) The [Capability Service](../architecture/platform.md#capability-service)
(`capabilityService`)
provides constructors for capabilities which will be exposed for a given domain provides constructors for capabilities which will be exposed for a given domain
object. object.
@ -1693,7 +1696,7 @@ allowed within the application. It has the following interface:
* `allow(category, candidate, context, [callback])`: Check if this decision * `allow(category, candidate, context, [callback])`: Check if this decision
should be allowed. Returns a boolean. Its arguments are interpreted as: should be allowed. Returns a boolean. Its arguments are interpreted as:
* `category`: A string identifying which kind of decision is being made. See * `category`: A string identifying which kind of decision is being made. See
the [section on Categories](#PolicyCategories) for categories supported by the [section on Categories](#policy-categories) for categories supported by
the platform; plugins may define and utilize policies of additional the platform; plugins may define and utilize policies of additional
categories, as well. categories, as well.
* `candidate`: An object representing the thing which shall or shall not be * `candidate`: An object representing the thing which shall or shall not be
@ -1719,7 +1722,7 @@ When acquiring telemetry for display, it is recommended that the
`telemetryHandler` service be used instead of this service. The `telemetryHandler` service be used instead of this service. The
`telemetryHandler` has additional support for subscribing to and requesting `telemetryHandler` has additional support for subscribing to and requesting
telemetry data associated with domain objects or groups of domain objects. See telemetry data associated with domain objects or groups of domain objects. See
the [Other Services](#Other-Services) section for more information. the [Other Services](#other-services) section for more information.
The `telemetryService` has the following interface: The `telemetryService` has the following interface:
@ -2154,7 +2157,7 @@ development. A few utilities are included to support development processes.
## Command-line Build ## Command-line Build
Open MCT Web includes a script for building via command line using Maven 3.0.4 Open MCT Web includes a script for building via command line using Maven 3.0.4
[https://maven.apache.org/](). https://maven.apache.org/ .
Invoking mvn clean install will: Invoking mvn clean install will:
@ -2171,7 +2174,7 @@ download build dependencies.
## Test Suite ## Test Suite
Open MCT Web uses Jasmine [http://jasmine.github.io/]() for automated testing. Open MCT Web uses Jasmine http://jasmine.github.io/ for automated testing.
The file `test.html` included at the top level of the source repository, can be The file `test.html` included at the top level of the source repository, can be
run from the browser to perform tests for all active bundles, as defined in run from the browser to perform tests for all active bundles, as defined in
`bundle.json`. `bundle.json`.
@ -2262,30 +2265,30 @@ Examples of deployment strategies (and the conditions under which they make the
most sense) include: most sense) include:
* If the external services that Open MCT Web will utilize are all running on * If the external services that Open MCT Web will utilize are all running on
Apache Tomcat [https://tomcat.apache.org/](), then it makes sense to run Open [Apache Tomcat](https://tomcat.apache.org/), then it makes sense to run Open
MCT Web from the same Tomcat instance as a separate web application. The MCT Web from the same Tomcat instance as a separate web application. The
`.war` artifact produced by the command line build facilitates this deployment `.war` artifact produced by the command line build facilitates this deployment
option. (See [https://tomcat.apache.org/tomcat-8.0-doc/deployer-howto.html() for option. (See https://tomcat.apache.org/tomcat-8.0-doc/deployer-howto.html for
general information on deploying in Tomcat.) general information on deploying in Tomcat.)
* If a variety of external services will be running from a variety of * If a variety of external services will be running from a variety of
hosts/ports, then it may make sense to use a web server that supports proxying, hosts/ports, then it may make sense to use a web server that supports proxying,
such as the Apache HTTP Server [http://httpd.apache.org/](). In this such as the [Apache HTTP Server](http://httpd.apache.org/). In this
configuration, the HTTP server would be configured to proxy (or reverse proxy) configuration, the HTTP server would be configured to proxy (or reverse proxy)
requests at specific paths to the various external services, while providing requests at specific paths to the various external services, while providing
Open MCT Web as flat files from a different path. Open MCT Web as flat files from a different path.
* If a single server component is being developed to handle all server-side * If a single server component is being developed to handle all server-side
needs of an Open MCT Web instance, it can make sense to serve Open MCT Web (as needs of an Open MCT Web instance, it can make sense to serve Open MCT Web (as
flat files) from the same component using an embedded HTTP server such as Nancy flat files) from the same component using an embedded HTTP server such as
[http://nancyfx.org/](). [Nancy](http://nancyfx.org/).
* If no external services are needed (or if the 'external services' will just * If no external services are needed (or if the 'external services' will just
be generating flat files to read) it makes sense to utilize a lightweight flat be generating flat files to read) it makes sense to utilize a lightweight flat
file HTTP server such as Lighttpd [http://www.lighttpd.net/](). In this file HTTP server such as [Lighttpd](http://www.lighttpd.net/). In this
configuration, Open MCT Web sources/resources would be placed at one path, while configuration, Open MCT Web sources/resources would be placed at one path, while
the files generated by the external service are placed at another path. the files generated by the external service are placed at another path.
* If all external services support CORS, it may make sense to have an HTTP * If all external services support CORS, it may make sense to have an HTTP
server that is solely responsible for making Open MCT Web sources/resources server that is solely responsible for making Open MCT Web sources/resources
available, and to have Open MCT Web contact these external services directly. available, and to have Open MCT Web contact these external services directly.
Again, lightweight HTTP servers such as Lighttpd [http://www.lighttpd.net/]() Again, lightweight HTTP servers such as [Lighttpd](http://www.lighttpd.net/)
are useful in this circumstance. The downside of this option is that additional are useful in this circumstance. The downside of this option is that additional
configuration effort is required, both to enable CORS on the external services, configuration effort is required, both to enable CORS on the external services,
and to ensure that Open MCT Web can correctly locate these services. and to ensure that Open MCT Web can correctly locate these services.

View File

@ -143,7 +143,7 @@ To run the tutorial web server
### Viewing in Browser ### Viewing in Browser
Once running, you should be able to view Open MCT Web from your browser at Once running, you should be able to view Open MCT Web from your browser at
[http://localhost:8080/]() (assuming the web server is running on port 8080, http://localhost:8080/ (assuming the web server is running on port 8080,
and OpenMCTWeb is installed at the server's root path). and OpenMCTWeb is installed at the server's root path).
[Google Chrome](https://www.google.com/chrome/) is recommended for these [Google Chrome](https://www.google.com/chrome/) is recommended for these
tutorials, as Chrome is Open MCT Webs “test-to” browser. The browser cache tutorials, as Chrome is Open MCT Webs “test-to” browser. The browser cache
@ -167,7 +167,7 @@ backend.
The goal of this tutorial is to add a new application feature to Open MCT Web: The goal of this tutorial is to add a new application feature to Open MCT Web:
To-do lists. Users should be able to create and manage these to track items that To-do lists. Users should be able to create and manage these to track items that
they need to do. This is modelled after the to-do lists at [http://todomvc.com/](). they need to do. This is modelled after the to-do lists at http://todomvc.com/.
### Step 1-Create the Plugin ### Step 1-Create the Plugin
@ -249,7 +249,7 @@ __bundles.json__
At this point, we can reload Open MCT Web. We havent introduced any new At this point, we can reload Open MCT Web. We havent introduced any new
functionality, so we dont see anything different, but if we run with logging functionality, so we dont see anything different, but if we run with logging
enabled ([http://localhost:8080/?log=info]()) and check the browser console, we enabled ( http://localhost:8080/?log=info ) and check the browser console, we
should see: should see:
`Resolving extensions for bundle tutorials/todo(To-do Plugin)` `Resolving extensions for bundle tutorials/todo(To-do Plugin)`
@ -458,8 +458,8 @@ particular, we want to:
* Change the completion state of tasks in the model. * Change the completion state of tasks in the model.
To do this, we will support this by adding an Angular controller. (See To do this, we will support this by adding an Angular controller. (See
[https://docs.angularjs.org/guide/controller]() for an overview of controllers.) https://docs.angularjs.org/guide/controller for an overview of controllers.)
We will define that in an AMD module (see [http://requirejs.org/docs/whyamd.html]()) We will define that in an AMD module (see http://requirejs.org/docs/whyamd.html)
in the directory `tutorials/todo/src/controllers` (`src` is, by default, the in the directory `tutorials/todo/src/controllers` (`src` is, by default, the
directory where bundle-related source code is kept, and controllers is where directory where bundle-related source code is kept, and controllers is where
Angular controllers are stored by convention.) Angular controllers are stored by convention.)
@ -1995,7 +1995,7 @@ not important; it has just enough functionality to resemble a WebSocket
interface to a real telemetry system, and niceties such as error-handling interface to a real telemetry system, and niceties such as error-handling
have been omitted. (For more information on using WebSockets, both in the have been omitted. (For more information on using WebSockets, both in the
client and on the server, client and on the server,
[https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API]() is an https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API is an
excellent starting point.) excellent starting point.)
What does matter for this tutorial is the interfaces that are exposed. Once a What does matter for this tutorial is the interfaces that are exposed. Once a
@ -2121,7 +2121,7 @@ We can run this example server by:
node app.js node app.js
To verify that this is running and try out its interface, we can use a tool To verify that this is running and try out its interface, we can use a tool
like [https://www.npmjs.com/package/wscat](): like https://www.npmjs.com/package/wscat :
wscat -c ws://localhost:8081 wscat -c ws://localhost:8081
connected (press CTRL+C to quit) connected (press CTRL+C to quit)
@ -2278,7 +2278,7 @@ When created, this service initiates a connection to the server, and begins
loading the dictionary. This will occur asynchronously, so the `dictionary()` loading the dictionary. This will occur asynchronously, so the `dictionary()`
method it exposes returns a `Promise` for the loaded dictionary method it exposes returns a `Promise` for the loaded dictionary
(`dictionary.json` from above), using Angulars `$q` (`dictionary.json` from above), using Angulars `$q`
(see [https://docs.angularjs.org/api/ng/service/$q]().) Note that error- and (see https://docs.angularjs.org/api/ng/service/$q .) Note that error- and
close-handling for this WebSocket connection have been omitted for brevity. close-handling for this WebSocket connection have been omitted for brevity.
Once the dictionary has been loaded, we will want to represent its contents Once the dictionary has been loaded, we will want to represent its contents
@ -2377,7 +2377,7 @@ object models from the persistence store.)
Here, we read the dictionary using the server adapter from above; since this Here, we read the dictionary using the server adapter from above; since this
will be loaded asynchronously, we use promise-chaining (see will be loaded asynchronously, we use promise-chaining (see
[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Chaining]()) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Chaining )
to take that result and build up an object mapping identifiers to new domain to take that result and build up an object mapping identifiers to new domain
object models. This is returned from our `modelService`, but only when the object models. This is returned from our `modelService`, but only when the
request actually calls for identifiers that look like theyre from the request actually calls for identifiers that look like theyre from the