Clone Tools
  • last updated a few minutes ago
Constraints: committers
Constraints: files
Constraints: dates
ISIS-1452: reinstates logic to abort transaction if an exception is thrown.

Previously (1.12.x) this was done using transaction facet decorators, but the work done under ISIS-1291 and others for this release removed those classes, without moving the responsibility elsewhere.

This commit reintroduces the handling, with the ActionInvocationFacet and PropertySetterOrClearFacet using the looked-up PersistenceSessionServiceInternal to executeWithinTransaction; this is basically the same place in the call stack that the decorator facets would have been.

The *Default impl of this - as used in runtime - delegates to the IsisTransactionManager#executeWithinTransaction(...).

ISIS-1335: updates asf, help and support docs on main website

To reference PMC board reports, also the new ponymail archive provided by

ASF infra

ISIS-1449: renames the 'isis.viewer.wicket.suppressRememberMe' config property

... to 'isis.viewer.wicket.rememberMe.suppress'.

If both config properties are available then they are OR'd together; setting either one will enable the setting.

ISIS-1436: fixes showAll behaviour for non-standalone collections.

The earlier work sorted out showAll for standalone, but unfortunately broke regular entity (parented) collections with an NPE - there is no toggled list for these.

ISIS-1448: reinstates the ability to switch component factory for entity collection.

Prior to 1.12.0 the ComponentFactory SPI was used to lookup the component to render an entity collection, using ComponentType.ENTITY_COLLECTION and passing in an EntityModel with appropriate hints to indicate which collection of the entity to render. The default implementation was EntityCollectionsPanelFactory returning an EntityCollectionsPanel (the plural here is because there many representations of a single collection, with a drop-down selector to choose which).

In the 1.12.0 (layout XML stuff), this capability was lost: the new Col class simply instantiates EntityCollectionPanel (renamed from EntityCollectionsPanel).

This commit reinstates the ability by having Col use the ComponentFactoryRegistrar to look up the component to render the entity collection.

The commit also deletes the CollectionPanelFactory; this code was unused. CollectionPanel is the default table representation of the collection; EntityCollectionPanel simply instantiates it and then keeps track of all the "other" implementations to render the collection. To make this easier to switch in, the code to instantiate a CollectionPanel within EntityCollectionPanel has been moved to a (potentially overridable) factory method.

ISIS-1447: fixes tiny typo in docs for previous commit

ISIS-1447: disables behaviour that (we believe) may cause 500 errors for Restful Objects server (Shiro authentication).

As per, we believe that the auto-logout behaviour within the IsisSessionFilter for Restful Objects, if configured to use Shiro, may result in a 500 errors in certain race conditions. This commit removes this auto-logout behaviour (simply continue to use the existing Shiro credentials). The original behaviour can be reinstated using a new configuration parameter.

ISIS-1335: updates archetype to allow WebServer to run from Eclipse

... in the same way that we use a profile to allow this within IntelliJ IDEA

Merge branch 'ISIS-1446_pr-47'

ISIS-1446: adds fileAccept attribute for @Property and @Parameter

... to restrict the files that can be uploaded to Blobs and Clobs.

Also updates docs, and adds in missing docs for Blob and Clob value types

Merge branch 'master' of into ISIS-1446_pr-47

ISIS-1445: updates translations for the simpleapp archetype

ISIS-1445: looks up tab name via TranslationService

ISIS-1418: adds documentation for @Nullable

ISIS-1443: deals with subclass domain services

whereby the superclass is also a domain service but is only loaded

implicitly by walking the type hierarchy. This commit ensures that

if that superclass is annotated with @DomainService then it will

correctly be created with a service ObjectSpec

ISIS-1444: marks FixtureScript.Execution methods as @Programmatic

So that these are excluded from the metamodel (eg those beginning with

reserved words, such as clearXxx())

ISIS-1441: fixes unit tests

ISIS-1335: fixes fa icon for the rebuildMetamodel mixin action.

ISIS-1442: adds @Value to some of the applib classes, so that these don't get mixins added to them within the metamodel.

There is no functional effect to doing this; we never interact with these classes via the metamodel.

ISIS-1443: removes markAsService from ObjectSpecification, instead specify through the constructor.

ISIS-1441: removes AuthenticationManagerStandardForDfltRuntime, instead use AuthenticationManagerStandard.

The supporting classes move from isis-core-runtime to isis-core-metamodel. Because the Authenticator subclasses relied on DeploymentType (only available in the isis-core-runtime), these instead depend on DeploymentCategory (in isis-core-metamodel).

This also includes a minor refactoring in the closeSession stuff... previously we called closeSession on AuthenticationManagerStandardForDfltRuntime, that in turn called IsisSessionFactory#closeSession() in order to clear the threadlocal holding the current session. However, IsisSessionFactory is part of isis-core-runtime so this design doesn't work. However, there is only one caller of closeSession, namely UserResourceServerside (the RO viewer). The refactoring is therefore easy enough... just have UserResourceServerside make the call to IsisSessionFactory.

  1. … 19 more files in changeset.
ISIS-1407: ensures that internal domain services (not annotated with @DomainService) are also loaded into the metamodel as service specifications.

ie markAsService toggled on. This then means that the code to invoke markAsService() whenever any PersistenceSession is opened can be removed.

ISIS-1291: adds @Programmatic where necessary for new and internal domain services

... so that this stuff isn't unnecessarily loaded into themetamodel.

In a similar vein, aAlso change IsisConfiguration so that it doesn't implement Iterable, because otherwise the default interface methods (spliterator, forEach) show up in the metamodel. Instead, extend to provide an "asIterable()" method.

ISIS-1438: initializes JaxbContexts within the various DtoUtils in the background (via ThreadPool).

ISIS-1437: uses a ThreadPool to initialize Wicket viewer components in parallel.

ISIS-1429: removes ExplorationFacet, uses PrototypeFacet instead.

There should be no impact for developers: actions annotated with @Exploration or prefixed 'exploration' will be treated the same as prototype actions.

  1. … 8 more files in changeset.
ISIS-1429: removes DebugFacet, impls and corresponding facet factories.

Neither the Wicket viewer nor RO viewer has any capability to enable a 'debug' mode (and if we did want to support this we would probably use JMX or similar.

Alternatively, we have @Prototype actions

ISIS-1256: adds capability to use a configured encryption key for 'rememberMe'.

We don't actually use Shiro's 'rememberMe' capability, instead it is baked

into the Wicket login page we subclass from. But the vulnerability in that

Shiro ticket would also seem to be there for Wicket, so this commit adds

the capability to allow the developer to specify their own (private)

encryption key - and will use a different random key each time the app is

restarted otherwise

ISIS-1436: fixing behaviour of toggling when 'showAll' is invoked

ISIS-1418: allows @Nullable to be annotated on either properties or parameters.

The appropriate facet is installed, and a MetaModelValidator is used to check that there are no conflicting annotations (ie @Mandatory vs @Nullable vs @Optional vs @Property#optionality or @Parameter#optionality).