Glossary

In one paragraph

The adaptor receives a request and passes it to the application, which picks a request handler by route. For a component action, the page is taken from the session's page cache and run through the request–response loop. Bindings connect its template to Java via KeyValueCoding.


Action

A method run when a link is clicked or a form submitted. It returns action results. See component action, direct action.

Action results

What an action returns: a component (the next page), a response, or null (same page). NGActionResults.

Adaptor

The HTTP server: turns HTTP into requests and responses back. Jetty-based: ng-adaptor-jetty, or ng-adaptor-jetty-servlet.

Application

The app's main object, one per running app. Starts the adaptor, holds routes, properties and resources. You subclass NGApplication.

Association

The object behind a binding's value: a constant (NGConstantValueAssociation) or a keypath (NGKeyValueAssociation). Dynamic elements read bindings through them. NGAssociation.

Binding

An attribute on a dynamic tag, like value="$name". Dynamic ($…, resolved with KVC) or constant; can be read and set. See Templating.

Binding synchronization

By default, a child component's bindings are copied into its same-named fields before each phase, and back after. To turn it off, override synchronizesVariablesWithBindings() and use valueForBinding( "name" ). See Creating a component.

Component

An HTML template plus a Java class extending NGComponent. Has state: each use is its own instance, kept between requests. See Creating a component.

Component action

A stateful action: a method on the component that rendered the link, called on that same instance. URLs start with /no/. See Component actions.

Content

What's between a component's tags, rendered where its template has <wo:content />. NGComponentContent.

Context

The state of the request being handled: request, page, current component, element ID, session. NGContext. Transitional: it'll be split up later.

Development mode

The default when running locally. Templates, resources and routes reload on every request, and the development tools are on. Off when started with -WOMonitorEnabled YES.

Development tools

/ng/dev/… endpoints for logs, problems and evaluating code in the running app. See Development tools.

Direct action

A stateless action: somethingAction() on an NGDirectAction subclass, called at /na/ClassName/something. Needs no session. Mostly superseded by routes.

Dynamic element

A stateless building block, like <wo:str> (NGString). One instance serves every render, so state lives in associations, not fields. Subclass NGDynamicElement. See Creating a dynamic element.

Dynamic resource

Content generated for one request, like <wo:img data="$bytes" />. Served once from /nd/.

Dynamic tag

A <wo:…> tag. Stands for a dynamic element or a component; its attributes are bindings.

Element

Anything in a template's tree: a dynamic element, a component or static HTML. NGElement.

Element ID

An element's position in the page, like 0.1.5. Routes a click back to its element. NGElementID.

Key

A name resolved with KVC: name in $name.

KeyPath

Keys joined with periods: $user.address.city. A null along the way makes it null.

KeyValueCoding

The rules for finding a method or field by name. KVC for short. NGKeyValueCoding. See KeyValueCoding.

Lifebeat

A regular "I'm alive" signal from a deployed app to wotaskd, so JavaMonitor can manage it.

Namespace

Keeps resources and components apart: the app's are in app, the framework's in ng, each plugin's in its own. The app in /nr/app/logo.png.

ng, ng-objects

engifer's former name, still used in code: NG classes, ng. packages, is.rebbi.ng artifacts.

Page

The top-level component, rendering the whole document. Created by pageWithName( SomePage.class ) or a route.

Page cache

A session's last 100 pages, so their component actions still work. One request at a time per page. NGPageCache.

Partial page update

Re-rendering part of a page without reloading it, with the Ajax elements. See Partial page updates.

Plugin

Adds elements, routes and resources under its own namespace. NGPlugin. See Plugins.

Properties

App configuration: an app-resources/Properties file, overridden by arguments like -WOPort 1300. See Configuration.

Public resource

A file in src/main/resources/public, served at the site root: public/robots.txt → /robots.txt.

Request

What the browser sent. Immutable once received. NGRequest.

Request handler

Answers one kind of URL: component actions (/no/), direct actions (/na/), resources (/nr/), …. NGRequestHandler.

Request–response loop

The phases a page goes through on a component action:

  1. takeValuesFromRequest: form values go into bindings.
  2. invokeAction: the clicked element runs its action.
  3. appendToResponse: the next page renders.

A plain page view only runs appendToResponse.

Resource

A file the app uses: webserver-resources (served at /nr/app/…), app-resources (for Java code) or public (site root). See Resources.

Response

What's sent back. Make one with NGResponses.ok( … ). NGResponse.

Route

Maps a URL to a page, a function or a request handler. See Routing.

Session

A user's state between requests, including their page cache. Created on first use, kept by cookie, expires after 60 idle minutes. NGSession. See Sessions.

Tag name

The name after wo:: a short name like str, or a class name like ProductList.

Template

A component's HTML, with dynamic tags: components/Foo.html or components/Foo.wo/Foo.html.

WOA

A built app bundle (MyApp.woa) with a launch script, in WebObjects' format. Built by vermilingua.

WOD file

WO-style element declarations, separate from the HTML. Supported for porting. See Templating.

Wrapper

A component that wraps content (layout, navigation) using <wo:content />.