-
Notifications
You must be signed in to change notification settings - Fork 19
Basic Design
Given the AutoPatch design requirements, a very simple design has been created. There is a patch launcher, which serves as the controller for all patch activity.
Applications wishing to use AutoPatch must instantiate a MigrationLauncher by implementing an adapter that starts the launcher on application startup, or using an existing adapter.
The launcher is able to determine the current patch level of the system in a durable way, so that it knows the patch level across multiple runs.
The launcher searches the classpath for any available objects that implement a common patch type, or any files that are in a directory known to hold patches.
The launcher loads all of the patches into a single list and orders them.
Each patch is executed, one after another. Any errors are considered fatal, as the application logic will not be able to trust the state of external systems, and is thus cause for total shutdown.
These have loading, ordering and execution steps similar to regular patches, the only difference is that these run every time AutoPatch runs. This allows you to do maintenance tasks (like recompiling PL/SQL or similar) after patch runs, but means that the tasks in here must be re-runnable. They will run a lot.
- Overview
- Design Requirements
- Basic Design
- Detailed Design
- How to integrate AutoPatch with a web application
- How to integrate AutoPatch with your development cycle
- How to implement a patch
- How to extend AutoPatch with new patch types
- How to rollback patches
- How to migrate from AutoPatch 1.1 to AutoPatch 1.2
- How to Migrate to AutoPatch 1.3