Release Notes

Summary

This table summarises all releases of Apache Isis to date.

Version

Date

Release notes

Features

Improves

Bugs

JIRA relnotes

1.15.1

25-09-2017

Bug fixes, Wicket 7.9.0, Markup valuetype

5

4

9

1.15.0

14-08-2017

Inline prompts, Wicket 7.x

7

25

34

1.14.0

19-02-2017

Actions with collection parameters, metamodel validations.

3

11

11

1.13.2.1

03-jan-2017

Patch release for simpleapp archetype only (docker images, regular actions instead of mixins)

0

2

0

1.13.2

14-dec-2016

Patch release, modular simpleapp archetype

2

9

5

1.13.1

30-oct-2016

Patch release, better support for docker

1

13

21

1.13.0

11-jul-2016

Commands, interactions and internal refactorings

27

50

23

1.12.2

06-jun-2016

Bug-fix release

0

0

2

1.12.1

12-apr-2016

Bug-fix release

0

0

4

1.12.0

29-mar-2016

Dynamic XML layouts

7

21

21

1.11.1

17-jan-2016

Re-release under Java 1.7 (using toolchains plugin).

0

0

1

1.11.0

02-jan-2016

More flexible REST API, view models using JAXB.

9

19

12

1.10.0

10-nov-2015

New domain services, multi-tenancy support and mixins.

7

18

12

1.9.0

1-sep-2015

AppManifest, Restful Objects representations and other "under-the-cover" improvements.

18

50

25

1.8.0

24-feb-2015

Wicket viewer moved into core; todoapp archetype moved to Isis Addons (non-ASF).

27

41

20

1.7.0

18-oct-2014

Module functionality previously in 1.6.0 now retired; use Isis Addons (non-ASF) instead.

4

9

20

1.6.0

28-jul-2014

Restful Objects viewer, JDO/Datanucleus Objectstore and Shiro Security all moved into core. Quickstart-wrj archetype renamed to todoapp; simple-wrj archetype renamed to simpleapp. Some functionality copied/refactored as Isis Addons (non-ASF).

6

12

15

1.5.0

08-jun-2014

No longer releasing security-file

3

19

13

1.4.1

14-mar-2014

Patch release

0

2

2

  • objectstore-jdo-1.4.1

  • viewer-wicket-1.4.1

  • archetype-simple-wrj-1.4.1

  • archetype-quickstart-wrj-1.4.1

1.4.0

11-mar-2014

56

62

26

  • core-1.4.0

  • objectstore-jdo-1.4.0

  • security-file-1.4.0

  • security-shiro-1.4.0

  • viewer-restfulobjects-2.2.0

  • viewer-wicket-1.4.0

  • archetype-simple-wrj-1.4.0

  • archetype-quickstart-wrj-1.4.0

1.3.1

7-nov-2013

Patch release

1

0

3

  • viewer-wicket-1.3.1

  • archetype-simple-wrj-1.3.1

  • archetype-quickstart-wrj-1.3.1

1.3.0

25-oct-2013

WRJ archetype renamed to Quickstart WRJ. Simple WRJ archetype added.

52

61

30

  • core-1.3.0

  • objectstore-jdo-1.3.0

  • security-file-1.0.2

  • security-shiro-1.3.0

  • viewer-restfulobjects-2.1.0

  • viewer-wicket-1.3.0

  • archetype-simple-wrj-1.3.0

  • archetype-quickstart-wrj-1.3.0

1.2.0

30-may-2013

22

41

15

  • core-1.2.0

  • objectstore-jdo-1.2.0

  • security-file-1.0.1

  • security-shiro-1.1.1

  • viewer-restfulobjects-2.0.0

  • viewer-wicket-1.2.0

  • archetype-wrj-1.0.3

1.1.0

31-jan-2013

9

18

8

  • core-1.1.0

  • security-shiro-1.1.0

  • viewer-wicket-1.1.0

  • archetype-wrj-1.0.2

1.0.1

10-jan-2013

Combining RestfulObjects and Wicket viewers into a single webapp, along with Shiro security

1

  • security-shiro-1.0.0

  • archetype-wrj-1.0.1

1.0.0

24-dec-2012

First release having graduated

8

33

6

  • core-1.0.0

  • security-file-1.0.0

  • viewer-wicket-1.0.0

  • viewer-restfulobjects-1.0.0

  • archetype-wrj-1.0.0

0.2.0-incubating

20-feb-2012

  • 0.2.0-incubating

0.1.2-incubating

13-jul-2011

First release in the ASF incubator

  • 0.1.2-incubating

1.15.1

This is primarily a bug fix release. Notable fixes include upgrading to Wicket 7.9.0 (to address a major page store issue), and a fix for the Wicket viewer’s reference panel with choices.

The release also has some minor new features: a new Markup value type that allows arbitrary HTML to be rendered in the Wicket viewer, an extension to Restful Objects to provide a new "layout" resource, and a new "logout" page for Wicket viewer to support monitoring tools.

New Feature

  • ISIS-1717 - To make monitoring applications reliably able to logout, allow session to be logged out just by hitting a simple HTTP GET page ("/logout")

  • ISIS-1697 - Extend RO viewer, new "layout" resource to provide the BS3 layout grid.

  • ISIS-1696 - Extend RO viewer so that services indicate their menuBar (primary/secondary) as an extension

  • ISIS-1616 - Support URLs as a link / "As-is" HTML rendering

  • ISIS-571 - [WON’T FIX] To (hopefully) improve performance, use Render.EAGERLY as a hint to instruct JDO to eagerly load the collection (using a dynamic fetch group).

Improvement

  • ISIS-1733 - Improve API of RepositoryService#persist, so returns the object being persisted.

  • ISIS-1719 - QueryResultsCache should be disable when running fixture scripts.

  • ISIS-1707 - Suppress mandatory red-star on read-only properties

  • ISIS-1706 - Add 'username' config parameter to email service

Bug

  • ISIS-1731 - @Property(hidden=Where.PARENTED_TABLES) does not render correctly in standalone collection view

  • ISIS-1716 - Framework is silently aborted xactns that have a JDOUserExceptions thrown, resulting in an audit trail that is misleading and confusing behaviour in some circumstances

  • ISIS-1715 - Service priority as defined by @DomainServiceLayout#menuOrder or @DomainService#menuOrder not honored.

  • ISIS-1713 - Revert to Wicket 7.7.0 (issue with Wicket filestore filling up)

  • ISIS-1711 - Reference panel that returns choices not same as current field tramples over.

  • ISIS-1705 - Addon module isis-module-settings is not working after upgrade to Isis 1.15.0

  • ISIS-1699 - Titles of (editable) references not shown in collections

  • ISIS-1466 - Hidden(where=REFERENCES_PARENT) seems to be broken.

Dependency upgrade

Task

Documentation

  • ISIS-1708 - Broken Links according to W3C checker

1.15.0

The main new feature of 1.15.0 is inline prompts: the ability to edit a property or invoke an action (associated with a property) without requiring a modal dialog box. There have also been several improvements in the ability to tab around the UI.

The version of Apache Wicket has also been upgraded from 6.x to 7.x.

Most applications written against v1.14.x should run against v1.15.0 with few if any changes. That said, we do recommend that you read and keep in mind the migration notes when you upgrade your app.

The supporting (non-ASF) Isis Addons and Incode Catalog have also been combined into a single "Incode Platform".

While each module can still be consumed individually, the new platform versions consistently (a change in any one module will result in a re-release of all). This should make these modules easier to consume, and easier to maintain/develop.

All the modules remain open source, still licensed under the ASF v2.0 license.

New Feature

  • ISIS-1674 - Create a "hello world" archetype

  • ISIS-1641 - Allow the Wicket debug bar to be optionally shown, even in non-prototyping mode.

  • ISIS-1640 - Allow bookmarks and breadcrumb panels to be hidden.

  • ISIS-1633 - Allow properties to be "edited" using an action (ie using multiple parameters)

  • ISIS-1621 - Promote HsqlDbManager from simpleapp archetype to applib.

  • ISIS-1617 - Add support for the Wicket debug bar, for better diagnostics on session size etc

  • ISIS-1603 - Inline prompts for property edits and action invocations.

Improvement

  • ISIS-1688 - Service priority should honour either @DomainServiceLayout#menuOrder or @DomainService#menuOrder

  • ISIS-1687 - Support for TypeSafe queries with a unique result in IsisJdoSupport

  • ISIS-1686 - Allow integration tests to be bootstrapped with less boilerplate

  • ISIS-1685 - Add missing javadocs for packages in the applib

  • ISIS-1669 - For JAXB view models, metamodel validator for missing JAXB adapters on date/time properties, or on persistable reference types.

  • ISIS-1662 - Metamodel validator that any view model should have a no-arg constructor.

  • ISIS-1658 - Subscribers on title UI event, css and icon should override title() or @Title etc in the class itself.

  • ISIS-1655 - QueryResultsCache should be invalidated prior to the render phase.

  • ISIS-1654 - per-arg validation not fired for enum (ValueChoicesSelect2Panel)

  • ISIS-1653 - Allow properties to be dynamically made visible/non-visible when not redirecting

  • ISIS-1652 - Inline prompts should not show gap when no action buttons visible

  • ISIS-1651 - Inline prompt should provide CSS identifying the action being prompted for.

  • ISIS-1630 - view models with inline prompts don’t show which fields are mandatory or not.

  • ISIS-1627 - Error handling for axon event bus

  • ISIS-1614 - Improve responsive design of header

  • ISIS-1613 - On action invoke/property edit, don’t reload page, just repaint changed components (and allow unchanged components to opt out).

  • ISIS-1611 - Allow framework services to be overridden without having to remember to set @DomainService#menuOrder to a lower value.

  • ISIS-1592 - Extend XSD for command and interaction events, show logicalMemberIdentifier as well as memberIdentifier

  • ISIS-1590 - Performance issue: don’t call Clause#getValueOf() with ApplicationFeatureId

  • ISIS-1535 - MetaModel CSV should not list mixins as types.

  • ISIS-1528 - Rename isis-viewer-wicket artifacts to isis-core-viewer-wicket, for consistency with other core modules.

  • ISIS-1504 - Metamodel validator should check that all classes annotated as view models are instantiable (are not member inner classes)

  • ISIS-1468 - Extend TransactionService to include API of TransactionStateProviderInternal.

  • ISIS-1394 - Suppress fieldset banner (name) if only one fieldset in tab (to reduce page real estate usage).

  • ISIS-1391 - Combine MessageBrokerInternalService with MessageService, and…​

Bug

  • ISIS-1690 - Better diagnostics if a service’s @PostConstruct fails, and ensure that all get initialized

  • ISIS-1689 - ObjectSpecIdFacet from JDO schema being clobbered by objectType inferred from class name, causing a validator to fail unnecessarily

  • ISIS-1676 - Standardise framework mxins to use @Mixin(method="act") or @Mixin(method="prop") etc.

  • ISIS-1675 - swagger spec file does not support parameters with an id starting with "."

  • ISIS-1668 - INLINE_AS_IF_EDIT actions do not honour hidden or disabled facets.

  • ISIS-1667 - Rework ActionParametersPanel so that only rendered if there is a N-arg action …​ it isn’t used to implicitly invoke an action for a no-arg action.

  • ISIS-1657 - Fix for CSS for disabled drop-down actions on right of property.

  • ISIS-1650 - Disabled properties for JAXB view models are never disabled.

  • ISIS-1649 - Update docs with Erik’s runAs gist

  • ISIS-1648 - Disable copy link (because hint as provided in the bookmarks seems to be broken)

  • ISIS-1647 - Hitting escape twice for modal dialogs causes a stack trace

  • ISIS-1642 - Refactor breadcrumb panel to remove memory leak

  • ISIS-1631 - jdoqlFromClause validation error with multi-level inheritance

  • ISIS-1626 - Confirmation Dialog not shown on no-parameter Menu Actions

  • ISIS-1625 - Tooltips do not show up on Menu Actions (using the describedAs feature)

  • ISIS-1619 - Blob/Clob Action results are cached no matter what

  • ISIS-1618 - Action Button with Confirmation Dialog ignores second shot

  • ISIS-1615 - Tooltip for Actions not always shown …​ @ActionLayout.describedAs

  • ISIS-1610 - Unable to use space bar to toggle checkboxes.

  • ISIS-1609 - @Property(editing=ENABLED) not working for some JAXB view model properties.

  • ISIS-1608 - Error "ConcurrentModificationException" during startup

  • ISIS-1607 - Swagger HTML doesn’t load correctly, missing webjars

  • ISIS-1606 - Running with bypass authenticator seems to be failing, not looking up class from its 'bypass' alias

  • ISIS-1605 - When entering / editing LocalDate in UI on Viewmodel the current date is taken instead of entered date

  • ISIS-1602 - Handle mixins without any NotContributedFacet (assume is contributed as action)

  • ISIS-1600 - Autocomplete repositories not being used/detected when using an action with a collection parameter

  • ISIS-1597 - review the buildnumber plugin in the simpleapp archetype

  • ISIS-1596 - Parameter translations broken ?

  • ISIS-1595 - Configuration property for JDOQL VARIABLES clause mismatch

  • ISIS-1572 - RestfulObjects viewer - Service members empty

  • ISIS-1551 - Problems with startup under certain circumstances

  • ISIS-1486 - three-way Boolean checkbox doesn’t seem to be rendering correctly (shows as two-way only)

  • ISIS-1224 - drop down box (select2) is orphaned and floats top-right under certain circumstances

  • ISIS-1183 - Copying a property value in view mode doesn’t work in Firefox on Windows

Dependency upgrade

  • ISIS-1353 - Upgrade minor dependencies.

  • ISIS-1223 - Upgrade Wicket to 7.x

  • ISIS-1523 - Upgrade wicket-bootstrap and related, and revert ISIS-1520

Documentation

  • ISIS-1644 - Broken Links

  • ISIS-1604 - Extend support for SVG (3 additional dependencies, it seems)

  • ISIS-1594 - Provide an 'edit' button on the isis documentation

  • ISIS-1579 - Asciidoc Template/Stylesheet issues

  • ISIS-1575 - Problems with download page

Task

Incode Platform

Implemented in the (non-ASF) Incode Platform.

  • ISIS-513 - [ADDONS] Wicket: Pdf.js display in browser natively

Closed (other reasons)

The issues below are either not a problem, or have been implemented in previous releases but (for whatever reason) not closed at that time.

  • ISIS-1691 - [NOT A PROBLEM] Bootstrap paging navigators "pageNumber" failing to render correctly

  • ISIS-1661 - [NOT A PROBLEM] once selected, doesn’t seem to be possible to set a @Nullable parameter that has an autoComplete back to null

  • ISIS-1673 - [CAN’T REPRODUCE] jdoqlFromClause validator is too strict, does not allow for NOT EXISTS

  • ISIS-1467 - [INCOMPLETE] Deprecate features/API which are either unused or for which there is a better replacemen

  • ISIS-1293 - [DUPLICATE] when in prototype mode, have a mechanism to temporarily hide the prototyping menus …​ eg for taking screenshots

  • ISIS-1034 - [WON’T FIX] Support bulk actions that return Blobs and Clobs

  • ISIS-511 - Provide the ability to plugin a dashboard for the Wicket viewer

1.14.0

Apache Isis 1.14.0 introduces one significant new feature, namely the ability to invoke actions with collection parameters. This is rendered by the Wicket viewer as a multi-select drop-down. It is also captured in the DTO/XML for both commands and published interaction events. Note though that Restful Objects viewer currently does not provide any support.

Also included in the release are a number of minor improvements. In particular, there are now a number of metamodel validations intended to make it apps already in production easier to refactor. These include a new objectType attribute for @DomainService, analogous to the same attribute on @DomainObject. The EmailService has been improved so it is easier to use in system test (non-prod) environments. Finally, a new TableColumnOrderService to allow column order to be fine-tuned.

The release also has a number of bug fixes.

Most applications written against v1.13.x should run against v1.14.0 with few if any changes. That said, we do recommend that you read and keep in mind the migration notes when you upgrade your app.

New Feature

  • ISIS-1529 - TableColumnOrderService, to allow column order to be fine-tuned (or columns suppressed)

  • ISIS-709 - Support multi-select for the drop-down box

  • ISIS-785 - Invoke action parameter with a collection of entities.

Improvement

  • ISIS-1587 - Extend "explicitObjectType" checking to also take in view models.

  • ISIS-1586 - Rationalize the way that service instances are referenced by RO vs rest of the framework

  • ISIS-1584 - Metamodel validation to flag for any contributed services (rather than mixins)

  • ISIS-1582 - Extend 'explicitObjectType' checking to domain services

  • ISIS-1581 - MetaModel validator should (if configured) check that an object type has been explicitly specified.

  • ISIS-1580 - Should throw a metamodel validation exception if JDOQL FROM clause or VARIABLES clause invalid.

  • ISIS-1567 - Replace jetty-uber with jetty-servlet and jetty-webapp

  • ISIS-1557 - Enhance EmailServiceDefault, to optionally throw exception if fail, and optionally allow overrides

  • ISIS-1555 - DomainChangeJdoAbstract (super of command, audit etc) shouldn’t throw exception if target class is unknown.

  • ISIS-1512 - MetaModelValidator should detect domain services that have collections, and fail-fast.

  • ISIS-1501 - MetaModel validator for mixin that doesn’t have a public constructor with a single parameter

Bug

  • ISIS-1578 - Should throw a metamodel validation exception if a disable or hide method has any params.

  • ISIS-1577 - The transactionId within a command XML does not correspond with the transactionId of the command’s metadata.

  • ISIS-1574 - Throws exception if layout.xml references unknown property.

  • ISIS-1573 - ISIS_OPTS incorrectly ignores values that have an '=' sign in them.

  • ISIS-1571 - Should throw metamodel validation error if omit choices or autoComplete for parameter collection type.

  • ISIS-1570 - CSS spacing incorrect for action buttons placed below when there are also action placed to right

  • ISIS-1566 - Allow datanucleus.ConnectionPasswordDecrypter to be used to decrypt password.

  • ISIS-1565 - Fixes @MemberOrder so that the 4 default mixin actions are automatically associated with the 3 default mixin properties

  • ISIS-1564 - Attempt to invoke no-arg bookmarked action, throws stacktraceexception.

  • ISIS-1526 - WebServer --port option not working

  • ISIS-1478 - Setting Editing.ENABLED does not seem to override configuration property set to disabled.

Documentation

  • ISIS-1532 - Move DN OS cfg props to DN OS guide

Task

1.13.2.1

Update for the simpleapp archetype only, which improves docker support as well as reducing amount of boilerplate by backing out some of the mixins. It also fixes an issue with the fixture scripts (noted in previous release).

Improvement

  • ISIS-1559 - Remove the mixins from the simpleapp archetype - adds too much boilerplate

  • ISIS-1558 - Extend simpleapp archetype to also build docker images

Task

1.13.2

This is a maintenance release with a number of minor improvements and bug fixes. If these the main improvement is that the simpleapp archetype has been substantially reworked to be more modular.

This release also closes the ticket to provide a better DB migration story; this has been implemented by way of the (non-ASF) Incode Platform's flywaydb module.

New Feature

  • ISIS-1542 - Update simpleapp application/archetype to provide access to HSQL DB Manager (via their Swing UI) when running in-memory

  • ISIS-1471 - Integrate Flyway or Liquibase or something similar (see (non-ASF) Incode Platform's flywaydb module.

Improvement

  • ISIS-1554 - Prevent double click on buttons (which can cause applications to throw an error, eg concurrency exception)

  • ISIS-1553 - If in prototyping mode, shouldn’t have to keep logging in when restart (rememberMe should activate)

  • ISIS-1552 - Use 'readonly' rather than 'disabled' tag, in compliance with w3c spec (Firefox and Chrome 54+)

  • ISIS-1550 - Remove metamodel validation that insists on at least one @PersistenceCapable class.

  • ISIS-1548 - Allow @Mixin annotation to specify the method name to use (instead of '$$') meaning to infer the mixin name from the mixin type. Also, allow '$' to be used as separator of the mixin type.

  • ISIS-1546 - Reduce logging (don’t show stack traces) for invalid user/pass attempts

  • ISIS-1543 - IsisConfigurationBuilder should obfuscate password when logged.

  • ISIS-1538 - Rework simpleapp archetype so that is more modular.

  • ISIS-1503 - Allow security checking be disabled when running via SudoService.

Bug

  • ISIS-1545 - QueryResultsCache can sometimes result in throwing an exception if not properly initialized when fixtures being installed.

  • ISIS-1541 - When no explicit layout xml is available the order of the members is set to incorrect, ignoring other facets

  • ISIS-1533 - Fix edit icon offset for boolean, referencem blob, clob and multilinestring panels

  • ISIS-1524 - Dates not showing in view model

  • ISIS-1496 - A domainobject annotated with @DomainObject(auditing = Auditing.DISABLED) is audited nonetheless

Task

1.13.2

This is a maintenance release with a number of minor improvements and bug fixes. If these the main improvement is that the simpleapp archetype has been substantially reworked to be more modular.

This release also closes the ticket to provide a better DB migration story; this has been implemented by way of the (non-ASF) Incode Platform's flywaydb module.

New Feature

  • ISIS-1542 - Update simpleapp application/archetype to provide access to HSQL DB Manager (via their Swing UI) when running in-memory

  • ISIS-1471 - Integrate Flyway or Liquibase or something similar (see (non-ASF) Incode Platform's flywaydb module.

Improvement

  • ISIS-1554 - Prevent double click on buttons (which can cause applications to throw an error, eg concurrency exception)

  • ISIS-1553 - If in prototyping mode, shouldn’t have to keep logging in when restart (rememberMe should activate)

  • ISIS-1552 - Use 'readonly' rather than 'disabled' tag, in compliance with w3c spec (Firefox and Chrome 54+)

  • ISIS-1550 - Remove metamodel validation that insists on at least one @PersistenceCapable class.

  • ISIS-1548 - Allow @Mixin annotation to specify the method name to use (instead of '$$') meaning to infer the mixin name from the mixin type. Also, allow '$' to be used as separator of the mixin type.

  • ISIS-1546 - Reduce logging (don’t show stack traces) for invalid user/pass attempts

  • ISIS-1543 - IsisConfigurationBuilder should obfuscate password when logged.

  • ISIS-1538 - Rework simpleapp archetype so that is more modular.

  • ISIS-1503 - Allow security checking be disabled when running via SudoService.

Bug

  • ISIS-1545 - QueryResultsCache can sometimes result in throwing an exception if not properly initialized when fixtures being installed.

  • ISIS-1541 - When no explicit layout xml is available the order of the members is set to incorrect, ignoring other facets

  • ISIS-1533 - Fix edit icon offset for boolean, referencem blob, clob and multilinestring panels

  • ISIS-1524 - Dates not showing in view model

  • ISIS-1496 - A domainobject annotated with @DomainObject(auditing = Auditing.DISABLED) is audited nonetheless

Task

1.13.1

This is a maintenance release with a number of minor improvements and bug fixes. It also provides better support for docker, by allowing configuration properties to be overridden using either system properties or an ISIS_OPT environment variable.

New Feature

  • ISIS-1510 - Improve support for docker containers by allowing isis configuration properties to be overridden using either system properties or an ISIS_OPT environment variable

Improvement

  • ISIS-1527 - Make overlays consistent for editable properties, with general fix for Firefox

  • ISIS-1522 - Remove unused field declarations

  • ISIS-1519 - Deprecate JdoColumnLength in applib, instead define types

  • ISIS-1518 - Hide and replace certain UI fragments

  • ISIS-1514 - Hide the calendar hint on the date time (users tend to click on it)

  • ISIS-1508 - The integration test framework should be more resilient to badly behaved tests that leave the transaction incomplete

  • ISIS-1507 - QueryResultsCache should be disabled while fixture scripts are running.

  • ISIS-1505 - MetaModelService should return an unknown enum rather than throw exception, eg if passed an java.lang.Object.class.

  • ISIS-1499 - Improve BookmarkService to be able to "lookup" domain services, so that can schedule background commands against a service.

  • ISIS-1495 - Extend SessionLoggingService.CausedBy enum, so can mark as complete any log entries that are still shown as ongoing when app (re)starts

  • ISIS-1492 - Adding css-class to object forms

  • ISIS-1491 - Changed all occurrences of allowNulls and allowsNulls in the docs to

  • ISIS-1476 - Transaction interface: Expose "clearAbortCause" for don’t pick up handled persistence Exceptions

Bug

  • ISIS-1525 - Problems with startup under certain circumstances

  • ISIS-1524 - Dates not showing in view model

  • ISIS-1520 - Amelia template is broken

  • ISIS-1517 - Typo on home page

  • ISIS-1516 - Typo on home page

  • ISIS-1515 - BackgroundCommandExecution can NPE if it attempts to invoke an action on an object that no longer exists.

  • ISIS-1502 - Error handling of invalid domain object not strong enough, causing infinite loop in endTransaction.

  • ISIS-1498 - BackgroundCommandExecution does not handle exceptions correctly.

  • ISIS-1497 - AbstractIsisSessionTemplate does not lookup adapter for OidDtos correctly.

  • ISIS-1494 - EmailNotificationServiceDefault does not use overriding implementations of EmailService

  • ISIS-1493 - Sorting of records with null values is not working correctly

  • ISIS-1490 - Fix 'svg' suffix in ImageResourceCacheClassPath

  • ISIS-1483 - Tiny bug in the SimpleObjectTest unit test as generated by the simpleapp.

  • ISIS-1482 - Occasional(?) exception in i18n PoWriter, looks like a concurrent access problem

  • ISIS-1481 - Duplicate PK exception for SessoinLogEntry (isisaddons implementation of SessionLoggingService) due to race condition.

  • ISIS-1480 - LocalDateTime property on different tabs, encoding exception

  • ISIS-1477 - Background command execution of commands with 0 parameters causes an NPE

  • ISIS-1475 - Application name not set

  • ISIS-1474 - Cannot use custom implementation of authenticationmanager (ShiroWithOAuth2AuthenticationManagerInstaller)

  • ISIS-1472 - Any attempts to schedule a background job via the RO viewer fail, due to incomplete state. (In fact: actions with commands cannot be invoked via RO viewer).

  • ISIS-1470 - Maintenance 1.13.1 umbrella ticket

1.13.0

Apache Isis 1.13.0 improves and formalizes the support for commands and auditing, and introduces the new concept of an interaction. A command now represents the intention to interact with the application, either to invoke an action or to edit a property. This is captured as a JAXB DTO. An interaction on the other hand captures the fact that a command has been performed. Interactions are also captured as DTOs. Interactions can include sub-interactions, representing the fact that an action can invoke another action by way of the WrapperFactory.

The existing AuditingService and PublishingService SPI services have both been deprecated, instead replaced by AuditerService and PublisherService. It is now possible to have multiple implementations of each.

The (non-ASF) Incode Platform's auditing module has been reworked to implement AuditService, while the new (non-ASF) Incode Platform's publishmq module implements PublisherService to publish interaction events to an ActiveMQ bus (and to allow such events to be replayed if necessary).

The release also includes a great deal of internal refactorings and simplifications.

Most applications written against v1.12.x should run against v1.13.0 with few if any changes. That said, this release has removed a small number of features that were dependent on internal APIs, and some configuration properties are now removed/unsupported. We therefore do recommend that you read and keep in mind the migration notes when you upgrade your app.

New Feature

  • ISIS-1446 - Extend the Wicket viewer client-side file-open-dialog to allow file extension to be specified.

  • ISIS-1433 - New configuration option to allow a minimum/maximum date to be specified for date pickers.

  • ISIS-1421 - Possible object deadlock when under load.

  • ISIS-1420 - To support dockerization, have any overrides.properties file take precedence over any other config properties

  • ISIS-1418 - Support @Nullable for parameters and properties

  • ISIS-1413 - Gradle script (and docs) in simpleapp archetype to auto-enhance and for file-based layouts, also liveReload

  • ISIS-1399 - MetricsService to capture within InteractionContext, for profiling.

  • ISIS-1390 - Provide a default CommandService, to return CommandDefault.

  • ISIS-1389 - New InteractionContext service and Interaction to handle the execution of commands.

  • ISIS-1385 - Improve DomainChangeJdoAbstract (superclass of commands, audits etc) so cannot "open" target object if a domain service.

  • ISIS-1384 - Extend MetaModelService to indicate what "sort of" object a given domain type represents.

  • ISIS-1381 - Extend ActionInvocationMementoDto (XSD) to apply to bulk actions (a list of targets and perhaps list of mixins).

  • ISIS-1380 - ActionInvocationMementoDTO to capture stacktrace, if any, when an action is invoked.

  • ISIS-1379 - ActionInvocationMementoDto (XSD) should hold subactions.

  • ISIS-1378 - ActionInvocationMementoDTO (XSD) returned object also indicates its type (same as parameters)

  • ISIS-1377 - ActionInvocationMementoDto (XSD) with majorVersion and minorVersion, so that each instance identifies the "logical" version of the schema with which it is compatible.

  • ISIS-1376 - ActionInvocationMementoDto (XSD) to capture end time of each action invocation.

  • ISIS-1375 - extend BackgroundCommandService to be able to invoke mixed-in actions.

  • ISIS-1374 - extend BackgroundCommandService to be able to invoke mixed-in actions.

  • ISIS-1373 - Have isis-core-applib depend upon isis-core-schema

  • ISIS-1372 - Change BackgroundCommandService to work with new Command DTO

  • ISIS-1370 - New PublisherService to simplify and replace PublishingService.

  • ISIS-1368 - The (new) PublisherService API should provide the ability to republish (action) commands.

  • ISIS-1291 - Define new DTO (XSD) as the memento for Command#setMemento

  • ISIS-855 - Allow contributed actions to be renamed in the contributee

  • ISIS-542 - Restrict which entities a service action is contributed to (as either a contributed action or contributed assocation).

  • ISIS-292 - Remove Authenticator#isValid method; should not be defined as part of API.

Improvement

  • ISIS-1464 - DomainChangeJdoAbstract#openTarget should support looking up view models

  • ISIS-1462 - A new user has some trouble navigating to a single item in a collection using wicket ui

  • ISIS-1460 - Position edit link on top of string field.

  • ISIS-1459 - Add AppManifest.Util class to set up common configuration properties for running in-memory

  • ISIS-1457 - PoWriter shouldn’t log on shutdown if there are metamodel validation exceptions

  • ISIS-1455 - Improve metamodel invalid exception handling

  • ISIS-1449 - Rename 'isis.viewer.wicket.suppressRememberMe' to 'isis.viewer.wicket.rememberMe.suppress'

  • ISIS-1448 - Reinstate component factory for collections, so that they can be easily substituted.

  • ISIS-1447 - Avoid possible race-condition resulting in 500 errors under the Restful Objects viewer

  • ISIS-1445 - Tab names (in XML layouts) should be translated via TranslationService

  • ISIS-1443 - Refactor specloader so that specs for domain services are marked as a service from the get-go

  • ISIS-1442 - Mark some applib classes as @Value in order to reduce size of the metamodel (don’t mixin to these).

  • ISIS-1441 - Remove subclass of AuthenticationManagerStandard in isis-core-runtime.

  • ISIS-1438 - Set up JAXBContext for ChangesDtoUtils and the others in a background thread.

  • ISIS-1437 - Configure slow-running Wicket bootstrapping in separate background threads.

  • ISIS-1430 - Deprecate AuditingService3 and replace with AuditerService, with transactions identified by …​

  • ISIS-1429 - Remove unused code.

  • ISIS-1428 - Remove unnecessary 'synchronized' modifiers

  • ISIS-1427 - Simplify bootstrapping code

  • ISIS-1426 - Remove unused log4j appender classes

  • ISIS-1425 - Fix support for publishing of wrapper calling programmatically instantiated mixin.

  • ISIS-1419 - Simplify session management handling (IllegalStateException when integ tests complete).

  • ISIS-1417 - For faster start-ups, allow any deprecated facets to simply be ignored.

  • ISIS-1416 - To reduce application bootstrap times, allow set…​() and inject…​() style of dependency injection to be diabled.

  • ISIS-1415 - Reduce app startup times by lazily initializing the ApplicationFeatureRepository,

  • ISIS-1411 - Refactoring - simplify PersistenceSession.

  • ISIS-1410 - Minor performance improvements/refactorings (no functional change)

  • ISIS-1409 - Simplify RuntimeContext (internal bootstrapping)

  • ISIS-1408 - Simplify InstallerLookup and IsisComponentProvider (internal bootstrapping)

  • ISIS-1407 - Refactor SpecificationLoader into an internal domain service.

  • ISIS-1406 - Refactor IsisConfigurationDefault and the metamodel.ConfigurationService into an internal domain service

  • ISIS-1404 - Refactor AuthenticationSessionProvider as an internal domain service.

  • ISIS-1398 - Refactor PropertySetterFacet to follow the pattern for ActionInvocationFacet.

  • ISIS-1397 - Generalize ActionInvocationMemento to also capture property modifications. Rename to MemberInteractionMemento.

  • ISIS-1392 - Extend RepositoryService with persistAndFlush(…​) and removeAndFlush(…​) methods

  • ISIS-1387 - Ensure that generated bs3 layout XML files include a suitable namespace prefix.

  • ISIS-1386 - Ensure that generated aim, cmd or common memento XML include a suitable namespace prefix.

  • ISIS-1371 - ActionInvocationMementoDto (XSD) to capture the mixed-in object (if any).

  • ISIS-1369 - Add missing tests for AppFeature

  • ISIS-1367 - Extend MetaModelService to expose the nature of a domain service. Have DomainObjectContainer#isViewModel(…​) delegate to it.

  • ISIS-1366 - Add svg image suffix support (PR #38)

  • ISIS-1365 - DomainObjectContainerDefault should delegate to RepositoryService (and others) where possible.

  • ISIS-1364 - Improve Asciidoc and Javadoc for migrating from DomainObjectContainer#persist() to RepositoryService#persist()

  • ISIS-1359 - Action annotated as autoCompleteAction cannot be annotated with @Programmatic. This should be possible.

  • ISIS-1356 - Install a BulkFacet even if @Action( invokeOn=OBJECTS_ONLY)

  • ISIS-1352 - collapse IsisSystemFactoryThatUsesInstallers up to IsisSystemFactory

  • ISIS-1344 - Remove the *Transaction facets

  • ISIS-1343 - Properly handle domain events from mixins, exposing the underlying "mixedIn" domain object.

  • ISIS-1338 - Extend ResourceServlet and simpleapp archetype for SVG image type.

  • ISIS-1256 - Shiro has a vulnerabilty for default rememberMe cookie. We should work around this somehow

Bug

  • ISIS-1461 - More reliable fix to concurrency exception

  • ISIS-1458 - Possible incomplete auditing for "non-trivial" updates

  • ISIS-1454 - Hints for drop-downs in Wicket viewer not honoured.

  • ISIS-1453 - SessionManagementService#nextSession broken

  • ISIS-1452 - Throwing an exception (for -SNAPSHOT) does not abort the transaction.

  • ISIS-1444 - Mark applib FixtureScript.Execution methods as @Programmatic to avoid being added to the metamodel

  • ISIS-1436 - When executing a bulk action on a paginated collection items, chosen items can be ignored unintentionally

  • ISIS-1435 - Infitinite recursion in updating() callback if it modifies the object

  • ISIS-1434 - Cookie not cleared after logout, Shiro session remains active

  • ISIS-1432 - When there is no default for a date parameter, the system is defaulting to the current date, whereas it should be null.

  • ISIS-1423 - TranslationServicePo does not guard against null keys.

  • ISIS-1422 - Autocomplete publishes events to the event bus.

  • ISIS-1414 - nextTransaction can cause null pointers with the new MetricsService.

  • ISIS-1412 - Actions annotated with SemanticsOf.IDEMPOTENT_ARE_YOU_SURE throw a NullPointerException when invoked through the REST API

  • ISIS-1405 - Refactor DeploymentCategoryProvider into an internal domain service.

  • ISIS-1402 - Remove the Debuggable interface.

  • ISIS-1401 - NPE when wrapping call to FixtureScripts#runFixtureScript for a newly instantiated FixtureScript

  • ISIS-1400 - bulk-only actions are shown on object forms

  • ISIS-1393 - Maven swagger goal failed: No Session opened for this thread

  • ISIS-1383 - Missing component factory class names in Wicket HTML

  • ISIS-1382 - Cancel buttons disappeared on modal dialogs

  • ISIS-1358 - Simpleapp created from archetype and packaged to war fails when deploying to Tomcat

  • ISIS-1336 - config param typo…​ titleEvent should be titleUiEvent.

Task

1.12.2

Apache Isis 1.12.2 is a bug fix release for Apache Isis 1.12.0. It addresses two UI issues which result in the viewer showing invalid data with respect to the data actually stored in the database.

Bug

  • ISIS-1396 - Some elements on an entity page can be rendered against stale data.

  • ISIS-1132 - possible timezone issues when refresh page in Wicket viewer.

Task

1.12.1

Apache Isis 1.12.1 is a bug fix release for Apache Isis 1.12.0. The primary issue it addresses are spurious concurrency exceptions that can be thrown when editing an object. It also addresses a subtle issue where the new support in JAXB view models for auto-edit can cause some dirty objects not to be updated.

Bug

  • ISIS-1355 - concurrency exception after property edit when attempting to render…​

  • ISIS-1357 - Update dependency from guava-19.0.20150826 to guava-19.0

  • ISIS-1361 - View model that changes two domain objects only has one of them updated.

  • ISIS-1363 - ConfigurationServiceMenu is defined under the prototyping menu, but is not restricted to prototyping. Suggest place under the tertiary menu instead.

Task

1.12.0

The main feature in 1.12.0 is much enhanced support for custom layouts, using an optional separate XML layout file Xxx.layout.xml (where Xxx is the class of the object being rendered). This is similar in concept to the earlier support we have had for custom layouts through a .layout.json file, but introduces the ability to position object members anywhere using bootstrap columns and rows. It also brings in support for tabgroups, and allows object members to be included in the page more than once (eg a table view and also a (non-ASF) Incode Platform's fullcalendar2 view).

As a result of this change, the support for editing objects has been modified; rather than an 'edit' button which toggles the entire page into edit mode, instead each property is edited individually. The current implementation of this is using a prompt dialog (very similar to the action prompt dialogs; in a future release we hope to support "in-place" edits instead.

Another notable change in this release include various new domain services. Some of these are in support of the file-based layouts functionality, others including new access into Apache Isis' metamodel. (Some of these new services were originally part of the (non-ASF) Isis Addons). In addition, the DomainObjectContainer service has been deprecated, replaced by a number of fine-grained services (such as RepositoryService and MessageService).

The release also includes a number of new mixins, to automatically surface in the UI an entity’s id, version (if any), and to download the layout XML and rebuild the metamodel for a given domain entity. There is also a mixin to clear any UI hints (part of the file-based layouts functionality). In all cases these mixins can be hidden using either security or by writing a subscriber to veto the visibility of the corresponding domain event.

New Feature

Improvement

Bug

  • ISIS-1348 - Bug with SoapEndpointPublishingRule when multiple endpoints.

  • ISIS-1347 - Missing annotation in SimpleObject

  • ISIS-1346 - ActionInvocationContext isn’t populated properly

  • ISIS-1342 - The metamodel validation error page doesn’t reliably render itself if there are errors.

  • ISIS-1341 - Restful Objects viewer should perform a flush transaction before generating representations.

  • ISIS-1340 - Rebuild metamodel mixin action isn’t working reliably

  • ISIS-1328 - Bookmark hints are not being honoured

  • ISIS-1319 - Input dialog for action label for mandatory parameter not shown when the parameter is an view model

  • ISIS-1318 - contributed actions/mixins breaks publishing; also flush any pending actions to be published as the result of doing a wrapped action via the WrapperFactory

  • ISIS-1315 - Can’t generate swagger specs, where actions are contributed.

  • ISIS-1314 - Filename parameter label missing for DTO mixins

  • ISIS-1311 - Mixins for Persistable metadata causes exception when rendering.

  • ISIS-1310 - DomainObjectContainer#titleOf(..) does not resolve @Title annotated on private field

  • ISIS-1309 - Disabled no-arg "are you sure" actions still show the prompt to be shown..

  • ISIS-1305 - For collections contributed from mixins, the name is empty (presumably null or "")

  • ISIS-1304 - Table column with icon and title is not left aligned

  • ISIS-1125 - Spurious WARN messages for translation messages of contributed actions

  • ISIS-1075 - RO viewer’s version resource always returns a 420 (method failure)

  • ISIS-1063 - View models with mandatory enum properties are not initialized correctly.

  • ISIS-906 - incorrectly attempts to render a veto exception (from a subscriber) to a non-existent action dialog panel when invoked for a no-arg action.

  • ISIS-687 - @AutoComplete annotation on repository does not seem to honour @MinLength

Dependency upgrade

Task

1.11.1

Apache Isis 1.11.1 is a bug fix release for Apache Isis 1.11.0, re-releasing using Java 7.

Apache Isis is intended to be compatible with both Java 7 and Java 8. However, it was found that v1.11.0 used a number of Java 8 APIs. This release fixes this issue.

Bug

1.11.0

The main focus for Apache Isis 1.11.0 is on the REST API and on view models using JAXB:

  • the Restful Objects viewer now supports simplified representations intended to make it easier to write custom Javascript (and other) clients that consume the REST API; these are obtained using the HTTP Accept header. There is also support for Swagger spec files so that the REST API can be more easily explored and tested.

    In addition, the x-ro-follow-links capability for RO spec representations is now supported.

  • JAXB-annotated classes are now recognised as view models; these also enable the contents collections to be part of the view model’s state (previously only view model properties were recognised). The new UrlEncodingService allows long URLs (for view models) to be converted into shorter URLs; this also allows the URL to optionally be encrypted.

The release also includes improved control for domain events (these can now be suppressed if required) , and a new category of UI events (so that titles, icons and CSS classes can be provided by event bus subscribers).

New Feature

  • ISIS-1279 - AcceptHeaderService for application-defined content negotiation.

  • ISIS-1274 - ContentNegotiationService for simplified representations for custom RO clients

  • ISIS-1262 - Provide mixin to allow the JDO metadata to be downloaded for any Persistable.

  • ISIS-1258 - Extend the Isis maven plugin to be able to generate XSD schemas using the JaxbService

  • ISIS-1252 - New TitleUiEvent, IconUiEvent and CssClassUiEvent as a means to allow subscribers to provide a title for domain objects.

  • ISIS-1251 - UrlEncodingService as a plugin point for serializing mementos into a URL-friendly string.

  • ISIS-1250 - JaxbService to marshall DTOs to XML.

  • ISIS-1217 - Formatting text inside a text field

  • ISIS-666 - Provide the ablity to return (and render) a different object when an action is invoked.

Improvement

  • ISIS-1275 - Configuration property for RO viewer to relax Accept header checking.

  • ISIS-1273 - Enhance RO viewer so that the default RO v1 representations are implemented as a ContentNegotiationService

  • ISIS-1269 - Deleting an object from a list can cause NPE when that list is re-rendered.

  • ISIS-1259 - For derived parameter names from nested inner classes, ignore the parent out class

  • ISIS-1257 - Allow @Title to be added as an annotation to fields.

  • ISIS-1255 - Provide configuration property so that domain events set to Xxx.Default are either ignored (like the Noop) or are posted anyway.

  • ISIS-1254 - Disable action/property/collection events if set to Noop domain events

  • ISIS-1249 - Annotate AbstractSubscriber with @DomainServiceLayout(menuOrder=…​) so that this is picked up by default by all implementations.

  • ISIS-1246 - Better diagnostics on NPE

  • ISIS-1245 - During bootstrap, ensure that any @PersistenceCapable entities found on classpath also implement PersistenceCapable interface (ie that the DN enhancer has run).

  • ISIS-1241 - Providing better feedback when RegEx validation does not match pattern

  • ISIS-1237 - Integrate with swagger for REST APIs

  • ISIS-1232 - Enhance RO viewer to support section 34.4 of RO v1.0 spec (x-ro-follow-links)

  • ISIS-1220 - Methods annotated with @Subscribe should automatically be ignored (as per @Programmatic).

  • ISIS-1117 - Allow using "marker" view models

  • ISIS-1093 - Integrate Wicket’s i18n requirements with Isis' TranslationPoService.

  • ISIS-1084 - Reduce PoReader messages in the log

  • ISIS-1070 - Add header and handle double quotes in translations.pot file

  • ISIS-803 - Replace lifecycle methods with additional EventBus events.

Bug

  • ISIS-1283 - SAFE_AND_CACHEABLE semantics caches incorrectly, works for domain services (stateless) but not for domain entities (where stateful target determines result)

  • ISIS-1278 - Title of choices lnks in RO failing, called incorrectly.

  • ISIS-1253 - Default title for enums is not friendly name

  • ISIS-1244 - RO POST to "objects of type" resource should return a 201, not a 200.

  • ISIS-1242 - Breadcrumbs broken if change the title…​. the drop-down never displays elements

  • ISIS-1227 - in edit mode, when there are validation errors, these are not showing up for the individual properties, instead for the object-level validation.

  • ISIS-1221 - JSON Format Layouts not recognized with i18n translations in Wicket Viewer

  • ISIS-1202 - Mandatory dropdown field doesn’t show asterisk

  • ISIS-1193 - void actions return 404 Not Found when called through restful viewer

  • ISIS-1185 - [CAN’T REPRODUCE] 'Ok' and 'Cancel' buttons in edit mode are both appearing as 'Submit Query'

  • ISIS-1128 - 'namedEscaped' is broken when 'named' comes from a translation.po

  • ISIS-915 - Framework should transparently allow view models to reference other view models.

Task

1.10.0

Apache Isis 1.10.0 provides a couple of new domain services. Client-side filtering of objects (eg to support (non-ASF) Incode Platform's security module’s multi-tenancy support) is completed so that autocomplete//choices, summary totals and components such as (non-ASF) Incode Platform's gmap3 wicket component show only filtered objects. The "are you sure" semantic and corresponding UI is also available, as well as the ability to specify the default view for collections. The release also introduces a new type of contribution service (mixins), as well as bringing in support for Project Lombok

Internally there have been substantial simplifications to the codebase.

New Feature

  • ISIS-1215 - New MultipleExecutionStrategy for fixture scripts to use value semantics for determining whether to run a fixture script invoked more than once.

  • ISIS-1213 - Provide support for @Mixin domain objects, as a specialized type of contributor (though not a domain service)

  • ISIS-1210 - Provide an SPI service for handling exception stack traces, rather than just render to the end-user

  • ISIS-1205 - Support @Inject on List<T> or Collection<T>

  • ISIS-1007 - Provide support for "are you sure" idiom, eg using a @AreYouSure annotation on the action

  • ISIS-1005 - Allow users to implement an optional service to perform pre-commit processing ("ChangedObjectService")

  • ISIS-867 - Domain service to automatically maintain lastUpdatedAt and lastUpdatedBy on any entity.

Improvement

  • ISIS-1231 - Add jdeps to build as optional profile, to verify use of internal JDK jars.

  • ISIS-1222 - Inject services into command objects.

  • ISIS-1218 - Allow autoComplete supporting method to return a Collection as well as a List or array.

  • ISIS-1216 - Update Wicket Bootstrap to 0.9.13 (once available) as a better fix to the checkbox issue

  • ISIS-1211 - Provide no-arg versions of domain events, to avoid boilerplate in the domain applications themselves.

  • ISIS-1207 - Extend concurrency checking support for time-stamp based checks (per JDO’s @Version annotation)

  • ISIS-1197 - Extend the ContributeeMember internal API so that the devutils addon can report on the which service contributes which members

  • ISIS-1194 - Remove dead code, remove support for @Aggregated, for isDirty/clearDirty/markDirty.

  • ISIS-1189 - Autocomplete and choices should filter results so that hidden objects are not shown.

  • ISIS-1186 - Use different classpath scanner to reduce time to boot.

  • ISIS-1184 - Auto-inject services into Specification, ie @Property(mustSatisfy=…​) etc

  • ISIS-1151 - Allow the default view of a collection to be set

  • ISIS-1092 - Add OWASP Dependency Check maven plugin

  • ISIS-1044 - Table counts and gmap3/fullcalendar2 do not honour any vetoing, eg by subscribers or WithApplicationTenancy

  • ISIS-1009 - Call a @PostConstruct callback for view models

  • ISIS-534 - Does JDO Objectstore ever need to create DataNucleusUpdateObjectCommand commands?

  • ISIS-348 - Update Wicket viewer to support @Aggregated domain objects

  • ISIS-273 - Update annotation-based facet factories to read from fields, such that tools like Lombok can be supported

Bug

  • ISIS-1229 - Calling nextRequest() in an integration test should clear any @RequestScoped services.

  • ISIS-1226 - Drop-down breadcrumbs broken.

  • ISIS-1214 - Three state checkbox doesn’t work

  • ISIS-1208 - Can’t bootstrap without the wicket viewer (issue with Guice / AppManifest)

  • ISIS-1204 - The title of certain joda dates (eg LocalDate) is incorrect as per container.titleOf(…​)

  • ISIS-1203 - fixture scripts not found unless using an appManifest

  • ISIS-1201 - autoComplete support fails validation when using Collection<T> as return type

  • ISIS-1020 - upgrade select2 to v3.5.2 (was: Dropdown window opens top left of the screen)

  • ISIS-847 - RegisterEntities isn’t called prior to the metamodel validation, thus we currently rely on priming the metamodel through the services…​ not good.

  • ISIS-830 - Wire up JDO events to publish onto our EventBus (rather than publish our own events).

  • ISIS-829 - updating() callback not firing on edit

  • ISIS-325 - Field validation annotations should be on setters or fields instead of on the getters.

Task

Dependency upgrade

  • ISIS-1061 - Upgrade Wicket to 6.19.0 (or rather, 6.20.0 when released since we found issues with 6.19.0).

Superceded

  • ISIS-721 - For 2.0.0, should we remove the ObjectStore API and standardize on the JDO Objectstore

  • ISIS-725 - For 2.0.0, should we remove the ProfileStore?

Not implemented (tidying up backlog)

  • ISIS-513 - Wicket: Pdf.js display in browser natively

  • ISIS-508 - Integrate with d3js.org (for what, I don’t know exactly…​)

  • ISIS-383 - For GSOC, integrate Apache Lucene with Apache Isis as a generic text search engine

  • ISIS-374 - [GSOC2013] A generic Naked Objects app written using Javascript/Coffeescript (optionally using Apache Cordova), running against Isis' Restful Objects interface.

  • ISIS-373 - [Mentored?] A generic Naked Objects app written using Apache Flex, running against Isis' Restful Objects interface.

  • ISIS-371 - [GSOC2013] A generic (Naked Objects) Android app, to run against Isis' Restful Objects interface.

  • ISIS-369 - For GSOC: Kemble: A domain-specific language aligned with the Apache Isis programming conventions.

  • ISIS-218 - Allow file authorizor whitelist to default to "allowed"

  • ISIS-742 - For GSOC, develop an integration with zapier or ittt, for app automation.

  • ISIS-740 - For GSOC, to write a clean-room implementation of a JDO enhancer, as a replacement for the DN one, and that ideally integrates with the JRebel plugin

  • ISIS-739 - For GSOC, to develop an oAuth integration

  • ISIS-737 - For GSOC, develop screencasts for all the various features that we have

1.9.0

Apache Isis 1.9.0 provides various new "under-the-cover" features, such as AppManifest for simplified bootstrapping, and content negotiation support within RestfulObjects viewer. It also updates the DataNucleus version to DN 4.1.x.

This release was also the first to include the updated Asciidoc website.

New Feature

  • ISIS-1167 - NullPrintStream in unittestsupport to reduce the noise of unit tests that log to stdout or stderr

  • ISIS-1166 - Support for unit testing using SOAP fake servers

  • ISIS-1165 - "Schema" module to support integration scenarios.

  • ISIS-1164 - For RO viewer content negotiation (via XRoDomainType), if in prototype mode then pretty-print.

  • ISIS-1159 - Make ExceptionRecognizerCompositeForJdoObjectStore into a @DomainService, so automatically registered.

  • ISIS-1149 - New ContentNegotiationService and ContentMappingService SPIs for Restful Objects viewer

  • ISIS-1148 - Extend DomainObjectContainer to allow services to be looked up

  • ISIS-1147 - Provide API in IsisJdoSupport to execute typesafe queries

  • ISIS-1145 - REST action invocations support limited conneg to JAXB-marshalled DTOs

  • ISIS-1144 - New "NatureOfService" to restrict domain services to be visible in the REST API (Restful Objects viewer) but not in the Wicket viewer.

  • ISIS-1143 - MetaModelService to provide formal access to certain (restricted) aspects of the Isis metamodel

  • ISIS-1129 - SudoService to allow the current user to be temporarily switched (for fixture scripts and integ tests)

  • ISIS-1102 - Allow translations service to toggle between read mode and write mode from UI

  • ISIS-1096 - Derive the object type from the schema and table of @PersistenceCapable (but ensure backward compatibility is preserved).

  • ISIS-1071 - Provide new HasUsername interface in applib (analogous to HasTransactionId) so that various addon services can contribute to it.

  • ISIS-1064 - Allow DB schemas (or any other setup) to be performed as DN metamodel is built up for each class.

  • ISIS-1028 - Create Event Bus Service based on Axon

  • ISIS-940 - Extend the CommandService so that both the editing and also the rendering of an entity are shown as commands.

Improvement

  • ISIS-1191 - Broken links

  • ISIS-1188 - Refactoring/simplifying internals.

  • ISIS-1182 - Refactorings of the management of domain services; slightly simplified classpath scanning.

  • ISIS-1173 - Split out responsibilities of FixtureScript class so that framework can provide a default implementation, and be configured through an alternative.

  • ISIS-1171 - If DN autoCreate is missing, don’t default to "true", instead default to "false".

  • ISIS-1170 - Throw a better exception if an class (through programmer error) has no properties.

  • ISIS-1169 - Simplify IsisSessionFilter, make more resilient to possible leakage of IsisSession on thread-local, also allow RO to force a logout

  • ISIS-1162 - For Shiro Realm,Make LDAP attributes as permision generator

  • ISIS-1161 - Allow member group (per @Member(name=…​) to be internationalized

  • ISIS-1160 - Allow RO viewer to consume any media type (HTTP Accept)

  • ISIS-1158 - Extend o.a.i.applib.spec.Specification to support i18n

  • ISIS-1157 - Cache safe Actions results by annotating them

  • ISIS-1154 - Extend ActionDomainEvent and PublishingService’s EventMetaData to include info on the action parameter names/types.

  • ISIS-1153 - Upgrade to DN 4.1

  • ISIS-1152 - Allow domain services to be registered "late" to the event bus

  • ISIS-1150 - Retire the InMemoryObjectStore

  • ISIS-1146 - Automatically ignore @PostConstruct and @PreDestroy methods from the metamodel.

  • ISIS-1141 - Integration tests should honour isis.reflector.facets.include and isis.reflector.facets.exclude for extending the programming model

  • ISIS-1139 - Make it clear that ObjectContracts.compare() is slow, and should mostly be used for prototyping.

  • ISIS-1133 - Convert website to asciidoctor, hosted in git and published via ASF’s svnpubsub

  • ISIS-1126 - Improve deserialization logic in RO applib.

  • ISIS-1124 - Add the simple name of the domain entity as a CSS class next to 'entityPage' for easier custom styling

  • ISIS-1123 - Allow the member group label for properties to be translated.

  • ISIS-1120 - Hide the colon separating icon and title in modal window when there is no icon

  • ISIS-1116 - Use ResourceModel for labels in Wicket viewer

  • ISIS-1115 - Make it possible to set a custom favicon

  • ISIS-1114 - Allow to use EmailVerificationUrlService for custom pages too

  • ISIS-1113 - Vetoing subscribers should be able to provide a translatable reason.

  • ISIS-1110 - Check for available RequestCycle before trying to read the request locale

  • ISIS-1109 - Use titleOf(…​) for the menu services, so that any translations get picked up.

  • ISIS-1108 - Allow informUser, warnUser, raiseError and also exception messages to be translated.

  • ISIS-1107 - Register Guice Injector in Wicket before trying to inject the application’s dependencies

  • ISIS-1106 - Improve translation service to translate all enum constants of all enums, and also capture the title of all services automaticaly all domain services and of all enum constants.

  • ISIS-1105 - Improvements to the integration testing framework.

  • ISIS-1104 - Remove some of the chattiness in the log if there are no translations for a given locale

  • ISIS-1101 - Avoid unexpected concurrency exceptions if using a custom page.

  • ISIS-1100 - Improve algorithm for flushing transaction and similarly in capturing post values (for auditing) on transaction preCommit

  • ISIS-1099 - Make it possible to use images loaded from the classpath in email templates

  • ISIS-1095 - Make it possible to show the datepicker in a "birthdate" mode

  • ISIS-1091 - Simplify the format of bookmark, remove prefix (CUS:L_123 → CUS:123)

  • ISIS-1090 - Deprecate IntegrationTestAbstract#runScript (static method)

  • ISIS-1088 - Lazily discover fixture scripts

  • ISIS-1087 - Restful Objects viewer’s "services" representation should show only domain services on the menu

  • ISIS-1085 - Add cssClassFa to DomainObjectLayout

  • ISIS-1083 - Resetting dependent choice

  • ISIS-1081 - Make it possible to lookup Guice beans in Isis domain services

  • ISIS-1080 - Misc. bootstrap refinements.

  • ISIS-1078 - Wrapper factory should check visibility/usability/validity for contributed members also

  • ISIS-1077 - Use the provided 'cssClass' for action menu items

  • ISIS-1068 - Rationalize menuOrder for domain services that appear in UI

Bug

  • ISIS-1190 - If an referenced object cannot be loaded (not found in the database), then this should be handled gracefully

  • ISIS-1179 - Prevent the defaultXxx(…​) being called multiple times when invoke an action.

  • ISIS-1177 - Deserialization using RO applib fails in Jackson library

  • ISIS-1175 - Wicket viewer separators go missing when force refresh page (eg ctrl-R)

  • ISIS-1174 - In RO, posting to the ObjectsOfType resource (section 9) fails.

  • ISIS-1168 - Eagerly register entities with DataNucleus objectstore (for Neo4j)

  • ISIS-1155 - validate() vetoing - requiring rollback via the memento when editing - causes a ConcurrencyException to occur.

  • ISIS-1142 - FrameworkSynchronizer should handle case of adapter already marked as destroyed

  • ISIS-1137 - PermGen errors through WrapperFactory (javassist)

  • ISIS-1135 - Make a copy of the PojoAdapter and OidAdapter maps for debugging purposes

  • ISIS-1112 - ExceptionRecognizerComposite cannot self-inject its dependencies

  • ISIS-1111 - Trying to load an entity with wrong/non-existing OID fails with NullPointerException

  • ISIS-1103 - Translations service not picking up translated versions of property/collection names

  • ISIS-1097 - Suspicion that Isis may be leaving DB connections open under certain circumstances, leading to instability

  • ISIS-1089 - Should cascade state of tracing printstream to child fixture scripts

  • ISIS-1079 - FixtureScript#defaultParam should actually default the property on the fixture script…​

  • ISIS-1076 - MetaModelValidation error page (MmvPage) is no longer shown…​

  • ISIS-1074 - For SessionLoggingService, causedBy only meaningful for sessions that have been logged out…​

  • ISIS-1073 - Action domain event for contributed actions should provide the contributee as an argument.

  • ISIS-1072 - When editing, if property validation vetoes the save, then not handled correctly.

  • ISIS-1069 - DomainChangeJdoAbstract’s open action incorrectly annotated as being a bulk action.

  • ISIS-1065 - Auditing of editing of properties only audits one of the properties changed (the last one)

  • ISIS-1062 - Guice injector should create serializable proxies for the injected beans

  • ISIS-1057 - WebRequestCycleForIsis should use the configured SignIn page

  • ISIS-1004 - Infitinite recursion in updating() callback when call setter

Dependency upgrade

  • ISIS-1163 - Update Jetty (as used by our IsisWebServer launcher) to 9.x

  • ISIS-1140 - Now that JDK7 is eol, we should build using Java8; retain source and target compiler level set to 1.7.

Task

  • ISIS-1187 - Mothball the legacy (never documented) integration testing support

  • ISIS-1178 - Mothball the TCK tests, with a view to replacing them by new tests in the isisaddons isis-app-kitchensink

  • ISIS-1058 - Upgrade embedded Jetty to latest 8.x

  • ISIS-1052 - Isis 1.9.0 release tasks

Wish

  • ISIS-1060 - An exception is logged when the provided credentials are invalid

1.8.0

Apache Isis 1.8.0 incorporates the Wicket viewer, which was previously a separately released component. Other components that are included in core (that were previously released separately are: the Restful Objects viewer, Shiro Security and the JDO/DataNucleus ObjectStore.

New Feature

  • ISIS-284 - Maven plugin to validate domain object model w.r.t. Apache Isis programming conventions

  • ISIS-537 - Convert Wicket viewer to use Bootstrap, so that it can be themed.

  • ISIS-690 - 'Show all' button for tables.

  • ISIS-702 - Provide new annotation/facet as a hint for the layout of the label for a property.

  • ISIS-703 - Provide a switch in the Wicket viewer to make the positioning of a fields label either to the left or above the field.

  • ISIS-819 - Wicket viewer should show the environment details so can distinguish if running in productnio vs UAT/systest/dev etc

  • ISIS-854 - Separator between for menu items

  • ISIS-874 - Allow individual items to stand out in a collection, eg new reserved method

  • ISIS-901 - Use @DomainService(repositoryFor=…​) as the basis for an implementation of the IconFacet.

  • ISIS-930 - Support use of "font awesome" icons as decoration of actions and also instead of entity icons.

  • ISIS-933 - Allow the RO viewer to be configured so that it can honour or ignore UI hints (in particular, the @Render(EAGERLY) facet).

  • ISIS-951 - Add menu separators (bootstrap dividers) when multiple services define actions on the same menu

  • ISIS-956 - icons to be specified using pattern matching on member names.

  • ISIS-963 - Allow service actions to be rendered either on a primary, secondary or tertiary (the "me" icon) menu

  • ISIS-964 - Unify UI hints into @XxxLayout annotations with corresponding support in .layout.json for properties, collections and actions.

  • ISIS-967 - Let the LayoutMetadataReader implementation(s) be configured using isis.properties.

  • ISIS-983 - Embedded Neo4J support

  • ISIS-985 - Filter collections so that objects that are not visible to the current user are not shown.

  • ISIS-987 - register for an Isis application.

  • ISIS-990 - Optional UserProfileService to allow the user profile information to be customized.

  • ISIS-995 - Allow the label of a property to be rendered as HTML. Also, allow the label of boolean panels to be rendered on the right hand side.

  • ISIS-999 - Provide a log to administrator of which users logged in and logged out

  • ISIS-1000 - Allow objects to return CSS class (analogous to iconName() method) so that their presentation can be dynamically reflected in tables or on an object form.

  • ISIS-1016 - Make it possible to use brand logo instead of plain text in the header

  • ISIS-1024 - Support imperative validation of a single action parameter argument (as well as of entire parameter args).

  • ISIS-1027 - Raise metamodel validation exceptions if deprecated annotations or method prefixes are used.

  • ISIS-1033 - Extend DomainObjectContainer, add isViewModel(…​).

Improvement

  • ISIS-568 - Drop support for JDK 1.6, standardize on JDK 1.7.

  • ISIS-650 - Nested Menu Support in Apache ISIS

  • ISIS-705 - Support actions accepting parameters that return Blobs/Clobs

  • ISIS-755 - Allow external system data to be integrated and managed with an Apache Isis domain object

  • ISIS-779 - Refactor EventBusService as a @RequestScoped service, and have it own the guava EventBus as a field.

  • ISIS-903 - side locale.

  • ISIS-931 - Make Apache Isis faster to start.

  • ISIS-934 - printed if running in prototype mode.

  • ISIS-935 - RO viewer should return a 404 exception if object not found.

  • ISIS-936 - memory) into core (metamodel and runtime)

  • ISIS-937 - Move TCK out of core

  • ISIS-938 - bytecode modules (as no longer used by either objectstore)

  • ISIS-939 - Simplify Persistor and ObjectStore components.

  • ISIS-944 - Minor improvements to TitleBuffer.

  • ISIS-948 - scoped services

  • ISIS-950 - Suppress stack trace from Error page if exception is recognised.

  • ISIS-953 - Minor enhancements to Fixture script execution context

  • ISIS-955 - Merge JDO Java Type Mapping for Money.

  • ISIS-960 - The event bus swallows errors thrown in the subscribers

  • ISIS-968 - Rationalize handling of menu actions and contributed actions

  • ISIS-969 - Create new @DomainServiceLayout annotation, and move UI hints out of @DomainService

  • ISIS-970 - UI (layout) hints, and deprecate old annotations

  • ISIS-972 - Make it possible to set FontAwesome icons after the label for action links

  • ISIS-973 - Simplify the FixtureScript API so that child fixtures are executed using the ExecutionContext object

  • ISIS-980 - menu sections in the tertiary actions menu panel

  • ISIS-981 - Should be able to use the wrapper factory when installing fixtures.

  • ISIS-1002 - Recognize (JDO) exceptions for foreign key constraint violations

  • ISIS-1003 - Add "veto" as a simpler API for EventBusSubscribers

  • ISIS-1008 - Make it possible to stream Lobs after using the action prompt

  • ISIS-1012 - Use the same date and time format across tables and fields

  • ISIS-1014 - Modal window improvements

  • ISIS-1018 - Do not allow http session replacement in Wicket because Shiro knowledge becomes outdated

  • ISIS-1019 - Upgrade dependencies to javassist, org.reflections

  • ISIS-1026 - plugin to 1.56

  • ISIS-1032 - Contract test for bidirectional relationship can't handle overridden methods

  • ISIS-1036 - Inject services into Comparators specified in a @CollectionLayout(sortedBy=…​) clause

  • ISIS-1038 - Extend ActionDomainEvent so that it provides the return value during the Executed phase.

  • ISIS-1039 - XmlSnapshot.Builder interface missing the build() method…​

  • ISIS-1040 - Extend FixtureScript / ExecutionContext with defaultParam / checkParam…​

  • ISIS-1043 - Enhance fixture script framework with better support for parameters being passed between scripts.

  • ISIS-1049 - Move Wicket viewer under core.

Bug

  • ISIS-853 - joda DateTime properties loose time when persisted

  • ISIS-878 - Wicket viewer escape does not dismiss some (though not all) action dialog boxes

  • ISIS-881 - deterministic?

  • ISIS-897 - Wrong format for org.joda.time.LocalDateTime

  • ISIS-911 - The blob panel's "additionalLinks" (for upload and clear buttons) should be hidden in Edit mode.

  • ISIS-941 - Wicket viewer shouldn't try to flush properties that are disabled.

  • ISIS-942 - Auditing broken for deleted objects.

  • ISIS-943 - ObjectContracts#equals should be more resilient.

  • ISIS-946 - Isis application won't run from Eclipse

  • ISIS-954 - Duplicate menu items in the application menu

  • ISIS-961 - Throwing exception in application code does NOT abort the transaction (it should, of course).

  • ISIS-966 - Restful viewer doesn't return a JSON representation when hits a 500 internally (instead getting an HTML page)

  • ISIS-971 - Ignore anonymous classes which inherit from @DomainService (eg in integ tests).

  • ISIS-1010 - "Session already open" error if attempting to login in a second browser tab

  • ISIS-1011 - Select2 component doesn't filter the suggestions

  • ISIS-1017 - @PreDestroy annotated method is not called

  • ISIS-1029 - Hidden{where} in layout is not honored by table representations

  • ISIS-1030 - Not possible for a declarative view model (@ViewModel) to reference another view model/

  • ISIS-1041 - Under certain circumstances, appears that auditing can cause the same tuple to be audited within a single transaction.

  • ISIS-1042 - Dropdown of Enums does not honour title() method

Task

  • ISIS-928 - Apache Isis 1.8.0 release tasks

  • ISIS-959 - Update Jackson dependency from 1.9.11 to 2.4.3

Sub-task

  • ISIS-512 - Wicket: render icons for actions (if available)

  • ISIS-556 - 537 branch to master

  • ISIS-876 - Action prompt dialog box rendering when title too long…​

1.7.0

Core

New Feature

  • ISIS-809 - Provide implementation of ViewModelFacet that doesn't require explicit implementation of the IViewModel interface.

  • ISIS-873 - CommandContext.getCommand() should also expose the ActionInteractionEvent.

  • ISIS-917 - Support pluggable representations for the RO viewer (object and list representations)

Security fixes

  • ISIS-846 - Enhance ExceptionRecognizer so that the stack trace can be suppressed in certain circumstances (for security)

  • ISIS-895 - HomePage should honour authorization rules.

Improvement

  • ISIS-864 - Command should be persisted if any dirty objects enlisted into transaction, in order to ensure no accidental orphans.

  • ISIS-866 - scoped service should be told when the request is starting and stopping.

  • ISIS-882 - Appropriate facets should be copied over to contributed collections and properties.

  • ISIS-907 - downs are truncated…​ the (derived) typical length for enums uses the name() rather than the toString()

  • ISIS-908 - strict" mode

  • ISIS-916 - provided services, such as MementoService or BookmarkService, can be overridden by the developer.

  • ISIS-918 - case handling of DomainObjectContainer; is just another service.

  • ISIS-927 - BookmarkService should be WrapperFactory aware…​

  • ISIS-805 - (Mac and Linux) Class discovery service throws errors on startup

Bug

  • ISIS-404 - Testing if a "wrapped" Domain Object has been persisted fails

  • ISIS-643 - N relationship

  • ISIS-852 - Derived property cannot be written properly

  • ISIS-871 - ActionInvocationFacetForInteractionAbstract passes Null to "ObjectSpecification.isViewModelCloneable"

  • ISIS-879 - ObjectMemberAbstract#isAlwaysHidden() does not honour where=Where.EVERYWHERE.

  • ISIS-899 - Can't return a view model in Apache Isis 1.6.0 over RO viewer.

  • ISIS-905 - arg action.

  • ISIS-912 - fixture flag is broken).

  • ISIS-919 - scoped) service when logging in DEBUG mode.

Removed features

Moved to (non-ASF) Isis Addons (as of 1.15.0, part of (non-ASF) Incode Platform).

  • ISIS-851 - Remove modules from Apache Isis core (available instead through isisaddons).

  • ISIS-887 - xxx modules, as now in isisaddons.

Removed features (obsolete)

  • ISIS-802 - Remove the ProfileStore component (in future, can raise a ProfileService as and when we identify a concrete reqt).

  • ISIS-913 - Remove the "ViewerInstaller" and "EmbeddedWebServerInstaller" APIs, since in effect defunct.

Unreleased features (backed out)

  • ISIS-865 - fast if an action is annotated with safe semantics but nevertheless results in dirty objects in the xactn.

  • ISIS-921 - 865), since does not cater for edits with contributed properties.

Task

Wicket viewer

New Feature

  • ISIS-902 - Enhance ImageResourceCacheClassPath so that can have two entities with the same simple name but in different packages.

Security fixes

  • ISIS-920 - (As a configuration option), provide the ability to disable the Wicket viewer automatically continuing to original URL after successful login.

  • ISIS-846 - Enhance ExceptionRecognizer so that the stack trace can be suppressed in certain circumstances (for security)

  • ISIS-895 - HomePage should honour authorization rules.

  • ISIS-884 - ErrorPage vulnerable to XSS attacks.

  • ISIS-885 - To avoid leaking information (eg in the title) should have a "special" permission to throw a 404 if user doesn't have permission to view any of the class' members.

  • ISIS-883 - Bookmarkable action URLs can be submitted by a user without permissions to bring up action dialog (thereafter that user can invoke).

Bug

  • ISIS-889 - Action prompt dialog seems to be not quite big enough in Chrome (is ok in Firefox and IEv11)

  • ISIS-880 - Appearance of Password field (in action dialogs) requires tweaking.

  • ISIS-910 - Entering invalid data for Char type fails with an internal error

Dependency upgrade

  • ISIS-794 - Upgrade to Wicket 6.16.0, remove CharSequenceResource

Task

1.6.0

Core

Isis core 1.6.0 also incorporates the Restful Objects viewer, Shiro Security and JDO Objectstore.

New Feature

  • ISIS-493 - Annotation to identify domain services/repositories

  • ISIS-800 - like form for Wicket viewer

  • ISIS-813 - Provide the ability to mock out domain services in integration tests.

Improvement

  • ISIS-421 - Write TCK tests for Restful Objects viewer

  • ISIS-574 - shiro to use shiro 1.2.3 (currently using 1.2.1)

  • ISIS-798 - Minor improvements in support of integration testing.

  • ISIS-823 - Restructure Todo's tests, nested static classes.

  • ISIS-827 - Introduce WrappingObject, with more unique method names, as a replacement for WrappedObject.

  • ISIS-831 - Extend (custom) EventBus vetoing logic so that can also encompass hide, disable, validate.

  • ISIS-832 - Move jdo, shiro and restful into core

  • ISIS-833 - Break out applib and JDO services into modules

  • ISIS-838 - Provide an additional hook method for AbstractIsisSessionTemplate that automatically sets up the transaction.

Bug

  • ISIS-796 - lifecycle callback "updating()" is not firing

  • ISIS-797 - 'Restful objects' decodes json request body while this is not

  • ISIS-801 - Action method taking domain object paramater gets triggered automatically whenever instances of that object type is accessed

  • ISIS-812 - Apache Isis 1.5 blob mapping broken for PostgreSQL (when set to null)

  • ISIS-818 - wrapSkipRules does not execute action due to being hidden

  • ISIS-821 - Precision gets lost when double values are use in BigDecimal attributes

  • ISIS-824 - Generic repository is broken

  • ISIS-828 - Wrapping an already wrapped object should honour the mode if different.

  • ISIS-836 - Not certain that FixtureScripts' ClassDiscoveryService works when referencing deployed 1.5.0 JAR

  • ISIS-840 - "Permission groups" for IsisPermission (custom security string for Shiro) not working as advertised.

Dependency upgrade

  • ISIS-716 - Update to DN 3.3.8 (deferred)

Task (Core)

Wicket Viewer

New Feature

  • ISIS-800 - like form for Wicket viewer

  • ISIS-816 - Provide an applib for Wicket viewer to hold any services specific to that viewer.

  • ISIS-817 - sources debugging plugin

Improvement

  • ISIS-781 - Add edit capability to view objects

  • ISIS-807 - Break out EntityPropertiesForm into two for the new IWizard, and then make into a separate component.

  • ISIS-815 - Internationalization of Wicket UI elements (edit, ok, cancel, logout, about)

Bug

  • ISIS-544 - focus on an action param date, then doesn’t show calendar picker..

  • ISIS-825 - focus on first field on action parameter not working

  • ISIS-835 - NPE in select2 with isisaddons module for tags, (optional choices for strings)

  • ISIS-837 - In Wicket viewer, forms not flushing properties when annotated with JDO @NotPersistent.

  • ISIS-843 - AboutPage is not serializable

Task

1.5.0

Core

New Feature

  • ISIS-550 - Complete the guava EventBus support with new annotations

  • ISIS-776 - end stories.

  • ISIS-786 - Allow event bus subscribers to veto interactions by throwing a RecoverableException or NonRecoverableException

Improvement

  • ISIS-569 - Fix JMock to support JDK7 (JavassistImposteriser)

  • ISIS-745 - Do not suppress the org.apache.isis classes from the "download metamodel" action (as provided by DeveloperUtilities service)

  • ISIS-749 - Make logging less noisy for selected classes

  • ISIS-762 - For commands on contributed actions, the target and "user friendly" target details should be captured as the contributee, not the contributed service.

  • ISIS-765 - Allow UserMemento#hasRole to match on wildcards

  • ISIS-770 - ioc (because brings in cglib/asm dependency)

  • ISIS-772 - Reimplement WrapperFactory to use javassist instead of cglib/asm (for Java7 support)

  • ISIS-782 - Integration testing framework should automatically install the FixtureClock singleton rather than the regular Clock

  • ISIS-783 - Integration test support enhancements

  • ISIS-795 - commit in the archetypes.

Bug

  • ISIS-758 - Auditing should be able to cope with a change to a property where the referenced object has been deleted.

  • ISIS-759 - Transient errors being logged as result of incorrect call to sendRedirect; not sure why, need diagnostics.

  • ISIS-760 - IllegalStateException when commands/audit enabled in Estatio and failing to persist the Oid of a view model.

  • ISIS-769 - IsisTransaction should do a "precommit" for pending updates to applib services, prior to commiting the underlying (JDO) transaction.

  • ISIS-777 - safe for concurrent requests.

Task

  • ISIS-751 - Update NOTICE copyright dates

  • ISIS-792 - up tasks for Apache Isis 1.5.0 release

Wicket Viewer

Improvement

  • ISIS-719 - Use org.webjars for some common dependencies (eg jquery)

  • ISIS-764 - Combine ReferencePanel and EntityLink2SelectPanel

  • ISIS-770 - ioc (because brings in cglib/asm dependency)

  • ISIS-774 - Remove IsisWicketUnsecuredApplication

  • ISIS-778 - Simpify ReferencePanel and EntityLinkSelect2Panel

  • ISIS-793 - Make Wicket viewer's IsisApplication easier to override (to support customization use cases)

Bug

  • ISIS-431 - A boolean atribute should never be mandatory

  • ISIS-752 - When collection is eagerly rendered (open), the title doesn't display the number of elements, instead just displays (+).

  • ISIS-757 - Make it possible to override logging.properties

  • ISIS-761 - ErrorPage itself is not serializable, resulting in stack traces in the log.

  • ISIS-787 - Property validation not displaying error message.

Dependency upgrade

  • ISIS-771 - Upgrade Wicket to wicket 6.15.0 (or whatever is latest)

Task

  • ISIS-792 - up tasks for Apache Isis 1.5.0 release

RestfulObjects Viewer

Task

  • ISIS-792 - up tasks for Apache Isis 1.5.0 release

Bug

  • ISIS-746 - When multiple realms configured for Shiro, should be more intelligent about obtaining roles from those realms

Task

  • ISIS-751 - Update NOTICE copyright dates

  • ISIS-792 - up tasks for Apache Isis 1.5.0 release

JDO ObjectStore

Improvement

  • ISIS-750 - For consistency with CommandJdo, allow the serializedForm to be stored as a clob (rather than as a zipped byte array)

  • ISIS-754 - BDD tests speed improvement with DN options, through a new IsisConfigurationForTests

  • ISIS-788 - Delete the Apache Isis Blob/Clob Converter classes for JDO, since redundant.

Bug

  • ISIS-744 - Column size can't be greater than 8000 characters on SQL Server

  • ISIS-714 - Blob/Clob mapping under DataNucleus is broken (just default serialize, not picking up the extension points)

Task

  • ISIS-751 - Update NOTICE copyright dates

  • ISIS-792 - up tasks for Apache Isis 1.5.0 release

1.4.1

Wicket Viewer

Improvement

  • ISIS-732 - The refresh of a standalone collection after invoking a bulk action should only be done if the original action was safe (query only)

  • ISIS-734 - In Wicket viewer, if action returns a blob/clob, then currently performing in a new window/tab.

Bug

JDO Objectstore

Bug

  • ISIS-733 - If toggle an object twice in standalone list (for bulk action), ends up invoking action (when shouldn't) and also throwing concurrency exception

1.4.0

Core

New Feature

  • ISIS-592 - Make XmlSnapshot (in core.runtime) available as an applib service.

  • ISIS-593 - MementoService enhancements

  • ISIS-595 - Validate metamodel to ensure that any bookmarkable actions are explicitly annotated as having safe action semantics.

  • ISIS-601 - Extend the dynamic JSON layout so that the PagedFacet (@Paged annotation) can be specified for collections.

  • ISIS-602 - Extend the dynamic JSON layout so that RenderFacet (@Render annotation) can be specified dynamically

  • ISIS-603 - Extend the dynamic JSON layout so that NamedFacet (@Named annotation) can be specified dynamically

  • ISIS-604 - Extend the dynamic JSON layout so that TypicalLengthFacet (@TypicalLength annotation) can be specified dynamically

  • ISIS-605 - Extend the dynamic JSON layout so that MultiLineFacet (@MultiLine annotation) can be specified dynamically

  • ISIS-606 - Extend the dynamic JSON layout so that CssClassFacet (@CssClass annotation) can be specified dynamically

  • ISIS-607 - Extend the dynamic JSON layout so that DescribedAsFacet (@DescribedAs annotation) can be specified dynamically

  • ISIS-612 - Return a URL from an action opens a new browser window

  • ISIS-613 - Extend the dynamic JSON layout so that HiddenFacet (@Hidden annotation) can be specified dynamically

  • ISIS-614 - Extend the dynamic JSON layout so that DisabledFacet (@Disabled annotation) can be specified dynamically

  • ISIS-624 - Use javax.validation.constraints.Digits to specify length and scale for BigDecimal action parameters (to avoid JDO exceptions later).

  • ISIS-625 - Better reporting of metamodel violation errors

  • ISIS-648 - Improve support for bulk update

  • ISIS-652 - Support @RequestScoped beans (registered as services)

  • ISIS-653 - scoped service, as a way of passing arbitrary user data from one place to another. One use case is to coordinate the response of bulk actions.

  • ISIS-654 - scoped QueryResultsCache service, as a technique for performance tuning.

  • ISIS-655 - scoped Bulk.InteractionContextService bean.

  • ISIS-660 - Profiling support and also infrastructure for background (async job) support

  • ISIS-661 - BackgroundService and BackgroundTaskService as a way of creating mementos to execute jobs asynchronously

  • ISIS-662 - Provide a "contributions" service to add a PublishedEvents contributed collection for the Interaction entity.

  • ISIS-663 - Provide a "contributions" service for AuditEntry, so that audit entries are shown as a contributed collection to the Interaction entity.

  • ISIS-664 - Provide an abstract class for running "sudo" scheduler jobs

  • ISIS-673 - AbstractIsisSessionTemplate as a way to run arbitrary 'runnable' in an Apache Isis session

  • ISIS-685 - Add new @Command(async=true|false) flag, so that Command is automatically scheduled to run in the background

  • ISIS-696 - Extra overload for BookmarkService for lookup with downcast (making more consistent with API of MementoService).

  • ISIS-697 - Extend DeveloperUtilitiesService to be able to refresh services (for contributed actions)

  • ISIS-728 - Provide facet factory to enable auditing by default on all objects, unless explicitly opted out

  • ISIS-729 - Provide facet factory to treat all actions by default as commands, unless explicitly opted out

  • ISIS-730 - Provide a very simple ClockService, so all services accessed in same way via DI

Improvement

  • ISIS-272 - Adding ValueSemanticProviders for UUID and URI

  • ISIS-541 - Enhance contributed actions/associations to support hideXxx, disableXxx, validateXxx, defaultXxx and choices where the contributee is automatically populated.

  • ISIS-543 - title() should take precedence over @Title, or perhaps should fail eagerly?

  • ISIS-579 - Add support for range queries in JDO objectstore

  • ISIS-583 - Contributed collections ignore @Render annotation

  • ISIS-597 - Services still not injected when entering @PostConstruct methods on a Service

  • ISIS-598 - Add support for @Inject standard annotation

  • ISIS-599 - Better message and diagnostics for Exception Recognizers

  • ISIS-600 - Change format of facet properties file, scope by member then facet

  • ISIS-623 - Make the default logging of JDO and IsisSytemForTest less verbose

  • ISIS-626 - Recognize Wicket PageExpiredExceptions and display a friendlier error message

  • ISIS-634 - downs (for enums/bounded and autocomplete) should honour TypicalLengthFacet.

  • ISIS-639 - Jetty webserver support long URLs

  • ISIS-640 - Extend MementoService.Memento API so that can also return the set of keys held in the Memento

  • ISIS-651 - Modifications to enable JRebel support

  • ISIS-659 - Extend MementoServiceDefault service to handle Bookmarks and also enums (as well as simple values)

  • ISIS-665 - ObjectActionImpl should escalate a thrown Isis ApplicationException to its underlying cause if the transaction is in a state of mustAbort.

  • ISIS-668 - out" services.

  • ISIS-670 - Replace AuditingService and AuditingService2 with new AuditingService3 API, more consistent with other APIs

  • ISIS-671 - Add a ReifiableActionFacet and @Reifiable annotation as a way to restrict which ReifiableActions are persisted. Enable background task service to hint that an ReifiableAction should be persisted even if not annotated.

  • ISIS-672 - Unify BackgroundTask and Interaction into same entity, rename to "ReifiableAction".

  • ISIS-684 - Rename ReifiableAction to simply 'Command', and update services also

  • ISIS-693 - Minor extensions in support of Excel import/export functionality.

  • ISIS-708 - BookmarkService null handling

  • ISIS-723 - BookmarkService should support lookup of domain services as well as domain entities (and throw an exception for view models)

Bug

  • ISIS-234 - Persistence by reachability of aggregated instances fails.

  • ISIS-619 - Extend IsisActions to support easy mocking of the DOC#newTransientInstance

  • ISIS-627 - Lazily loaded object cannot be deleted, throws an NPE

  • ISIS-635 - JDO Publishing Service impl causes ConcurrentModificationException in core.

  • ISIS-636 - BookmarkServiceDefault throws NPE if the BookmarkHolder (to which it contributes a property) returns a null Bookmark

  • ISIS-641 - Incompatibility of TreeSet for @Bulk.

  • ISIS-691 - down list's handling of null entity or values

  • ISIS-700 - (

  • ISIS-707 - Support Bulk.InteractionContext with contributed actions.

  • ISIS-712 - Inconsistency in domain logic for validation of optional strings causes Wicket viewer to trip up.

Task

  • ISIS-695 - up tasks for Apache Isis 1.4.0 release

Wicket Viewer

New Feature

  • ISIS-472 - Limit number of bookmarks

  • ISIS-608 - Show count for collections (if rendered eagerly), else a hint to expand.

  • ISIS-609 - Suppress showing actions for collections that are not rendered eagerly

  • ISIS-612 - Return a URL from an action opens a new browser window

  • ISIS-625 - Better reporting of metamodel violation errors

  • ISIS-633 - Press ESC to close/cancel the action prompt dialog

  • ISIS-638 - Provide the capability to capture UI hints, and copy to clipboard

  • ISIS-642 - down; when revisiting a page, any UI hints from last visit should be retained.

  • ISIS-648 - Improve support for bulk update

  • ISIS-649 - In wicket viewer, make it easier to develop custom styling by wrapping the body of all pages in a div with custom style

  • ISIS-701 - In Wicket viewer, make uppercase text switchable

  • ISIS-727 - time type

Improvement

  • ISIS-486 - Show action dialogs in a modal dialog rather than new page (less context switching for user)

  • ISIS-587 - Various UI improvements for Wicket viewer.

  • ISIS-588 - In Wicket viewer, make bookmark panel smaller, and enable with a keyboard shortcut

  • ISIS-589 - (

  • ISIS-590 - Wicket viewer strip wicket tags should depend on the deployment mode.

  • ISIS-591 - For Wicket viewer, load Javascript libraries (except for JQuery) from the footer.

  • ISIS-594 - Tidy up and simplify URLs in Wicket viewer.

  • ISIS-596 - Require smarter handling of bookmarked objects that have been deleted

  • ISIS-618 - Simplify ActionPage, separate out result components from prompt.

  • ISIS-626 - Recognize Wicket PageExpiredExceptions and display a friendlier error message

  • ISIS-634 - downs (for enums/bounded and autocomplete) should honour TypicalLengthFacet.

  • ISIS-658 - Provide a custom panel for java.sql.Timestamp

  • ISIS-677 - The blob/clob panel does not show the name of the blob/clob present (eg if just uploaded).

  • ISIS-680 - fidelity) alternative to the clipboard link, for those environments where flash is not supported.

  • ISIS-682 - In the Wicket viewer, the tooltip for icons should show the title (and perhaps also the type) of the icon being linked to.

  • ISIS-683 - In Wicket viewer, if delete objects from a standalone collection, then selecting again causes an exception.

  • ISIS-692 - down list box.

  • ISIS-699 - In Wicket viewer, when redirect to next page after invoking an action, have the browser's address bar show the URL of the object

  • ISIS-706 - Blob vs Clob request handling, also relationship with bulk actions.

  • ISIS-718 - Actions that return a URL should open in new tab/window

Bug

  • ISIS-429 - coded dependency to WicketSignInPage in PageAbstract…​

  • ISIS-617 - Wicket viewer throws NPE when rendering Apache Isis DateTime in a collection

  • ISIS-620 - When editing an entity twice a concurrency exception is thrown

  • ISIS-621 - Improve the Wicket viewer's parsing of numbers

  • ISIS-629 - Selecting a different option from a dropdown resets other fields

  • ISIS-630 - LocalDates are parsed to a wrong date when running in different timezone

  • ISIS-637 - down in action prompt

  • ISIS-669 - Download of Excel files in Wicket viewer on *nix/OSx machines doesn't work.

  • ISIS-675 - If try to upload attachment, then have to do the operation twice.

  • ISIS-676 - down widget is no longer rendered.

  • ISIS-686 - Logout as admin doesn't work (could be if on any machine other than localhost?)

  • ISIS-691 - down list's handling of null entity or values

  • ISIS-711 - Fix so that can raiseError in bulk actions.

  • ISIS-712 - Inconsistency in domain logic for validation of optional strings causes Wicket viewer to trip up.

Task

  • ISIS-695 - up tasks for Apache Isis 1.4.0 release

RestfulObjects Viewer

Task

  • ISIS-695 - up tasks for Apache Isis 1.4.0 release

Shiro Security

New Feature

  • ISIS-586 - Allow the IsisLdapRealm to read its role/perm mappings from an .ini file

  • ISIS-656 - Roles not setup when using Shiro

Task

  • ISIS-695 - up tasks for Apache Isis 1.4.0 release

JDO ObjectStore

New Feature

  • ISIS-660 - Profiling support and also infrastructure for background (async job) support

  • ISIS-661 - BackgroundService and BackgroundTaskService as a way of creating mementos to execute jobs asynchronously

  • ISIS-662 - Provide a "contributions" service to add a PublishedEvents contributed collection for the Interaction entity.

  • ISIS-663 - Provide a "contributions" service for AuditEntry, so that audit entries are shown as a contributed collection to the Interaction entity.

  • ISIS-664 - Provide an abstract class for running "sudo" scheduler jobs

  • ISIS-685 - Add new @Command(async=true|false) flag, so that Command is automatically scheduled to run in the background

  • ISIS-726 - Provide a 'Recent changes' contributed action that provides a unified view of commands and audit entries for domain objects.

  • ISIS-728 - Provide facet factory to enable auditing by default on all objects, unless explicitly opted out

  • ISIS-729 - Provide facet factory to treat all actions by default as commands, unless explicitly opted out

Improvement

  • ISIS-576 - JDO exception recognizer for sql integrity constraints should only recognize uniqueness constraints

  • ISIS-577 - Specify @Column(length=…​) for JDO entities (ApplicationSetting, UserSetting, PublishedEvent)

  • ISIS-579 - Add support for range queries in JDO objectstore

  • ISIS-597 - Services still not injected when entering @PostConstruct methods on a Service

  • ISIS-599 - Better message and diagnostics for Exception Recognizers

  • ISIS-611 - Ensure classes are properly eagerly registered with JDO Object store

  • ISIS-616 - JDO Implementation of the AuditingService should implement the AuditingService2 API

  • ISIS-623 - Make the default logging of JDO and IsisSytemForTest less verbose

  • ISIS-651 - Modifications to enable JRebel support

  • ISIS-657 - JDO objectstore service implemenations should use "IsisXxx" as a common prefix to any tables.

  • ISIS-665 - ObjectActionImpl should escalate a thrown Isis ApplicationException to its underlying cause if the transaction is in a state of mustAbort.

  • ISIS-667 - up/rationalization of JDO domain service impls

  • ISIS-670 - Replace AuditingService and AuditingService2 with new AuditingService3 API, more consistent with other APIs

  • ISIS-671 - Add a ReifiableActionFacet and @Reifiable annotation as a way to restrict which ReifiableActions are persisted. Enable background task service to hint that an ReifiableAction should be persisted even if not annotated.

  • ISIS-672 - Unify BackgroundTask and Interaction into same entity, rename to "ReifiableAction".

  • ISIS-684 - Rename ReifiableAction to simply 'Command', and update services also

  • ISIS-698 - Allow JDOQL to be able to select scalars (eg project individual field(s)) rather than entire entities.

Bug

  • ISIS-632 - PublishingService's PublishedEvent id has an incorrect max length

  • ISIS-644 - Update FrameworkSynchronizer to avoid the "Object not yet known to Apache Isis" exception

Dependency upgrade

  • ISIS-646 - Upgrade DataNucleus to 3.3.6 (JDO 3.1), and use the convenience 'accessplatform' POMs.

Task

  • ISIS-695 - up tasks for Apache Isis 1.4.0 release

1.3.1

Wicket Viewer

New Feature

  • ISIS-575 - Tiny new feature…​ add a tooltip to icons/titles so can see what type it represents.

Bug

  • ISIS-560 - When invoking an action, drop downs get cleared (in the UI) if there is a validation error, but the underlying model is set.

  • ISIS-570 - Drop downs for action parameters don't repaint themselves correctly when a validation error occurs for other parameters on the form.

  • ISIS-580 - Date fields are cleared when tabbing through other fields.

Task

  • ISIS-581 - Release tasks for Apache Isis wicket viewer v1.3.1

1.3.0

Core

New Feature

  • ISIS-420 - level settings service.

  • ISIS-423 - Provide contract test utility for the automatic testing of 1:m and 1:1 bidirectional relationships

  • ISIS-426 - Provide abstract contract test to easily verify Comparable implementations.

  • ISIS-427 - specific), with JDO implementation.

  • ISIS-430 - Allow the sort order for SortedSet parented collections to be overridden with a new @SortedBy annotation.

  • ISIS-433 - specific autoComplete through prefixed methods on actions parameters (cf choices method).

  • ISIS-434 - specific autoComplete through prefixed methods on properties

  • ISIS-440 - Contributed collections to allow decoupling

  • ISIS-441 - Helper classes in the applib to implement common object contracts (toString, equals, hashCode, compareTo)

  • ISIS-446 - A new DeveloperUtilitiesService to download the metamodel as a CSV spreadsheet

  • ISIS-450 - session interaction between entities.

  • ISIS-452 - New @PostsPropertyChangedEvent annotation to post a PropertyChangedEvent via EventBusService

  • ISIS-457 - New annotation @CssClass for class member, should render in the HTML markup for that member.

  • ISIS-461 - Provide the ability to run arbitrary fixtures (implementing the applib's InstallableFixture) in integration tests

  • ISIS-463 - scope, respectively)

  • ISIS-468 - Provide better layout management of pages in the Wicket viewer.

  • ISIS-469 - Provide implementations of certain layout facets that read from a "Xxx.layout.properties" file

  • ISIS-470 - Provide the ability to rebuild the metamodel for individual classes, thus allowing file-based layout capability…​

  • ISIS-475 - File-based layout using JSON, using an Xxx.layout.json file

  • ISIS-478 - Provide conditional choices, defaults and validation between action parameters

  • ISIS-484 - Contract test for ensuring that injectXxx methods are final and not overridable

  • ISIS-497 - Allow service actions to be rendered as contributed collections or as contributed properties.

  • ISIS-518 - Support Guava's Predicate API for allMatches etc in the applib; deprecate the Filter<T> API.

  • ISIS-553 - Provide view model support, as sketched out in the Restful Objects spec

  • ISIS-554 - Automatically render a "Dashboard" service (perhaps one annotated with @Dashboard) as an object in the Wicket viewer.

  • ISIS-559 - When a @Bulk action is invoked, an interaction context (available via a ThreadLocal) should provide additional contextual information.

Improvement

  • ISIS-51 - collections/guava or Apache collections)

  • ISIS-74 - Get rid of BoundedFacet (or keep only for information); instead replace with ChoicesFacetBecauseBounded.

  • ISIS-210 - Support parameter choices on contributed actions

  • ISIS-425 - Factor out abstract contract test class to make it easier to write contract tests that apply to all entities.

  • ISIS-428 - JUnitMockery2 should automatically instantiate the @ClassUnderTest

  • ISIS-436 - Extend the ApplicationSettings and UserSettings (read/write and listAll)

  • ISIS-444 - Autocomplete should allow minimum characters to be specified; choices should require no characters to be specified.

  • ISIS-453 - Extend @MemberGroups annotation so that it can provide a hint to lay out properties on either left or right hand side of the page (with respect to Wicket viewer's rendering)

  • ISIS-456 - ResourceServlet should set the contentType for common file types.

  • ISIS-458 - Allow services to be rendered in a different order than listed in isis.properties.

  • ISIS-462 - Improve ValueTypeContractTestAbstract to also test for value types that implement Comparable.

  • ISIS-465 - Provide the ability to reuse FixtureInstallerDelegate to install demo fixtures (in running application).

  • ISIS-474 - able due to user role permission mapping.

  • ISIS-480 - With the new multiple columns for properties, should only be a single edit form, and should also allow collections to "overflow" underneath property columns if need be.

  • ISIS-482 - Allow as "choices" return type any descendant of "Collection"

  • ISIS-485 - Clearer messages for validation exceptions (specially MandatoryExceptions)

  • ISIS-490 - Switch from log4j to using slf4j throughout

  • ISIS-495 - collection

  • ISIS-500 - Make EntityIconAndTitlePanel easier to subclass; minor tidy up ComponentFactory and PageRegistryDefault.

  • ISIS-503 - Refactor the way that members are ordered to allow contributee actions to be ordered within regular actions

  • ISIS-504 - Metamodel validator should throw a violation if discover any properties/collections on a service

  • ISIS-509 - Tidy up and rationalize Util classes in core (and all dependents)

  • ISIS-519 - archived stuff too, the never implemented searchable annotations/interfaces).

  • ISIS-528 - Allow framework to deal with transient objects not instantiated by newTransientInstance. Improve javadoc.

  • ISIS-536 - local

  • ISIS-539 - Allow a reason to be specified in @Disabled annotation

  • ISIS-546 - OID marshalling should allow an '@' symbol for the version.getUser()

  • ISIS-564 - The API for the AuditingService#audit omits the id of the property being changed. Fix this (respecting semver)

  • ISIS-567 - Provide the capability to disable concurrency checking through a global property (in isis.properties)

Bug

  • ISIS-236 - Classes that are not referenced in the DOM aren't found by the specification loader

  • ISIS-435 - Problems with Enums implementing methods on values

  • ISIS-442 - Fix error handling flow in IsisTransaction

  • ISIS-449 - Error handling when transaction aborted incorrect

  • ISIS-451 - Abstract methods (and perhaps synthetic methods) not being filtered out of metamodel

  • ISIS-464 - Some trivial cleanup

  • ISIS-467 - timezone difference issue in date test in org.apache.isis.objectstore.sql.HsqlTest

  • ISIS-531 - "API" classes that are used by danhaywood's wicket extensions, was breaking backward compatibility

  • ISIS-533 - When flushing transaction, allow for fact that flushing might cause additional persistence commands to be created, and iterate.

  • ISIS-545 - Test in error (Unparseable date)

  • ISIS-549 - RegisterEntities has two @PostConstruct methods…​

  • ISIS-565 - NullPointerException on OneToOneAssociation#clearValue

  • ISIS-566 - Concurrency conflict on related entity that has not been edited

Task

  • ISIS-437 - up tasks for Apache Isis 1.3.0 and associated components.

Wicket Viewer

New Feature

  • ISIS-417 - In wicket viewer, provide a 'select all' checkbox on table (for invoking bulk actions)

  • ISIS-419 - sensitive lookups.

  • ISIS-430 - Allow the sort order for SortedSet parented collections to be overridden with a new @SortedBy annotation.

  • ISIS-432 - In the wicket viewer, table columns should be sortable

  • ISIS-433 - specific autoComplete through prefixed methods on actions parameters (cf choices method).

  • ISIS-434 - specific autoComplete through prefixed methods on properties

  • ISIS-443 - Provide the ability to group domain services into logical menus, using @MemberOrder.

  • ISIS-445 - Actions returning blobs or clobs should download as a file.

  • ISIS-447 - In Wicket viewer, distinguish prototype/exploration actions in the app menu

  • ISIS-457 - New annotation @CssClass for class member, should render in the HTML markup for that member.

  • ISIS-468 - Provide better layout management of pages in the Wicket viewer.

  • ISIS-475 - File-based layout using JSON, using an Xxx.layout.json file

  • ISIS-478 - Provide conditional choices, defaults and validation between action parameters

  • ISIS-497 - Allow service actions to be rendered as contributed collections or as contributed properties.

  • ISIS-498 - Enhance Wicket's BlobPanel so that, if an image is uploaded as the blob, then it is displayed in thumbnail form.

  • ISIS-553 - Provide view model support, as sketched out in the Restful Objects spec

  • ISIS-554 - Automatically render a "Dashboard" service (perhaps one annotated with @Dashboard) as an object in the Wicket viewer.

  • ISIS-559 - When a @Bulk action is invoked, an interaction context (available via a ThreadLocal) should provide additional contextual information.

Improvement

  • ISIS-416 - Make spinning icon image in Wicket pluggable

  • ISIS-424 - final so can be subclassed.

  • ISIS-444 - Autocomplete should allow minimum characters to be specified; choices should require no characters to be specified.

  • ISIS-453 - Extend @MemberGroups annotation so that it can provide a hint to lay out properties on either left or right hand side of the page (with respect to Wicket viewer's rendering)

  • ISIS-455 - specific CSS.

  • ISIS-473 - Allow operations to individually be specified for "@bookmarkable" behaviour.

  • ISIS-480 - With the new multiple columns for properties, should only be a single edit form, and should also allow collections to "overflow" underneath property columns if need be.

  • ISIS-490 - Switch from log4j to using slf4j throughout

  • ISIS-500 - Make EntityIconAndTitlePanel easier to subclass; minor tidy up ComponentFactory and PageRegistryDefault.

  • ISIS-520 - type cmd line arg.

  • ISIS-521 - Xxx.layout.json is not read for abstract classes (as used for parented collections)

  • ISIS-523 - If max length of title in collections is 0, then suppress the title label also.

  • ISIS-525 - Wicket tags should be stripped by default, overridable with an Apache Isis property.

  • ISIS-527 - focus on first field when edit an object or on action parameter.

  • ISIS-530 - ui

  • ISIS-538 - Improve performance of rendering lists (in Wicket viewer)

  • ISIS-547 - Provide better error logging from the Wicket applicaiton init() method if Apache Isis fails to boot.

  • ISIS-558 - When bulk action is invoked, the action that generated the collection should be resubmitted (so that a full refresh takes place).

Bug

  • ISIS-401 - In wicket viewer, concurrency checking is currently disabled when invoke action on an entity.

  • ISIS-449 - Error handling when transaction aborted incorrect

  • ISIS-502 - wicket componentList order sensitivity

  • ISIS-551 - Not forwarding onto the error page correctly if any of the application actions (ie menus) hit the object store when the transaction has been set to ABORT due to an earlier failure.

  • ISIS-552 - Upgrade to Wicket 6.11.0 and disable HTML5 functionality that caused interference between required text fields and the Wicket viewer's veil.

  • ISIS-560 - When invoking an action, drop downs get cleared (in the UI) if there is a validation error, but the underlying model is set.

  • ISIS-566 - Concurrency conflict on related entity that has not been edited

RestfulObjects Viewer

New Feature

  • ISIS-553 - Provide view model support, as sketched out in the Restful Objects spec

Improvement

  • ISIS-411 - Enhance RO to allow EAGER rendering of properties (as well as collections)

  • ISIS-509 - Tidy up and rationalize Util classes in core (and all dependents)

Bug

  • ISIS-318 - Restful Objects viewer returning 500 instead of 400 when given bad input

  • ISIS-413 - RO representation of entities with a null LocalDate failing with an ClassCastException

  • ISIS-464 - Some trivial cleanup

  • ISIS-479 - Properties not getting updated as per 14.2 in RO Spec

  • ISIS-481 - some links are broken

  • ISIS-496 - a link is broken

  • ISIS-526 - Action Resource Parameters representation

Shiro Security

Improvement

  • ISIS-362 - Upgrade to JMock 2.6.0

  • ISIS-509 - Tidy up and rationalize Util classes in core (and all dependents)

JDO ObjectStore

New Feature

  • ISIS-322 - Allow JDO objectstore to run on the Google App Engine

  • ISIS-422 - Create Apache Isis API for custom Queries sent to the Objectstore by the PersistenceManager

  • ISIS-427 - specific), with JDO implementation.

  • ISIS-450 - session interaction between entities.

  • ISIS-459 - Enhance IsisJdoSupport service to support integration testing (execute arbitrary SQL, delete all instances of an entity)

  • ISIS-488 - Derive Apache Isis' MandatoryFacet from JDO @Column(allowsNull=) annotation, and provide @Mandatory annotation as override

  • ISIS-553 - Provide view model support, as sketched out in the Restful Objects spec

Improvement

  • ISIS-270 - NotYetImplementedException in JDO objectstore when debug logging enabled

  • ISIS-436 - Extend the ApplicationSettings and UserSettings (read/write and listAll)

  • ISIS-438 - Upgrade to DN 3.2.3 and remove the workaround we had introduced …​

  • ISIS-460 - JDO objectstore should sync adapters on bulk delete.

  • ISIS-509 - Tidy up and rationalize Util classes in core (and all dependents)

  • ISIS-524 - Allow to control the database schema generation using a property in isis.properties file.

  • ISIS-529 - Provide hidden versions of the ApplicationSettingsService and UserSettingsService.

  • ISIS-540 - ExceptionRecognizerForJDODataStoreException is too general…​

  • ISIS-557 - If @javax.jdo.annotations.Column(length=…​) is specified, then should be used to infer the MaxLengthFacet

Bug

  • ISIS-476 - Update JDO/DN to allow for fact that invoking the Persisting callback may have resulted in the target object having already been updated.

  • ISIS-549 - RegisterEntities has two @PostConstruct methods…​

  • ISIS-566 - Concurrency conflict on related entity that has not been edited

Dependency upgrade

  • ISIS-477 - Update JDO/DataNucleus objectstore to DN 3.2.6 and other latest dependencies

  • ISIS-501 - Maven error with DN enhancer: required artifact missing

Task

  • ISIS-437 - up tasks for Apache Isis 1.3.0 and associated components.

1.2.0

Core

New Feature

  • ISIS-323 - Provide the capability to publish events, either changed objects or invoked actions

  • ISIS-327 - Initialize and shutdown domain services

  • ISIS-344 - Automatically exclude "parent references" from parented collections.

  • ISIS-351 - fatal, for rendering to the user.

  • ISIS-356 - Allow 'inject' to be used as a prefix for injecting services into entities, fixtures or other services.

  • ISIS-360 - About page on wicket viewer should show version, build number and other details.

  • ISIS-367 - Refactor to support JTA transactions

  • ISIS-377 - Publishing Service implementation that writes to a queue (using JDO).

  • ISIS-378 - a service for prototyping that allows access into the internals of the Apache Isis runtime

  • ISIS-380 - Enhance BookmarkService API to allow objects to be looked up directly (rather than by dint of a BookmarkHolder)

  • ISIS-407 - Annotation to automatically adjust end dates of ranges so that they are shown as inclusive vs exclusive.

  • ISIS-409 - Move the 'wrapper' progmodel component into core, reworked as an optional service

Improvement

  • ISIS-208 - If two services accidentally have the same Id, then should throw an exception.

  • ISIS-326 - Make Datanucleus JNDI aware

  • ISIS-330 - Wicket viewer calls choices method while figuring out how to render properties. Should call less often (if not at all).

  • ISIS-331 - Explicitly specify project.build.sourceEncoding for both Isis and the quickstart archetype

  • ISIS-343 - Introduce @Render annotation and deprecate @Resolve

  • ISIS-345 - Move the Bookmark service in the applib to a different package

  • ISIS-353 - compareTo methods (when implement Comparable) should be automatically hidden

  • ISIS-358 - Should be able to delete objects even if they are not versioned.

  • ISIS-362 - Upgrade to JMock 2.6.0

  • ISIS-364 - Suppress components of title when rendered in a parented collection.

  • ISIS-366 - Core unit testing support JUnitRuleMockery2 does not support autoinjection of setters

  • ISIS-386 - Provide the ability to force a reload of an object by the JDO objectstore, and provide a domain service for clients.

  • ISIS-387 - Enhance PublishingService and AuditingService for created and deleted objects (as well as just updated objects).

  • ISIS-396 - Wicket/JDO handling of BigDecimal properties should honour the @Column's scale attribute.

  • ISIS-397 - Change default AuditingService impl to write to stderr, not stdout

  • ISIS-398 - Extend applib's Clock interface to also return time as Joda LocalDate or LocalDateTime

  • ISIS-403 - Improve the bookmarks in the Wicket viewer.

Bug

  • ISIS-359 - arg…​

  • ISIS-408 - persistable properties (annotated with @NotPersisted).

Wicket Viewer

New Feature

  • ISIS-328 - Wicket viewer should shutdown Apache Isis core on completion

  • ISIS-344 - Automatically exclude "parent references" from parented collections.

  • ISIS-351 - fatal, for rendering to the user.

  • ISIS-360 - About page on wicket viewer should show version, build number and other details.

  • ISIS-363 - Wicket viewer should abbreviate title to different lengths for parented vs standalone collections.

  • ISIS-384 - Provide automatic totalling of collections.

  • ISIS-400 - In the wicket viewer, allow actions to be associated with properties (similar to how this can be done with collections)

  • ISIS-407 - Annotation to automatically adjust end dates of ranges so that they are shown as inclusive vs exclusive.

Improvement

  • ISIS-314 - The wicket viewer should honour precision and scale when rendering BigDecimal values.

  • ISIS-320 - Be more verbose when wicket page fails to render

  • ISIS-330 - Wicket viewer calls choices method while figuring out how to render properties. Should call less often (if not at all).

  • ISIS-335 - Don't include (or perhaps abbreviate) the title text in collections

  • ISIS-337 - Reduce size of font in breadcrumbs

  • ISIS-338 - Right align number fields (byte, short, int, long, float, double, BigInteger, BigDecimal)

  • ISIS-339 - Wicket Autocomplete should only fire if at least 1 character has been entered.

  • ISIS-340 - Wicket viewer bookmarks should show icon as well as title

  • ISIS-343 - Introduce @Render annotation and deprecate @Resolve

  • ISIS-349 - Show notifications, warning messages and error messages in Wicket

  • ISIS-350 - Provide a fallback error page in case of runtime exception being thrown.

  • ISIS-357 - Gracefully handle objects that have been deleted.

  • ISIS-362 - Upgrade to JMock 2.6.0

  • ISIS-364 - Suppress components of title when rendered in a parented collection.

  • ISIS-365 - Should not add same object to bookmarks (breadcrumbs) twice if its title has changed.

  • ISIS-392 - In Wicket, provide a datepicker for all of the date/datetime value types.

  • ISIS-393 - Upgrade to Wicket 6.7.0

  • ISIS-394 - Use JQuery UI date picker rather than the YUI picker.

  • ISIS-395 - Allow Wicket viewer's date pattern to be globally configurable

  • ISIS-396 - Wicket/JDO handling of BigDecimal properties should honour the @Column's scale attribute.

  • ISIS-403 - Improve the bookmarks in the Wicket viewer.

Bug

  • ISIS-295 - NullPointerException when view aggregated entity using Wicket viewer

  • ISIS-321 - gracefully handle any constraint violation thrown by the DataNucleus persistence mechanism (to be handled by JDO ObjectStore & Wicket)

  • ISIS-334 - method String iconName() is never called in entities

  • ISIS-336 - Fix CSS for Wicket viewer so that disabled application actions (on menu bar) are shown greyed out.

  • ISIS-341 - if search and get no results, then click on the OK, then get a stack trace

  • ISIS-342 - Bootstrapping Wicket application should load supplementary config files for viewers.

  • ISIS-354 - Issues with Wicket viewer and tck examples

  • ISIS-359 - arg…​

  • ISIS-382 - Quickly pressing enter multiple times on an object form creates multiple instances.

  • ISIS-385 - In the wicket viewer, actions rendered by collections are never shown as disabled.

  • ISIS-388 - Bulk actions in Wicket viewer not correctly redirecting to error page if an unexpected error occurs

  • ISIS-390 - Fix NPE in Wicket viewer if tries to render an action that is invisible.

  • ISIS-402 - Wicket viewer, show bulk actions for prototype or exploring modes.

RestfulObjects Viewer

New Feature

  • ISIS-323 - Provide the capability to publish events, either changed objects or invoked actions

  • ISIS-410 - RO viewer support @Render(EAGERLY) for collections

Improvement

  • ISIS-233 - viewer up to RO spec 1.0.0

  • ISIS-362 - Upgrade to JMock 2.6.0

  • ISIS-387 - Enhance PublishingService and AuditingService for created and deleted objects (as well as just updated objects).

1.1.0

Core

New Feature

  • ISIS-282 - Add support for file uploads and downloads to Wicket viewer and JDO objectstore

  • ISIS-304 - arg, no business rules) do not appear.

Improvement

  • ISIS-305 - compareTo methods (when implement Comparable) should be automatically hidden

Bug

  • ISIS-207 - Improve the message given when a field is too long (exceeds its @MaxLength value)

  • ISIS-312 - Guard in BaseFixture to allow fixtures to load in production mode was faulty

Wicket Viewer

New Feature

  • ISIS-282 - Add support for file uploads and downloads to Wicket viewer and JDO objectstore

  • ISIS-304 - arg, no business rules) do not appear.

Improvement

  • ISIS-308 - Don't show (null) for a property or a parameter that has no reference (instead show an empty string)

  • ISIS-309 - Minor fixes to support extensions to Wicket viewer.

  • ISIS-315 - INF

Bug

  • ISIS-300 - The home page link in Wicket viewer goes to root context "/", rather than to the base of the webapp.

RestfulObjects Viewer

New Feature

  • ISIS-323 - Provide the capability to publish events, either changed objects or invoked actions

  • ISIS-410 - RO viewer support @Render(EAGERLY) for collections

Improvement

  • ISIS-233 - viewer up to RO spec 1.0.0

  • ISIS-362 - Upgrade to JMock 2.6.0

  • ISIS-387 - Enhance PublishingService and AuditingService for created and deleted objects (as well as just updated objects).

Shiro Security

New Feature

  • ISIS-307 - Allow groups to be mapped to roles (eg AD groups to logically internal application roles)

Improvement

  • ISIS-298 - Provide a shiro Realm implementation that supports looking up roles from an LDAP server.

Bug

  • ISIS-306 - Parsing permission strings should trim both before and after.

JDO ObjectStore

New Feature

  • ISIS-370 - Provide a service to allow all @PersistenceCapable entities to be eagerly registered with Apache Isis (and therefore with DataNucleus)

  • ISIS-377 - Publishing Service implementation that writes to a queue (using JDO).

  • ISIS-379 - Move AuditingService out of the ToDo app demo and into JDO objectstore as a service impl.

Improvement

  • ISIS-270 - NotYetImplementedException in JDO objectstore when debug logging enabled

  • ISIS-326 - Make Datanucleus JNDI aware

  • ISIS-362 - Upgrade to JMock 2.6.0

  • ISIS-376 - Enhance JDO objectstore to also support IdentityType.APPLICATION (as well as DATASTORE)

  • ISIS-386 - Provide the ability to force a reload of an object by the JDO objectstore, and provide a domain service for clients.

  • ISIS-387 - Enhance PublishingService and AuditingService for created and deleted objects (as well as just updated objects).

  • ISIS-389 - Ensure that objects lazily loaded by JDO/DataNucleus get domain services injected into them consistently.

  • ISIS-391 - Upgrade JDO objectstore to Datanucleus 3.2.1

  • ISIS-396 - Wicket/JDO handling of BigDecimal properties should honour the @Column's scale attribute.

  • ISIS-303 - Migration of DataNucleus (DN) type support to use DN v3.2 standard

Bug

  • ISIS-296 - wicket viewer display ??? ENTITYMODEL OBJECTADAPTER OID: NULL when view a root entity's collection member which data type is primitive String.

  • ISIS-301 - Error when using class name as discriminator strategy

  • ISIS-302 - Ensure related items are mapped into pojo (possible eager loading of parent/child relationship)

  • ISIS-321 - gracefully handle any constraint violation thrown by the DataNucleus persistence mechanism (to be handled by JDO ObjectStore & Wicket)

1.0.0

Core

New Feature

  • ISIS-240 - Provide a bookmark service in order to lookup any object

  • ISIS-242 - Provide support for JODA LocalDate and LocalDateTime as value types.

  • ISIS-250 - Change MetaModelValidator such that multiple validation errors can be reported in a single shot…​.

  • ISIS-263 - Introduce a new @CommonlyUsed annotation as a hint for the UI. To be implemented by Wicket viewer (as a minimum)

  • ISIS-264 - side paging as a minimum). Implement in Wicket as a minimum

Improvement

  • ISIS-89 - Finish off updating documentation post the first (pre 1.0) release of Apache Isis.

  • ISIS-131 - Archive off (and no longer support) the default runtime's client/server remoting

  • ISIS-188 - 1.0.0 release.

  • ISIS-192 - based authorization

  • ISIS-202 - Rename @Stable to @ViewModel

  • ISIS-203 - Improve the logging at startup

  • ISIS-216 - describing (ie make OidWithSpecification the norm, using an ObjectTypeFacet as a way of determining the type).

  • ISIS-227 - exist better.

  • ISIS-228 - Use JUnit categories to distinguish between tests that can be run on CI server and those that cannot.

  • ISIS-243 - Remove the Maybe type from the Isis applib.

  • ISIS-245 - Collapse the Version hierarchy

  • ISIS-248 - Perform concurrency checking within the persistor (rather than rely on every viewer/client to do the check)

  • ISIS-252 - Use enums instead of booleans in FacetFactory's/Facets/ValueSemanticsProvider

  • ISIS-253 - Get rid of DateValueFacet#getLevel(), since unused

  • ISIS-257 - Remove the @Executed annotation from the applib (and corresponding metadata stuff) since remoting no longer supported.

  • ISIS-258 - Extend @Hidden and @Disabled to specify Where the object member should be hidden/disabled.

  • ISIS-259 - Replace @QueryOnly and @Idempotent with a new @ActionSemantics annotation.

  • ISIS-260 - If a property is annotated as @Title, then by default it should not appear as a column in tables.

  • ISIS-261 - Remove obsolete code (Enumeration interface, AnnotationBasedFacetFactory)

  • ISIS-262 - Real composite for ResourceSourceStream

  • ISIS-267 - Handle "recreating" object adapters which are already resolved

  • ISIS-274 - Simplify the bootstrapping of Apache Isis so that there are fewer configuration properties to set in isis.properties

  • ISIS-280 - More consistent support for @Prototype and @Exploration, by utilizing the existing HidingInteractionAdvisor API

  • ISIS-281 - Provide support for integration testing using a JUnit rule.

  • ISIS-283 - Provide the ability to use fixtures as domain objects, eg within demo apps

  • ISIS-285 - Add additional MetaModelValidators so that orphaned prefixes are treated as a validation error.

  • ISIS-286 - Make sure pending changes are stored before issuing a query

  • ISIS-288 - During start up the configuration files are read in repeatedly making it confusing to track down configuration issues

Bug

  • ISIS-184 - PasswordValueSemanticsProvider.doEncode threw exception when I provided a defaultXXX method

  • ISIS-255 - Test in Runtime TestSupport component fails due to TimeZone

  • ISIS-265 - NullPointerException when storing new objects

  • ISIS-266 - BoundedFacetAbstract was invalidating using disabledReason()

Wicket Viewer

New Feature

  • ISIS-232 - General improvements to the Wicket viewer

  • ISIS-263 - Introduce a new @CommonlyUsed annotation as a hint for the UI. To be implemented by Wicket viewer (as a minimum)

  • ISIS-264 - side paging as a minimum). Implement in Wicket as a minimum

Improvement

  • ISIS-239 - Add support for MultiLine facet in Wicket viewer

  • ISIS-244 - Hide properties in tables that are statically invisible within the Wicket viewer

  • ISIS-251 - Implement concurrency exception handling in Wicket viewer

Bug

  • ISIS-287 - BigInteger types throw error in Wicket viewer

Wish

  • ISIS-271 - the option to overrule properties distributed as part of the application (read external properties)

RestfulObjects Viewer

Improvement

Bug

  • ISIS-256 - NullPointerReference exceptions when attempting to persist an object

JDO ObjectStore

New Feature

  • ISIS-14 - Add JDO 3.1 object store in order to support any datastore

Improvement