2.0.0
After almost six years effort (!), v2.0.0 and v3.0.0 are the first official releases of Apache Causeway, now re-platformed to run on Spring Boot v2.x and v3.x respectively. The two versions are being released at the same time.
| v2.0.0 | v3.0.0 | Notes | |
|---|---|---|---|
Java |
|
|
|
Spring Boot |
|
|
Spring Boot 2.7 is EOL. |
Namespace |
|
|
|
Wicket |
|
|
|
Bootstrap |
|
|
|
RestEasy |
|
|
|
EclipseLink |
|
|
|
DataNucleus |
|
|
JDO |
Other highlights
-
Persistence using JPA has been added through an integration of EclipseLink.
Persistence using JDO continues to be supported through the integration with DataNucleus.
We use EclipseLink rather than Hibernate because historically the latter was licensed using LGPL, which is incompatible with ASF licensing. (Hibernate v7 is licensed under Apache License, however, so this opens up the possibility of providing a JPA/Hibernate object store in the future).
Spring Data is supported for both persistence mechanisms.
-
multiple mechanisms of implementing view models (JAXB, programmatic, serializable). This is pluggable.
-
added a generic GraphQL API.
-
multiple improvements to the programming model, including:
-
support for meta-annotations
-
support for different introspection modes.
In particular, "encapsulated" mode mean that the properties and collections of entities and view models do not have to have
publicvisibility; their programmatic API can be kept to a minimum. -
supported custom scalar value types and composite types
-
(link:https://vega.github.io/vega-lite/[Vega-lite], "a grammar of interactive graphics").
-
mixin classes annotated as
@Action,@Propertyor@Collection -
logical type name aliases
-
integration extensions, including Command Log, Execution Log and Execution Outbox
-
Web UI (Wicket) extensions including Full Calendar, PDF.js, Tabular Extension (Excel).
Also tree view and client-side filtering using datatables.net JS.
-
security extensions including secman ( authorization and/or authentication implemented as Causeway entities), Audit Trail and Session Log
-
dependency/library upgrades:
-
-
Spring event bus replaces guava or axon; removes guice
-
ByteBuddy replaces cglib or javassist for implementation of WrapperFactory
-
switch from hsqldb to h2
-
other extensions such as a BackgroundService for executing commands asynchronously, and Flyway integration.
-
Apart from dependencies and the javax/jakarta namespace, in most regards v2.0.0 and v3.0 are functionally equivalent.
The only feature not available in 3.0 is the Shiro module, because (at the time of release) Apache Shiro have not released jakarta support.
However, either the Spring Security integration or even the Simple Security implementation can be used instead.
For 2.0.0 and 3.0.0, below lists the features, improvements and bugs made since the previous release:
New Feature (5)
-
CAUSEWAY-3698 - Security Integration Replacement for Shiro INI based Realm (Simple (Authenticator & Authorizor))
-
CAUSEWAY-3676 - GraphQL viewer (GraphQL API)
-
CAUSEWAY-3671 -
Object_createdByCommand -
CAUSEWAY-3670 - Extend BookmarkService with better support of logical type name aliases
-
CAUSEWAY-3669 - Extend
CausewayConfigurationto return all config keys and their value
Improvement (26)
-
CAUSEWAY-3700 - Include the secman authenticator auto-configuration…
-
CAUSEWAY-3697 - Deprecate
@DomainService(nature=NatureOfService..)for Removal (to be replaced by some SPI) -
CAUSEWAY-3696 - Don’t log
ClientAbortExceptions -
CAUSEWAY-3694 - IntrospectionPolicy
ENCAPSULATION_ENABLEDshould NOT require annotation on mixin main method. -
CAUSEWAY-3693 - [Wicket Viewer] Allow table header text to break on whitespace (CSS)
-
CAUSEWAY-3692 - [Programming Model] Rename
DependentDefaultsPolicytoPrecedingParamsPolicyto better explain intent. -
CAUSEWAY-3691 - [JUnit] Remove 'stable' from regression test artifact names
-
CAUSEWAY-3689 - Make parsing of
BigDecimalstricter, to avoid mistypes. -
CAUSEWAY-3688 - Audit trail should gracefully attempt to capture values, but not fail fast.
-
CAUSEWAY-3687 - [Validation] Disallow
@Transactionalwithin @DomainService(nature=VIEW) -
CAUSEWAY-3686 - [Wicket Viewer] Veto (Reason) Icon Tooltip is potentially too verbose
-
CAUSEWAY-3685 - Tree Rendering: allow for nodes to be marked (as selected)
-
CAUSEWAY-3684 - [Commons] Json/YamlUtils support for
Can<T> -
CAUSEWAY-3683 - [Commons] Json/YamlUtils support for
java.time(ISO) -
CAUSEWAY-3678 - REST API should return a 503 if polled before the app is fully up.
-
CAUSEWAY-3675 - Suppress autoflush if called by
EntityChangeTracker(to avoid concurrent modification exceptions). -
CAUSEWAY-3672 - Make
DomainEventHelpermore resilient if there is a programming error with the definition of an event. -
CAUSEWAY-3661 - REST call for collection can return 404 error
-
CAUSEWAY-3646 - [Programming Model] Object Support Method for Font Awesome Layers
-
CAUSEWAY-3461 - [Wicket Viewer] unable to tab into
autoCompletesearch field. -
CAUSEWAY-3404 - [Commons] Quality of Life Improvements for 2.0.0 Release
-
CAUSEWAY-3390 -
AuditTrailEntryRepositoryhas generic parameter vs secman repos (egApplicationUserRepository) that does not … make these consistent. -
CAUSEWAY-3081 - Check for existence of feature in fixturescript
-
CAUSEWAY-2873 - petclinic tutorial (documentation)
-
CAUSEWAY-2085 - [archunit rule] Every entity should be annotated with
@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
Bug (12)
-
CAUSEWAY-3701 - Enable h2 ui console for v3
-
CAUSEWAY-3679 - Downloaded Excel spreadsheet shows header rows as black on black.
-
CAUSEWAY-3674 - [Wicket Viewer] Potential NPE in
PendingParamsSnapshot -
CAUSEWAY-3673 - Fix
LayoutLoadersGitHubMenuaction’s incorrectly defined domain event. -
CAUSEWAY-3667 - [Wicket Viewer] Regression: date/time picker in param dialog is squeezed into single line
-
CAUSEWAY-3650 -
FixtureScriptsrunScriptvsrunFixtureScript- one fires theFixturesInstallingEvent/FixturesInstalledEventand the other does not. -
CAUSEWAY-3620 - RO viewer returns 500 not 404 if object doesn’t exist.
-
CAUSEWAY-3491 - [Wicket Viewer] cannot easily change the offset for an
OffsetTime -
CAUSEWAY-3490 - [Wicket Viewer] not possible to change the offset for an
OffsetDateTime. -
CAUSEWAY-3489 - [Wicket Viewer] cannot enter ZonedDateTime values and Joda
DateTime. -
CAUSEWAY-3326 -
Specification's Injection Points are not being resolved -
CAUSEWAY-3175 - Autocomplete not supported for values, only for object references
Duplicate
-
CAUSEWAY-3695 - [DUPLICATE] Joda DateTime not being handled correctly - treated as a ZonedDateTime
Documentation
-
CAUSEWAY-3677 - get to green on website checks - https://whimsy.apache.org/site/
Task
-
CAUSEWAY-3666 - 2.0.0 release activities