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:
- takeValuesFromRequest: form values go into bindings.
- invokeAction: the clicked element runs its action.
- 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 />.