Highlights of this release:

  • New introspection policy of ENCAPSULATION_ENABLED, meaning that members (and their supporting methods) can have non-public visibility.

  • Substantially reworked of the treatment of value types and refactoring of implementation within Wicket viewer (on the way towards supporting composite value type).

  • Support for UserLocale (languate, number format, time format) as an attributed of the current user / user memento.

  • Rationalization of the handling of logical type name for superclasses/supertypes.

  • Update to DataNucleus 6.

New Feature

  • ISIS-2952 - [Testing] Support for declarative Interaction Context Specification

  • ISIS-2951 - [Secman] TenantedAuthorizationFacetDefault to recognize System User as not to be vetoed

  • ISIS-2918 - [SecMan] Support for per User Locale

  • ISIS-2917 - [Wicket Viewer] Allow direct export of Collection Views

  • ISIS-2916 - Introduce @LogicalTypeName to properly map abstract types onto the security model

  • ISIS-2883 - [Prototyping] Site-Map Export (AsciiDoc)

  • ISIS-2867 - Further archtest rules

  • ISIS-2774 - Allow members (and their supporting methods) to have non-public visibility. Allow properties/collections to have no getters & setters, or non-public getters and setters.

  • ISIS-2768 - [RO] Make Application Logo Available via REST


  • ISIS-2938 - Don’t allow DomainObject Annotation on Interfaces

  • ISIS-2920 - [i18n] Remove LocaleProvider, instead use the InteractionContext

  • ISIS-2914 - @XmlJavaTypeAdapter on Properties should be optional if the referenced Type has it already

  • ISIS-2906 - [RO Viewer] JsonRepresentation to preserve Map<K, V> Ordering

  • ISIS-2891 - Remove @ComponentScan where can be replaced by a Component Listing

  • ISIS-2882 - [Wicket Viewer] Support for generic Value-Type Conversion based on ValueSemantics

  • ISIS-2880 - Multi line textfield should have the cursor in the field after clicking in order to start typing right away

  • ISIS-2871 - Value Types need Semantics on a per Member/Param Basis

  • ISIS-2866 - Ensure @MemberSupport for all framework-provided members

  • ISIS-2863 - Remove DN5 suffix from maven artifact names

  • ISIS-2862 - Remove WizardFacet

  • ISIS-2861 - Remove ViewModel.Cloneable

  • ISIS-2856 - Remove Deprecations marked as such till 2.0.0-M6

  • ISIS-2852 - AuthorizorSecman: Permission Caching per Interaction

  • ISIS-2741 - Show a more appropriate message when invalid BigDecimal shown; ideally allow it to be customised using @Digits.message

  • ISIS-2737 - Metamodel: accept Can<T> as vector type (along java.util.Collection)

  • ISIS-2729 - [Wicket] use generic RoleName 'org.apache.isis.security.AUTHORIZED_USER_ROLE'


  • ISIS-2963 - facet-processing: annotations not recognized on primitive boolean properties

  • ISIS-2962 - [Wicket Viewer] Re-hydrate issues when jumping between tabs in a non-Jaxb view model

  • ISIS-2961 - [Wicket Viewer] When cancelling update on textfield, the cancelled text remains visible (until page refresh)

  • ISIS-2956 - [Metamodel] False positive when guarding against JDO Version Annotation Override

  • ISIS-2950 - Various Glitches detected by Trying all Demo Menu Actions

  • ISIS-2948 - [RO Viewer] Element-type not correctly represented for Collections.

  • ISIS-2944 - [Metamodel] Support Method Discovery is not reliable when not annotated

  • ISIS-2942 - Tenancy Child Removal not working

  • ISIS-2941 - Regression: Generic numerical primitive Field Editing throws due to missing Conversion

  • ISIS-2936 - [Regression] Starters are not aware of 'Bill of Materials'

  • ISIS-2935 - Wrapper: null arguments not properly adapted

  • ISIS-2940 - wrapper’s call to filterIfRequired results in an empty collection being converted to null.

  • ISIS-2931 - [Wicket] ChoiceProviders for EntityPage Features are populated eagerly.

  • ISIS-2930 - Use of Collection Annotation w/o specifying a typeOf always yields Object.class

  • ISIS-2929 - [Wicket] Sorting or expanding a table results in new DataTableModel detached from Checkbox-Toggle-Model

  • ISIS-2921 - ScalarModelWithMultiChoice might throw Exception

  • ISIS-2915 - [Regression] SecMan User Manager throws RuntimeEx on rendering

  • ISIS-2911 - Entity Choice Providers appear detached when using JDO

  • ISIS-2910 - Viewmodels after Modification must invalidate their memoized Bookmark

  • ISIS-2907 - css-class-fa not applied to menu items based on action classes

  • ISIS-2904 - Wicket Viewer: ScalarPropertyModel.getManagedProperty() fails when mixed in

  • ISIS-2903 - Recreation fails for ViewModels containing Entities

  • ISIS-2901 - Using namedXxx with Mixins does not work

  • ISIS-2897 - Wicket viewer caching old instance of mixin (and thus entity), resulting in NPE when invoke action prompt

  • ISIS-2896 - Regression: char/Character Property not rendered correctly

  • ISIS-2894 - Metamodel validation "orphan" errors if implement interface.

  • ISIS-2893 - Command log does not publish for mixin actions.

  • ISIS-2890 - @ComponentScan missing in IsisModuleSubdomainsDocxApplib

  • ISIS-2884 - Passwords not matching after restart

  • ISIS-2881 - Scale for BigDecimal property is not picked up in JPA version

  • ISIS-2879 - Multiline textfield can be 'edited' but data not persisted without edit mode being active (chrome, firefox)

  • ISIS-2876 - DomainModelValidator validation fails on IsisModuleSubdomainsExcelApplib

  • ISIS-2875 - ArchitectureJdoRules should check only root identities

  • ISIS-2870 - [Regression] Various UI glitches - temporal values, …​

  • ISIS-2865 - [Regression] Menu links to Swagger and RO don’t honor context path (URL)

  • ISIS-2855 - Wicket Viewer fails to render singleton (scalar) Values like Strings

  • ISIS-2846 - Layout Information Missing in RO Viewer

  • ISIS-2703 - ApplicationTenancy’s autocomplete doesn’t seem to work (not available for secman-admin)

  • ISIS-2670 - Bootstrap tooltips do not disappear

  • ISIS-2653 - Meta-annotation with JDO @Column(allowNulls="true") not picked up.

  • ISIS-1968 - @Title on a field should use the getter (to allow the ORM to lazily retrieve the data)

Docs and Website

Dependency upgrade

  • ISIS-2857 - Bump Datanucleus from 5.x to 6.x

Demo and Starter Apps

  • ISIS-2954 - [Demo] UUID Value-Type Choice Select fails with '…​ value required'

  • ISIS-2909 - [Demo] Enable http-2 per default

  • ISIS-2869 - [Demo] Add CalenderEvent

  • ISIS-2864 - [Demo] Unreferenced Java Sources (Adoc)

  • ISIS-2718 - Demo webapp - fix permissions and ensure all isis roles are seeded

  • ISIS-2529 - Crop Logo Images


  • ISIS-2945 - [Tooling] Verify support for simplified <p> paragraph syntax within java-doc

  • ISIS-2933 - [Tooling] Ignore the 'final' keyword with method signatures when generating adoc


Won’t Fix / Not a Problem / Duplicates

No code changes were made to close these tickets:

  • ISIS-2943 - Reinstate ApplicationAdvice.APPLIES_EXCLUSIVELY

  • ISIS-2939 - [WON’T DO] Rename o.a.i.applib.annotation to o.a.i.applib.annotations (plural)

  • ISIS-2934 - [WON’T DO] Merge up /isis-core/ bill of materials into root pom

  • ISIS-2932 - [was reverted] Remove the /isis-parent/ module.

  • ISIS-2899 - [DUPLICATE] Relax arch rule (ArchitectureJdoRules.every_jdo_PersistenceCapable_with_DATASTORE_identityType_must_be_annotated_as_DataStoreIdentity())

  • ISIS-2898 - [WON’T DO] Add @LogicalTypeName as a meta-annotation

  • ISIS-2895 - [Not a Problem] Property referencing a DomainObject rendered as empty Box

  • ISIS-2860 - [NOT A BUG] Entities not Picked Up During Application Start

  • ISIS-2804 - [WON’T DO] Remove hard-coding of the Wicket role in impersonation etc.

  • ISIS-2792 - JPA ElSettings probably shouldn’t hard code eclipselink.weaving=false

  • ISIS-2782 - [Duplicate] Add config properties to require explicit @Property, @Collection and @MemberSupport. (isis.applib.annotation.property.explicit etc)

  • ISIS-2765 - [CANNOT REPRODUCE] Method ModuleWithFixtures.getTeardownFixture not executed after failed test

  • ISIS-2749 - [Duplicate] Convert IsisConverterLocator into a domain service and allow Wicket Converters to be substituted in.

  • ISIS-2649 - [WON’T FIX] Regression: ObjectSpecification Predicates isEntity() and isViewModel() are always false when abstract

  • ISIS-2624 - [WON’T FIX] Changing the seeding password for an existing admin user should update the password

  • ISIS-2482 - [duplicate] Enabling HTTP/2

  • ISIS-841 - [NOT A PROBLEM] Remove mention of a "loading()" callback; this can never fire (for JDO objectstore).

Incubating features

These are not formally released.


  • ISIS-2955 - [kroviz] Build fails on Windows (commands 'cp' and 'mv' not available)

  • ISIS-2949 - [kroviz] Execute All MenuBar Actions at Once

  • ISIS-2913 - [kroviz] Handle Multiple Server Connections (Gracefully)

  • ISIS-2878 - [kroviz] Package Client into demo/domain

  • ISIS-2872 - [kroviz] Upgrade Kotlin/KVision Dependencies

  • ISIS-2838 - [kroviz] Basic Types / Strings

  • ISIS-2348 - [kroviz] Replay User Events


  • ISIS-2924 - [Vaa] Encapsulate node.js within Vaadin Viewer’s Maven Artifacts