2.0.0-M3
This is a major milestone release that "re-platforms" Apache Isis so that it now runs on top of Spring Boot.
-
A new convenience parent pom builds on top of Spring Boot’s similar parent pom, to make it easy to develop new apps, along with simplified "mavendeps" pom’s.
-
The Maven archetypes have been replaced with Starter Apps in github repos.
-
Configuration properties have been refactored, and can now be specified (with intellisense hints) using Spring’s
application.properties
orapplication.yml
The core framework has been trimmed down, with testing functionality (eg fixture scripts) moving to a new top level "testing" group. Other new groups have been introduced: "value-types", "subdomains", (bounded context) "mapping", "extensions", "incubator", "legacy".
This milestone also introduces a number of new features:
-
new @Property#projecting allows view model summaries to be returned as "projections" of underlying entities.
-
new layout() method (or UI event) allows a domain object to specify which layout file should be used to render it.
-
no longer any need to specify @ParameterLayout#named()
-
security integration with Keycloak
-
New value types:
-
text-based value type with simple SSE support
-
Asciidoc value type
-
Markdown value type
-
-
New extensions:
-
Flyway (integrating with Spring Boot’s support)
-
CORS for the REST API (REST API (Restful Objects viewer))
-
pdf.js (for Web UI (Wicket viewer))
-
Improvements:
-
Integration test support, and BDD (Cucumber) "spec" support have been refactored to run on Spring Boot with Junit 5.
-
New demo app to demonstrate new features.
-
New smoketest app to catch regressions
-
The maven plugin has been retired, replaced by utility classes that can be used within integration tests.
-
There are no longer any split packages, and Maven groupId/artifactIds have been rationalized.
The website has been updated to use Antora.
New Feature
-
ISIS-2298 - Initial project structure for the Vaadin viewer
-
ISIS-2267 - Integrate Spring Boot flyway as an extension.
-
ISIS-2260 - Port pdfjs from incode platform as an extension
-
ISIS-2236 - Add WebModule to support CORS
-
ISIS-2181 - Rationalize pom hierarchy with respect to Spring Boot starter-parent.
-
ISIS-2180 - Resurrect mvn plugin functionality as integ test extensions.
-
ISIS-2174 - Resurrect Module with fixture support.
-
ISIS-2102 - Support for Server Sent Events (SSE)
-
ISIS-2095 - Allow event subscribers to change the returned value of an action in the EXECUTED phase.
-
ISIS-2084 - Allow upload of interim builds to repo.incode.work (also fixed in "v1 maintenance")
-
ISIS-2083 - Allow the dialogMode default for object actions vs service actions be specified separately.
-
ISIS-2081 - Provide "redirect even when same" control on action-by-action basis (also fixed in "v1 maintenance")
-
ISIS-2080 - Support multiple layouts for a domain object, switchable using layout() (similar to iconName() or cssClass()) (also fixed in "v1 maintenance")
-
ISIS-2079 - Improve rebuildMetaModel to return the target object rather than void (also fixed in "v1 maintenance")
-
ISIS-2078 - Allow sidebar vs modal to be specified on action-by-action basis using @ActionLayout or XML (also fixed in "v1 maintenance")
-
ISIS-2075 - Allow multiple layouts to be defined, and a helper method such as "layout()" that returns which to use, similar to iconName() and cssClass().
-
ISIS-2020 - Experimental Support for DataNucleus Federated Datastore
-
ISIS-2001 - Dynamically hide/disable/default action parameters (based on other parameter arguments) (also fixed in "v1 maintenance")
-
ISIS-1998 - Simplify syntax way for mixins, to better express intent using @Action, @Collection and @Property
-
ISIS-1634 - Move paraname8 into core.
-
ISIS-1297 - Integrate with Keycloak
-
ISIS-1280 - Property#projecting attribute: provide redirect hints so that when the user clicks on a rendered link, the viewer instead navigates to some other entity. (also fixed in "v1 maintenance")
-
ISIS-1263 - Support editing/preview using Asciidoctor (perhaps as an Isis addon)
-
ISIS-1176 - Provide the capability to push notification messages to end-users without refreshing (using web sockets or Atmosphere etc).
Improvement
-
ISIS-2307 - Vaadin Viewer: Isis Preset Debug Logging not honored
-
ISIS-2306 - Vaadin Viewer: Action calls need an IsisSession
-
ISIS-2305 - Demo App: add more scalar types not covered yet
-
ISIS-2303 - Vaadin Viewer: Login Page
-
ISIS-2302 - Rename WithTransactionScope interface to eg. TransactionScopeListener
-
ISIS-2299 - Convert BDD Cucumber to use JUnit5 test platform engine (rather than legacy JUnit4)
-
ISIS-2291 - SecMan: convert any actions in 'jdo' to mixins and move to 'model'
-
ISIS-2285 - Reinstate mechanism to run a specified fixture class on startup.
-
ISIS-2284 - RO viewer incorrectly throws 500 instead of 404 for ObjectNotFound.
-
ISIS-2274 - Properties should be disabled by default.
-
ISIS-2273 - Move most of core-unittestsupport into testing. Perhaps all of it.
-
ISIS-2272 - Simplify @HomePage support - just use as annotation on type, not for an action.
-
ISIS-2271 - Port fullcalendar over from incode-platform as an extension.
-
ISIS-2268 - Rename OrderPrecedence literals
-
ISIS-2264 - Rationalize configuration properties hierarchy, in line with groupId / artifactId
-
ISIS-2263 - Update RO spec in support of java.time
-
ISIS-2262 - Remove ExceptionRecognizer.recognize(Throwable) in favor of recognize2(Throwable)
-
ISIS-2261 - Allow the baseUri of the RO viewer to be overridden
-
ISIS-2259 - Reorganize extensions into several smaller groupings.
-
ISIS-2258 - Documentation Typos and AsciiDoc improvements
-
ISIS-2255 - In WrapperFactory, lookup mixin properties and collections (as well as actions).
-
ISIS-2250 - Optionally prevent new ObjectSpec’s once metamodel fully created; and revalidate new ObjectSpec’s otherwise.
-
ISIS-2249 - Deprecate Magnitude<T> and implementing Value Types
-
ISIS-2248 - Store the MetaModelContext in DN’s NucleusContext
-
ISIS-2247 - provide an IsisPreset for specifying the log4j2-test.xml file when running integ tests.
-
ISIS-2244 - Remove IsisJaxrsServerPlugin
-
ISIS-2243 - Use resteasy-spring-boot-starter to configure jaxrs-resteasy
-
ISIS-2242 - Use IsisSystemEnvironment to store the context path, rather than _Resources static method.
-
ISIS-2241 - Remove _Resources_RestfulPath
-
ISIS-2240 - Use WebModule infra to inject into all servlets, filters etc.
-
ISIS-2239 - Use @Validated for base-path config properties
-
ISIS-2238 - Move WebModuleRestfulObjects into the resteasy plugin module.
-
ISIS-2237 - Sequence WebModules correctly.
-
ISIS-2229 - Let TitleService fallback to Enum.name() as the Title Provider
-
ISIS-2225 - Simplify config metadata for wicket footer credits.
-
ISIS-2224 - Integrate Smoketests with the CI Build
-
ISIS-2219 - Move LDAP Realm implementation into an extension.
-
ISIS-2218 - Remove AuthenticationManager interface, just use AuthenticationManagerStandard as default impl.
-
ISIS-2217 - Rename ext fixture’s Module interface to ModuleWithFixtures
-
ISIS-2216 - Standardize service @Ordered, @Named, @Primary
-
ISIS-2215 - Remove usage of @ComponentScan, instead explicitly @Import all services etc.
-
ISIS-2214 - Introduce @Module as a meta-annotation for @ComponentScan and @Configuration.
-
ISIS-2213 - Avoid package splitting, in prep for possible JPMS support in future.
-
ISIS-2212 - Rename runtime-web to webapp, and tidy up
-
ISIS-2208 - Move h2console/h2managermenu and hsqldbmanager out into isis-extensions.
-
ISIS-2207 - Move schema.utils package in applib under o.a.i.applib package
-
ISIS-2206 - Create an incubator catalog and a legacy catalog, similar to extensions.
-
ISIS-2205 - Break runtime-extensions module into separate responsibilities
-
ISIS-2202 - Exclude org.springframework from the metamodel
Bug
-
ISIS-2310 - Values of @EmbeddedOnly type should not render logo or title if absent
-
ISIS-2308 - Regression: Markup rendering is broken
-
ISIS-2296 - @RequestScoped isn’t honoured
-
ISIS-2295 - ChangedObjectsService doesn’t reset enlisted pojos at end of xactn → memory leak.
-
ISIS-2293 - Fix the ability to inject into Specifications
-
ISIS-2292 - HTTP 400 when rendering Object w/ ObjectId containing slashes
-
ISIS-2288 - (possible regression): if sidebar is activated, then cannot access menu items (z-order)
-
ISIS-2286 - SecMan listAll Classes: types of @DomainService(nature=NatureOfService.VIEW) are missing
-
ISIS-2283 - Demo/RO: restful/menuBars Contains Unexpected Element
-
ISIS-2282 - Demo: action 'runFixtureScript' either does not exist or is not visible
-
ISIS-2281 - objectSpec expected to have EncodableFacet
-
ISIS-2275 - Rest Response Doesn’t Contain Number With "multiLine"
-
ISIS-2266 - Revert a little bit of the joda to j8 stuff.
-
ISIS-2265 - on-the-fly-introspection may occur even though MM was eagerly loaded
-
ISIS-2257 - Actions fail MM Validation when associated (Hotfix)
-
ISIS-2256 - ToggledMementosList can exceed Size of underlying Collection
-
ISIS-2254 - Ensure Command executor is set to USER when running integ tests.
-
ISIS-2246 - CSS fix for drop down panel (eg vertical '…' on metadata tab)
-
ISIS-2228 - autoComplete, default, choices don’t get added to the MM
-
ISIS-2227 - Toggle View is hiding DOM elements which should be visible
-
ISIS-2226 - Dependend Args within Dialogs do not work for AutoComplet, Disable and Hide
-
ISIS-2221 - RestClient smoketest is broken
-
ISIS-2220 - Selecting request header options (profiles) in swagger-ui does not work.
-
ISIS-2210 - When web browser is narrow, sidebar always shown.
-
ISIS-2209 - Orphaned validation (when @Action is NOT mandatory) isn’t working.
-
ISIS-2204 - Fixes algorithm for determining if a domain action is "public" visible (ie no entities)
-
ISIS-2203 - Fix NPE when rendering a domain object with null property in RO viewer.
-
ISIS-2193 - BookmarkService doesn’t seem to lookup correctly
-
ISIS-2179 - Fallback to home page (in event of action returning null) throws an IllegalArg
-
ISIS-2170 - @PersistenceCapable(schema=…) is no longer being used to derive objectType
-
ISIS-2157 - Secman: Non-existing User gets created in DB even though not authenticated via LDAP
-
ISIS-2153 - Internal API: _Tasks with ThreadPoolSupport must not suppress nested Exceptions
-
ISIS-2144 - Persistable mixins not showing in the demo apps.
-
ISIS-2139 - WepApp’s main() should just work out of the box
-
ISIS-2130 - Mixins are broken. Don’t seem to be recognized, thus ignored.
-
ISIS-2129 - Blob/Clob-Panel’s Download Button might reference invalid content.
-
ISIS-2128 - TimestampService is broken
-
ISIS-2124 - Common actions not shown, even when explicitly listed in layout.xml
-
ISIS-2123 - SimpleApp build/validate/test needs fixing for v2
-
ISIS-2119 - Increase timeout to avoid occasional exceptions when download Blobs (also fixed in "v1 maintenance")
-
ISIS-2118 - Don’t redundantly add additional DisabledFacet when disabled at class-level (also fixed in "v1 maintenance")
-
ISIS-2116 - Avoid error in downloadMetaModelXml, CommandPersistence.NOT_PERSISTED facet not decoded correctly (also fixed in "v1 maintenance")
-
ISIS-2115 - Prevent ajax js error for inlinePromptLink on scalar panel (also fixed in "v1 maintenance")
-
ISIS-2107 - Allow enums to implement interfaces for choices (also fixed in "v1 maintenance")
-
ISIS-2104 - AuditerService not being called
-
ISIS-2089 - JDODataStoreException not handled properly by the framework
Dependency upgrade
-
ISIS-2300 - Some CVEs in dependencies are threatening your project!
Duplicate
-
ISIS-674 - [DUPLICATE] Allow action parameters to be defaulted based on the (change of) value of other parameters.
-
ISIS-892 - [DUPLICATE] Allow action parameters to be dynamically disabled or even hidden based on either object state or on the values for other objects.
-
ISIS-1294 - [WON’T FIX] Support Spring.Data like repositories with automatic implemenation of methods such as findByName or findByStartDateAndStatus
-
ISIS-1334 - [DUPLICATE] Create standalone JAR of an Isis app
Won’t Fix
-
ISIS-1645 - [WON’T FIX] Integrate Kryo as an alternative technology for view models
-
ISIS-1568 - [WON’T FIX] Automated testing tool to act as a webcrawler, clicking on all links and assert that the page is rendered correctly.
-
ISIS-1487 - [WON’T FIX] Extend the framework’s metamodel to be able to render List<Map<String,Object>>
-
ISIS-1267 - [WON’T FIX] Enhance isis-maven-plugin to generate UML class diagrams from metamodel
-
ISIS-992 - [WON’T FIX] Extend Isis metamodel and Wicket viewer so that a "delete" action can be automatically provided for deleteable objects.
-
ISIS-958 - [WON’T FIX] [DUPLICATE] Create a custom distribution of TomEE containing the Isis jars
-
ISIS-924 - [WON’T FIX] Use @DomainService(repositoryFor=…) as the basis for an implementation of the PluralNameFacet
-
ISIS-923 - [WON’T FIX] Use @DomainService(repositoryFor=…) as the basis for an implementation of the AutoCompleteFacet.
-
ISIS-857 - [WON’T FIX] JDO/Wicket/RO: provide support for a number of built-in value types (eg BaseNumber, BaseString, BaseDate… to support Money, Reference, Note, Description); annotated with @Mask annotation
-
ISIS-572 - [WON’T FIX] To improve performance, support the use of data pinned to caches for entities that are intended to be reference data. For these, infer the ImmutableFacet.
-
ISIS-563 - [WON’T FIX] Implement generic Spec Transformers for BDD tests
-
ISIS-515 - [WON’T FIX] Pinnable (and persistable) bookmarks
-
ISIS-2211 - [WON’T FIX] Factor out Swagger UI as a separate "viewer" module
-
ISIS-2114 - [WONT-FIX] Tables: Object Columns should be sortable by displayed Object Titles
-
ISIS-1971 - [WON’T FIX] JAXB view model: setting view’s properties via PostConstruct method not honored