### The changes

- Addressing performance. The first drop of 5.0 is 20% faster than release 4.3.
- Requires JDK 6.0. 6u10 is the only VM that is being used for tests.
- SubstanceLookAndFeel class is now abstract and does not have any public constructors. Use a core skin-based LAF, extend to set a custom skin or use static setSkin method.
- Removed support for pluggable text rasterizers (substance-bramble plugin based on SWT). 6u10 addresses poor Segoe UI rendering on Vista.
- Reworked notion of themes. Split the functionality of SubstanceTheme, SubstanceComplexTheme and SubstanceSkin into SubstanceColorScheme, SubstanceColorSchemeBundle and SubstanceSkin. Tweaked most of the core skins to take advantage of the new more flexible and straighforward APIs.
- Removed most of the VM flags. The only two flags are for tracing memory allocation and heap status. Use skin / image watermark / configuration APIs.
- Reconciled APIs that were added to address specific user requests and did not result in a consistent API. This should make making a custom skin / tweaking default Substance behavior easier and more straightforward.
- New client property to provide per-window skinning. Use different skins for different top-level windows.
- Removed the client properties and APIs for setting themes and painters on per-component level. Use colorization client property and per-window skins for custom tweaking.
- The new default mode does not add any extra UI elements (menu search, lock icons etc).
- Removed performance-adverse functionality of custom overlay and composites. Was unintentionally broken since release 4.2 and intentionally unfixed in both 4.2 and 4.3. A single complaint shows that this functionality is of miniscule use.
- Removed combobox auto-completion. Use SwingX, GlazedLists or JIDE.
- Moved UI debug mode (additional context menu on title panes and scroll bars) to a substance-tools plugin
- Consolidated existing theme pack, button shaper pack and watermark pack into substance-extras plugin
- New SubstanceApi annotation marks public APIs (classes, constructors, methods)
- Internal restructuring of the packages to make the codebase more organized.

### Java SE 6 specific functionality

- Multi-stop linear gradients
- Support for sort arrow icons on table headers
- Linux-specific bug fix on dragging window by title pane