What the factories stamp
Chassis features of standard capabilities of Wildfly and Android apps.
The factories do not stamp a different architecture for each app. They stamp one chassis, then apply options and an extender data unique to each app. Login, lists, detail screens, images, and parent/child tables functionality come from the options and standard chassis. The stamped apps for example: Booklet, Social, and Security are generated from this process.
See the live WildFly demos (same login screen on all three):
To login use: guest / guest.
Booklet: https://sw-builder.com/booklet/do?op=Home
Social: https://sw-builder.com/social/do?op=Home
Security: https://sw-builder.com/security/do?op=Home
Wildfly Chassis Functionality (the admin tab)
The standard privileges fall into three groups: ADMIN, USER. and GUEST. The ADMIN users get to see the Admin Tab below:
The standard Functionality from the admin tab includes:
Logs
Get log information from android apps registered to your wildfly server or processes running on your server.
Events
Events shows the events that are implimented on your server. These events can be fired or scheduled.
Email Subs
Email subscriptions can be tied to events so that an email is sent to an address if an event fires.
SMS Subs
SMS subscriptions can be tied to events so that an SMS is sent to a phone number if an event fires.
Reports
Jasper report jrxml files can be uploaded so that different report types can be generated.
Wildfly Chassis Functionality (the admin report tab)
An admin account can load Jasper reports.
Chassis functionality (every stamped WildFly app)
Session after login. Guest can read; admin can load reports and maintain more records.
List and detail screens generated from APP_TABLES.xml. Each table gets a file name, a class, a DB table, and fields.
Parent / child relationships (One2ManyParent / One2ManyChild). Open a parent and you can reach its children.
Field widgets from codeType:
String — short text
Clob — long text
Date / DateTime
Boolean
Camera / Thumbnail — still image
Video — motion clip
Post — social post body plus media
Jasper reports can be loaded in the running app with an admin account (Booklet ships SimpleBooklet.jrxml and certTest.jrxml).
Build and deploy stay in the app repo. WildFly apps use a script such as wildfly-booklet-build-deploy.sh. The builder overlay copies template/ and build/ in at stamp time.
The same options language is meant to stamp the Android cousin (Droid Builder). Phone-side widgets reuse Camera, Thumbnail, and Video field types.
Options files the factory reads
Every catalog app carries the same six files under options/:
APP_HOME.xml — app name, logo, home URL
APP_NAMES.xml — display names
APP_TABLES.xml — entities and fields (the contract)
APP_ENUMS.xml — enumerations
APP_CODE_TYPES.xml — field widgets
APP_EVENTS.xml — extra events (Booklet defines GetEmailEvent for [email protected])
Change those files and re-run the factory. The chassis stays. The optional parts move.
Booklet (reader / small book)
Product idea: one question, many voices, one book.
Tables:
Author — name, image (Camera), about (Clob), books
Book — name, about (Clob), author, pages
Page — title, image (Camera), text (Clob), book
Flow: browse authors → books → pages. Add a page as another voice. Generate a SimpleBooklet report to keep or share.
Extender: BookletExtender.groovy.
Social (people, posts, comments)
Tables:
Member — name, picture (Thumbnail), postings, comments
Posting — post (Post widget), info, date, member, comments
Comment — text, date, member, posting
Flow: browse members → their postings → comments.
Security (phone + movement)
Tables:
Phone — name, camera photo (Thumbnail), running flag, shutdown flag, movements
Movement — video, date/time, save flag, phone
Flow: a phone is on or off. While running, movements show up as dated video clips you can mark to save.
What is shared vs what is unique
Shared: login, Home front controller, list/detail, one-to-many, field widgets, reports hook, WildFly deploy, Android cousin from the same options idea.
Unique per app: APP_TABLES.xml, APP_HOME logo/URL, the extender, extra files such as jrxml and background JPGs.