One API format: .apiext
An element's API (its bindings, their types and directions, what's required, which combinations are allowed) now lives in one place: its .apiext. Everything else is written from that file or falls back to something older.
- The component editor's API tab edits the
.apiext. A component that doesn't have one yet gets a Generate API button, not an empty editor. - Generate API writes the
.apiextfrom the component's class: a binding for every key a parent can set, with its type, and the push direction too when the component synchronizes its bindings. It works on standalone templates as well as.wofolders, reports what it did, and never touches a binding the file already has. - A hand-written
.apicarries over. A component's first.apiextstarts from its.api: bindings,defaultspresets, required and must-be-settable bindings, and the validation rules, as typed constraints. Of wonder-slim's 107.apifiles, 106 convert completely. A rule with no.apiextform stops the conversion and is named, rather than being dropped. - WebObjects tools keep their
.api. Saving the.apiextof a WebObjects element writes the.apibeside it: bindings, presets, and validation rules for required bindings, settable ones and the constraints, with the messages the editor shows. ng elements get none, since ng-objects doesn't read.api. - ng's own element definitions come from ng. ng 0.1.6 ships its elements'
.apiextfiles alongside its components, the way WebObjects keeps.apifiles inResources/, and the editor reads them there. The copies the editor used to bundle are gone, so docs and bindings always match the ng version a project uses.
The old .api form editor is gone. An element with only an .api still validates and completes from it, so nothing has to be converted before it works.
A dev server that's there after every start
- Restarting Eclipse on macOS no longer leaves the dev server dead. After a restart (File → Restart, or the restart Eclipse offers after installing updates), requests to the dev server hung for the whole session. The macOS launcher starts the new Eclipse from the old one's process, and the new one inherited a port nothing listened on. The dev server now shuts down with Eclipse.
- A port that's still taken at startup is tried again for a minute, so an Eclipse that was quit just before doesn't leave the new one without a dev server. A server that can't start frees its port and logs why.
- Template problems are right from the first build. While Maven was still resolving classpaths at startup, ng projects could be validated without their tag aliases, and errors like "the class for 'script' is either missing" stayed until a file changed. Templates are now re-validated when a project's classpath changes.
- No more "Duplicate located" dialogs. Two classes with the same name in one project (legal Java, in different packages) opened an error dialog on every lookup, which also blocked agents. That now goes to the log, once, and the dev server explains the ambiguity instead of failing.
Smaller things
- New ng-objects projects use ng 0.1.6; WebObjects projects keep wonder-slim 8.1.2.
From the changelog, October 18, 2026.