Doco Home Hints Home

Documentation in progress

Platypus Hints: Maintenance and updates

This sections discusses issues with modifying Platypus apps after they have been fielded.

Components of a fielded app

A fielded app has several components contributing to the jar file.

Hand-edited Java in src/ directory.
These include the presentation layer manipulation classes, and the business layer classes.
Generated presentation layer BASE Java classes.
Generated by Pond, which is invoked by the Makefile system.
Note: These files can be hand-copied into teh src directory. If this is done, the Makfile system will use the src/ copies, rather than looking for them (and perhaps remaking them) in the generated directory.
Generated data layer Java classes.
Generated by DODS, outide the Makefile system.
Prototype HTML in the src/ directory.
Copied from the artist directory, and marked up.
Platypus production classes
Platypus's run-time utilities, in package com.pisoftware.platypus.production. (These may be in a separate jar file, but are relevant to this discussion.)
Scaffolding
The scaffolding includes the developer configuration files rooted in dev.conf, and intermediates DODS output, such as the .doa files. These files contributed to the development of the app, but are not required in the jar file.

After the app has been fielded, and time passes, and a new version of Platypus is released, and you have new specs (or bugs) in the app: you might face the problem of rolling back your development environment.

If this roll-back is not properly done, you may find compatibility problems between the generated and hand-edited code.

Preferred solution: Snapshot Platypus and the app

We recommend snapshotting the entire app, including the generated directories, and the version of Platypus used to develop it.

When we are developing an app, we use CVS. We do not store all the directories in CVS. Typcially, we have only a few of the files in the app root directory, and the src/ tree. All the rest can be regenerated.

However, once an app has been developed, we recomment tar-balling all the directories, including the view/ directory, generated directory, output/ directoryand classes/ directory. This effectively allows the state of the Makefile system (which looks in all these directories) to be restored quickly and painlessly.