2.0.0-M6
This release adds plenty of new features, along with numerous improvements and bugfixes.
Highlights are:
-
full support for the
CommandPublisher
,ExecutionPublisher
andEntityPropertyChangePublisher
SPIs for both JPA and JDO. -
support for keycloak authentication (leveraging Spring security)
-
view models for serializable classes now view models;
-
a library of architecture tests to detect possible programming issues with your domain apps
-
InteractionService
added to the applib, allowing programmatic control of sessions (interactions) -
improvements to built-in and SecMan’s security (impersonation, surface
UserMemento
, decouple SecMan from Shiro) -
new
@MemberSupport
annotation -
removal of
@MemberOrder
annotation (now folded into the@XxxLayout
annotations)
Also, the minimum version of Java was bumped to JDK11.
New Feature
-
ISIS-2826 - Implement Lightweight Property Change Tracking for JPA
-
ISIS-2820 - Additional arch tests for entities etc.
-
ISIS-2813 -
TableColumnOrderingService
using files -
ISIS-2807 - Improve arch tests for subpackages to work across modules.
-
ISIS-2803 - Rewrite keycloak integration to use Spring security
-
ISIS-2802 - Change
AsciiDoc
andMarkDown
types to convert on the fly, and rename 'Markup' to 'Html' -
ISIS-2789 - Implement
EntityChangePublisher
for JPA -
ISIS-2781 - Add library of architecture tests.
-
ISIS-2779 - Support JVM serialization as a way to mementos of view models that implement java.io.Serializable.
-
ISIS-2775 - Allow mixin actions to be declared on domain services.
-
ISIS-2757 -
ServiceRegistry.lookupService
should honour@Primary
as earlier than any@Priority
-
ISIS-2756 - Unit test support fixes (docs and impl)
-
ISIS-2754 - Use
@AliasFor
to declare Spring’s@Named
from@DomainService(logicalTypeName)
-
ISIS-2738 - Metamodel: add diff report (along the various MM downloads)
-
ISIS-2736 - Metamodel: add (diff friendly) download format ASCII (as a variant to XML)
-
ISIS-2734 - Extend the API of
VirtualClock
to make it a little easier to work with. -
ISIS-2733 - Surface
UserMemento
on the UI -
ISIS-2728 - Extend
UserMemento
to contain application tenancy path, and callback to allow secman etc to populate. -
ISIS-2727 - Expose minimal
InteractionFactory
in the applib, to create new InteractionLayers. Perhaps this is an extension of SudoService ? -
ISIS-2705 - Allow positioning of Wicket viewer’s popups to be configured
-
ISIS-2677 - Locating the
layout.xml
should search up the (class) inheritance hierarchy -
ISIS-2673 - Rationalize secman fixture scripts. In particular, all regular users of secman should be granted isis.security.LogoutMenu
-
ISIS-2672 - Consider promoting the feature dom out of secman and up into core.
-
ISIS-2658 - Factor out BDD specs as a separate surefire execution so can turn on or off via system properties.
-
ISIS-2635 - Add
TableColumnVisibilityService
so that implementations can be used for filtering only. -
ISIS-2622 - CommandLog: split impl into JDO and JPA variants
-
ISIS-2608 - Extend Wicket viewer to show
avatarUrl
andrealName
on header (if available) -
ISIS-2607 - Decouple SecMan from the authenticator API that is in use.
-
ISIS-2606 - Extend
UserMemento
to include gravatar URL -
ISIS-2605 - Allow spring security to handle arbitrary authenticated principals (SPI)
-
ISIS-2534 - Spring Security Integration
-
ISIS-2442 - Bring/document in base, docx from incode-platform.
-
ISIS-1720 -
namedXxx()
supporting method for dynamic names of actions, properties etc.
Improvement
-
ISIS-2853 - Cover all RO Viewer Endpoints with Debug Logging
-
ISIS-2850 - Remove uses of deprectated SecMan config beans
-
ISIS-2841 - Fix module path issues to allow javadoc plugin to be reinstated
-
ISIS-2836 - Remove the unnecessary mavendeps, cleanup uses of JDK11+support
-
ISIS-2831 - WicketViewer/ScalarPanelTextField: page scrolls to the top on editing a field
-
ISIS-2829 - Cannot run WicketViewer on JVM 17
-
ISIS-2819 - Extend base subdomain’s convenience annotations, provide JDO applib variants
-
ISIS-2818 - Add overrides for XxxDomainEvent for hide/disable/invalidate to evaluate a supplier
-
ISIS-2817 - Module 'Apache Isis Core - Schemas' cannot build with JDK-16 (or 17-ea)
-
ISIS-2809 - HiddenTypeFacetDerivedFromAuthorization should take actions into account
-
ISIS-2806 - Add some overrides for
SudoService
/InteractionContext
to switch the clock. -
ISIS-2801 - Add JPA support for
Blob
andClob
(multi-valued) -
ISIS-2790 - Allow the Wicket viewer’s Password reset feature email to support xxx+yyy@ format for emails.
-
ISIS-2777 - Extend
AbstractUserAndRoleFixtureScript
to allow username and roles to be supplied lazily. -
ISIS-2773 - Extend
FixtureScript
API to allow checking of optional params -
ISIS-2772 - Extend
ApplicationFeatureId
's API to create from LogicalType -
ISIS-2771 - Remove
Object_stopImpersonating
mixin -
ISIS-2769 - Remove execPrereq and addPrereq from
BuilderScriptAbstract
-
ISIS-2766 - Make ObjectIcon(s) available via ManagedObject(s) directly.
-
ISIS-2764 -
stopImpersonating
should always be available (under isis.applib) -
ISIS-2762 - Allow
HomePageResolverService
to be substituted out. -
ISIS-2760 - Wicket/BS-Grid: remove css class "col" from container div
-
ISIS-2755 - add
@Priority
to all menu@DomainService
's -
ISIS-2753 - to avoid explicit casting, make
AbstractDomainEvent#getSubject()
return<T> T
-
ISIS-2742 - Allow meta-annotations to be declared for entities.
-
ISIS-2740 - Wicket Viewer: menu dropdowns should have higher z-index than toast messages
-
ISIS-2732 - Rationalize fixture applib’s
Clock
singleton vsVirtualClock
(hopefully remove the former) -
ISIS-2730 - If home page fails to render (eg due to insufficient permissions), then just suppress.
-
ISIS-2726 - Simplify SudoService and others to be based on InteractionService
-
ISIS-2725 - Support logical type names with value types
-
ISIS-2717 - Replace
FixtureScriptsSpecificationProvider
with configuration properties. -
ISIS-2715 - Shiro permissions should use namespace rather than package; fix
-
ISIS-2713 - All framework-contributed metamodel features should be in isis.<something> namespace
-
ISIS-2712 -
MetaModelServiceMenu
downloadMetamodelXml
should filter on logical type namespaces, not on packages -
ISIS-2707 - Extend
MetaModelServiceMenu
downloadMetaModelCsv
to include the logicalTypeName as a column. -
ISIS-2750 - To allow beans to be overridden, use
@Priority
instead of@Order
and remove any@Primary
annotations. -
ISIS-2711 -
TreeNode
should be a value in the metamodel -
ISIS-2709 - Fix permission seed data for h2console, make available to secman admin; other minor simplifications
-
ISIS-2701 - SecMan: rename
ApplicationUser_permissions
toApplicationUser_effectiveMemberPermissions
-
ISIS-2700 - If no members visible for type, then veto viewing of instances of that type.
-
ISIS-2699 - Replace
SecmanConfiguration
with configuration properties. -
ISIS-2698 - Rename secman’s 'api' and 'model' submodules to 'applib' and 'integration' respectively
-
ISIS-2697 - Simplify secman’s support for user-registration.
-
ISIS-2694 - Can we simplify secman and get rid of SecurityRealm / SecurityRealmCharacteristics ?
-
ISIS-2693 - Not sure how filterPermissions is meant to work exactly - slightly confusing output
-
ISIS-2692 - Rename ApplicationUserStatus from ENABLED/DISABLED to LOCKED/UNLOCKED
-
ISIS-2691 - Add
@MemberSupport
for all framework-provided mixins. -
ISIS-2689 - Allow multiple Authorizors to be registered, with mechanism to decide which to use.
-
ISIS-2681 - Allow members of a type hierarchy including interfaces to share the same
objectType
=… -
ISIS-2668 - Suppress
Object_objectType
andObject_objectIdentifier
unless for entities. -
ISIS-2665 -
@Action(associateWith=)
requires separation of layout and behavioral concerns -
ISIS-2659 -
@DomainObject(autoCompleteAction=)
should be renamed toautoCompleteMethod
-
ISIS-2655 - "You have been redirected" message gets in the way of prototypine menu.
-
ISIS-2648 - Wicket: simplify collection models and member mementos
-
ISIS-2644 - Remove
Persistable_datanucleusIdLong
… duplicated byObject_objectIdentifier
-
ISIS-2640 - Spring
@Profile
support -
ISIS-2633 - Quieten DN warnings if 1:N mismatch in
ApplicationTenancy
hierarchy -
ISIS-2632 - An error in security seed scripts results in none being installed, but no warning or stacktrace to diagnose from.
-
ISIS-2631 - Make terminology consistent in applib (
@DomainObject(objectType=…)
,TableColumnOrderService
,ApplicationFeatureId
,BookmarkService
) -
ISIS-2626 - Do not serve HTTP requests until the Application is fully initialized.
-
ISIS-2621 - Allow for usernames with more than 30 characters in SecMan
-
ISIS-2616 - Auto-select fixture script in drop-down if only one
-
ISIS-2615 - Clean up configuration view model a tiny bit
-
ISIS-2614 - productionise secman a bit more (finish off
ImpersonsateUserAdvisor
) -
ISIS-2613 - To reduce CI build time, split out regression tests into multiple modules, so that they can run in parallel
-
ISIS-2612 - Promote
@Model
annotation to Applib (maybe find a better name also) -
ISIS-2610 - Add Permission (to role) action in SecMan should use modal dialogue
-
ISIS-2609 -
PrincipalForApplicationUser
should use theApplicationUser
username -
ISIS-2604 - Metamodel: don’t allow annotations to occur more than once for mixins
-
ISIS-2602 - Programming Model: add
@ActionLayout
/@PropertyLayout
(fieldSetId=…, fieldSetName=…) -
ISIS-2601 - Remove ActionPrompt page from Wicket viewer (unused)
-
ISIS-2600 - Remove microprofile from incubator
-
ISIS-2595 - Translation context should be provided consistently for collections/properties/services …
-
ISIS-2594 - Add EclipseLink configuration property support
-
ISIS-2593 - Recognize
eclipselink.*
configuration options and pass them over to the EclipseLink integration. -
ISIS-2592 - Fix schemas for secman (JDO and JPA) to be in line with the owning module.
-
ISIS-2589 - Remove usage of deprecated Wicket API ClientProperties.isBrowserInternetExplorer()
-
ISIS-2569 - Further rationalize value types representing the metamodel.
-
ISIS-2561 - Metamodel: Resurrect orphaned supporting method validator
-
ISIS-2557 - Provide a more general purpose
Authenticator
as an alternative to having to route through Shiro. -
ISIS-2550 - Add support for impersonation (RunAs menu action)
-
ISIS-2549 - Configuration (Menu Action): show additional runtime information
-
ISIS-2545 - Replace
@MemberOrder#name()
with@PropertyLayout#fieldSetId()
(andfieldSetName
) -
ISIS-2523 - Combine
@MemberOrder
into@PropertyLayout
etc. -
ISIS-2513 - Add JPA support Isis
Blob
,Clob
,AsciiDoc
,Markdown
,SSE
and other value types. -
ISIS-2490 -
@Property(entityChangePublishing=DISABLED)
-
ISIS-2471 - Remove support for
validate()
at Domain Object Level -
ISIS-2329 - Support nested non-static mixins, with domain event class declared within.
-
ISIS-1488 - For auditing,
Blob
s andClob
s should be automatically ignored (also ISIS-1489) -
ISIS-1046 - Get rid of chatty Shiro messages about no CacheManager being set.
-
ISIS-299 - Document the logout action. (Was: Extend the authentication API so that can explicitly logout session.)
Bug
-
ISIS-2854 - Secman’s
UserMementoRefinerForApplicationUser
introduces circular dependency -
ISIS-2845 - Reinstate automatic injection into entities when resolved.
-
ISIS-2835 -
JpaPropertyPublishingTest
succeeds in isolation, fails when run in sequence to other tests -
ISIS-2834 - Pending Parameters Model is not capturing values of type LocalDateTime
-
ISIS-2833 -
@Title
throws NPE. -
ISIS-2830 - Wicket Viewer:
ScalarPropertyModel.getManagedProperty()
caching is too agressive -
ISIS-2828 -
ExecutionParametersDefault
:asKeyValueMap(…)
assumes newline to be 'n' -
ISIS-2827 - Wicket
Blob
/Clob
: filename is rendered twice in table cells -
ISIS-2824 - Ensure
ImpersonatedUserHolder
can be accessed during initial fixtures -
ISIS-2816 - Impersonation: eventually throws exception (in the background?)
-
ISIS-2815 - TableColumnOrderServiceUsingTxtFile: line parsing will eventually fail
-
ISIS-2814 - Tooltip doesn’t appear for icons in collections
-
ISIS-2812 - Regression:
cssClassFa
andcssClass
not honored withmenubars.layout.xml
-
ISIS-2811 - Regression: Fontawesome Icons are not showing up when based on prefix pattern.
-
ISIS-2800 - reasonVetoed is null, causing NPE
-
ISIS-2799 - JPA: Framework caches and does not re-read changed state from the database.
-
ISIS-2798 - ObjectBulkLoader should inject dependencies into Pojos
-
ISIS-2796 - Use base64 encoding with o.a.wicket….CookieUtils.save/load.
-
ISIS-2794 - JPA Lifecycle events do not fire
-
ISIS-2793 - Impersonation with roles doesn’t work with keycloak (next interaction logs out)
-
ISIS-2791 -
TitleFacetViaMethodsFactory
needs to unconditionally removetoString
method from action candidates -
ISIS-2788 - XRay interferes with auditing, as it causes the pending changes to be drained/discarded.
-
ISIS-2787 - Names cannot be overridden in
menubars.layout.xml
-
ISIS-2785 - Title tooltip shows the base class, rather than concrete
-
ISIS-2784 - fix implementation of
FixtureScript#wrapMixin
-
ISIS-2780 - Regression:
IllegalArgumentException
with Wrapper using Mixin -
ISIS-2778 - Action returning an unchanged view model does not re-inject domain services into local mixins…
-
ISIS-2776 -
@Parameter
(regex=…) does not allow for parameter to also be optional. -
ISIS-2767 - secman m:n link table for ApplicationUser/ApplicationRole is in default schema
-
ISIS-2763 - JPA
ApplicationUser
/ApplicationRole
should not use CascadeType.ALL -
ISIS-2761 - Invoking link for rel object-icon results in HTTP 404
-
ISIS-2758 - Initial fixture scripts can fail to load due to JSF not present exception.
-
ISIS-2751 -
ModuleFixtureService#modules()
needs to be well-defined, to walk the graph correctly … -
ISIS-2748 - Presence of "mustSatisfy" Specifications causes integ tests to fail …. UNKNOWN bean sort
-
ISIS-2746 - Fix the order of listeners for metamodel event (security seeding should be early, fixture installation should be late)
-
ISIS-2739 - Download menubars XML is broken, due to
@DomainObject
annotation on enum -
ISIS-2724 - [Regression] Some mixed-in actions don’t show up
-
ISIS-2723 - [Regression] JDO:
@Column(allowsNull="true")
is not interpreted as Optionality.OPTIONAL -
ISIS-2722 - [Regression] Markup value types are hidden
-
ISIS-2721 - [Regression]
Blob
/Clob
properties are not rendered with table columns -
ISIS-2720 - [Regression]
FormExecutorDefault#executeAndProcessResults
throwsIllegalArgumentException
-
ISIS-2719 - with secman, Impersonation does not correctly figure out permissions of switched user
-
ISIS-2716 - Can’t Login to demo wicket nightly 20210602
-
ISIS-2710 - Provide a mechanism so that view models wrapping "just deleted" entity objects don’t attempt to reset their state after execution (resulting in runtime error).
-
ISIS-2708 - Add bottom margin spacing after tab groups in Wicket viewer
-
ISIS-2706 - JPA does not persist entities with application-defined primary keys
-
ISIS-2704 - If there is an select2 drop-down param, this takes focus even if not first field
-
ISIS-2696 - [Regression] MM validation fails on abtract mixin member support method
-
ISIS-2690 -
ApplicationUser
is unable to modify their own user detais. -
ISIS-2688 - Impersonation doesn’t actually work … AuthorizorShiro still delegates to ApplicationUser as originally logged in.
-
ISIS-2686 - cannot 'identify' the value type org.apache.isis.applib.value.LocalResourcePath, as values have no identifier
-
ISIS-2684 - RO domain-types/<xxx> representation of
members
returns a list instead of a map -
ISIS-2682 - Cannot read field "mutatorFacetType" because "mutatorSpec" is null
-
ISIS-2680 - [Regression] SecMan cannot open ME menu entry: no such object
-
ISIS-2679 - [Regression] SecMan cannot list Roles
-
ISIS-2674 - Collections of Interfaces do not show columns (eg
ApplicationUser#getRoles()
) -
ISIS-2669 - When both Wicket- and RO-Viewer are provisioned, REST requests fail due to HttpSession creation not allowed
-
ISIS-2666 - Defaults callback for dependent vector param is never called when change preceding param arg.
-
ISIS-2664 - [Regression] Collection Panel: associated actions are not showing up, if the assoc. is specified in the layout.xml only
-
ISIS-2661 - [Regression] Parented Collections: some associated actions are not showing up
-
ISIS-2657 - If action parameter first field is an auto-complete drop-down, then it doesn’t get focus.
-
ISIS-2647 - DB connection leak with DataSourceIntrospectionService
-
ISIS-2645 - Unreferenced Action not showing up
-
ISIS-2643 - Dependent default parameters don’t refresh
-
ISIS-2642 - Wildcard Generic Type Args are not properly detected, always using Object instead
-
ISIS-2641 - SecMan: abstract ApplicationFeatureViewModel.getPermissions() renders with missing columns
-
ISIS-2638 - Dependent defaults seems to be broken, eg impersonateWithRoles
-
ISIS-2636 - TableColumnOrderForCollectionTypeAbstract should return null for non-recognised collection types
-
ISIS-2630 - Regression: SecMan User’s Permission Tab is gone
-
ISIS-2629 - Wicket BS4 Regression: Disabled Action buttons should have mouse cursor disabled style
-
ISIS-2628 - Wicket BS4 Regression: Property edit button tooltips don’t dissapear on inline edit
-
ISIS-2625 - Removing access to a property nevertheless shows as column in table for user.
-
ISIS-2623 - Regression: DomainObject’s property setter may never be interpreted as an action
-
ISIS-2619 - TenantedAuthorizationFacetFactory should not use Mixin Class to filter evaluators
-
ISIS-2618 -
ConcurrentModificationException
withMethodFinderUtils.findAnnotatedMethod
-
ISIS-2597 - Prevent duplicate info messages being rendered
-
ISIS-2591 - source release seems to zip up node_modules & datanucleus.log
-
ISIS-2590 - MessageService informUser messages not presented in the UI
-
ISIS-2588 - Icon size in breadcrumb misaligned with font size
-
ISIS-2587 - [WON’T FIX]Navigable parent not updated in breadcrumb panel
-
ISIS-2583 - NPE from ConfigurationViewServiceDefault if there are NO datanucleus.log properties defined.
-
ISIS-2580 - Duplicated UI notification on DataAccessExceptions.
-
ISIS-2573 - Regression-Testing: add entity change publishing tests
-
ISIS-2562 - SecMan: New User modal dialog … selected inital role has no label only icon
-
ISIS-2493 - Actions with same name but different signature potentially share the same metamodel member id.
-
ISIS-2488 - Add metamodel validation: detect object-type (logical-type) name clashes
-
ISIS-2465 - Kroviz - Demo Menu Actions Show No Output
-
ISIS-2390 - Not possible to navigate to date/time drop-down using keyboard.
-
ISIS-2253 - Derive ChoicesFacet from ChoicesFromFacet, remove special-case logic.
-
ISIS-2063 - Entering a string such as "10:45" for a joda LocalTime causes stack trace.
-
ISIS-2015 - Text (multiline?) can be changed on non-editable field, without using edit.
Dependency upgrade
The list below is not comprehensive:
-
ISIS-2849 - Bump Spring Boot from 2.5.3 to 2.5.4
-
ISIS-2783 - Bump resteasy-spring-boot-starter from 4.8.0.Final to 4.8.1.Final
-
ISIS-2808 - Java 11 to replace Java 8 compliance for the entire code base
-
ISIS-2685 - Bump spring-boot from 2.4.5 to 2.5.0
-
ISIS-2662 - Get ready for Maven 3.8.x
-
ISIS-2617 - Upgrade Bootstrap 3 to 4 (WicketStuff)
Demo and Starter Apps
-
ISIS-2620 - Demo: create a JPA stack based variant
-
ISIS-2660 - For starter apps, remove persistence.xml (we can get by without it).
-
ISIS-2584 - Disable CORS for SimpleApp
-
ISIS-2687 - To reduce learning curve, remove archunit, lockdown and BDD specs from simpleapp.
-
ISIS-2714 - Update helloworld and simpleapp with permissions to allow users to logout (!)
-
ISIS-2652 - simpleapp’s SimpleObject.layout.xml throws metamodel errors unless fieldSetId="…" is defined also.
-
ISIS-2611 - for simpleapp, the Smoke_IntegTests seem to be run twice (by two different surefire executions).
Won’t Fix / Not a Problem / Duplicates
No code changes were made to close these tickets:
-
ISIS-2786 - [NOT A PROBLEM] A tabgroup with tab that contains multiple fieldsets does not surround them correctly (UI cosmetics only)
-
ISIS-2747 - [OBSOLETE] Document the fact that secman requires SudoService to specify a user with appropriate roles
-
ISIS-2745 - [DUPLICATE] Allow actions to be contributed to domain services also.
-
ISIS-2675 - [WON’T FIX] Object_ mixins should only be contributed to entities and view models.
-
ISIS-2671 - [WON’T FIX] Extend ApplicationRole to show the inferred permissions (similar to ApplicationUser)
-
ISIS-2040 - [WON’T FIX] Authentication/Shiro: Add OpenID support
-
ISIS-2555 - [WON’T FIX] EntityChanges (as consumed by EntityChangesSubscriber) should associate with transaction, not interaction?
-
ISIS-2514 - [DUPLICATE] add JPA support commandlog extension
-
ISIS-2603 - [WON’T FIX] Simplify layout styles (that are available for download when prototyping)
-
ISIS-2574 - [WON’T FIX] Swagger: Harmonize dependencies of metamodel and vaadin viewer
-
ISIS-2650 - [DUPLICATE] Support domain events for property and collection mixins