[jira] [Commented] (ISIS-3032) [Wicket Viewer] Consistent Placeholder Rendering (none) + (suppressed)
[ https://issues.apache.org/jira/browse/ISIS-3032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530343#comment-17530343 ] ASF subversion and git services commented on ISIS-3032: --- Commit 0cd1c4a8e7f9bb9e763d9931ab16c73beb0301e0 in isis's branch refs/heads/master from Andi Huber [ https://gitbox.apache.org/repos/asf?p=isis.git;h=0cd1c4a8e7 ] ISIS-3032: null-reference rendering fixes (blob/clob/obj-ref) > [Wicket Viewer] Consistent Placeholder Rendering (none) + (suppressed) > -- > > Key: ISIS-3032 > URL: https://issues.apache.org/jira/browse/ISIS-3032 > Project: Isis > Issue Type: Improvement > Components: Isis Viewer Wicket >Reporter: Andi Huber >Assignee: Andi Huber >Priority: Minor > Fix For: 2.0.0-RC1 > > > Currently we define (none) as placeholder for missing/empty values and > (suppressed) as placeholder for eg. password values. To allow consistent > rendering we need to express a unique CSS class for styling these. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ISIS-3032) [Wicket Viewer] Consistent Placeholder Rendering (none) + (suppressed)
[ https://issues.apache.org/jira/browse/ISIS-3032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530332#comment-17530332 ] ASF subversion and git services commented on ISIS-3032: --- Commit fa537db5346177d061879dbc2e7fa85966bab6e6 in isis's branch refs/heads/master from Andi Huber [ https://gitbox.apache.org/repos/asf?p=isis.git;h=fa537db534 ] ISIS-3032: css: font-size fix for badges inside tables and form-controls > [Wicket Viewer] Consistent Placeholder Rendering (none) + (suppressed) > -- > > Key: ISIS-3032 > URL: https://issues.apache.org/jira/browse/ISIS-3032 > Project: Isis > Issue Type: Improvement > Components: Isis Viewer Wicket >Reporter: Andi Huber >Assignee: Andi Huber >Priority: Minor > Fix For: 2.0.0-RC1 > > > Currently we define (none) as placeholder for missing/empty values and > (suppressed) as placeholder for eg. password values. To allow consistent > rendering we need to express a unique CSS class for styling these. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-3034) [Metamodel] Unify HiddenTypeFacet and HiddenObjectFacet
[ https://issues.apache.org/jira/browse/ISIS-3034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-3034. Resolution: Won't Fix This won't work, because we have 2 facets that must co-exist, where each has veto power. > [Metamodel] Unify HiddenTypeFacet and HiddenObjectFacet > --- > > Key: ISIS-3034 > URL: https://issues.apache.org/jira/browse/ISIS-3034 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Reporter: Andi Huber >Assignee: Andi Huber >Priority: Major > Fix For: 2.0.0-RC1 > > > No reason to have 2 facets for the same purpose. Also prone to errors. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (ISIS-3034) [Metamodel] Unify HiddenTypeFacet and HiddenObjectFacet
Andi Huber created ISIS-3034: Summary: [Metamodel] Unify HiddenTypeFacet and HiddenObjectFacet Key: ISIS-3034 URL: https://issues.apache.org/jira/browse/ISIS-3034 Project: Isis Issue Type: Improvement Components: Isis Core Reporter: Andi Huber Assignee: Andi Huber Fix For: 2.0.0-RC1 No reason to have 2 facets for the same purpose. Also prone to errors. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2810) [is this required?] secman - introduce explicit permissions for type
[ https://issues.apache.org/jira/browse/ISIS-2810?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2810. Resolution: Won't Fix won't fix: the current model will do for now > [is this required?] secman - introduce explicit permissions for type > > > Key: ISIS-2810 > URL: https://issues.apache.org/jira/browse/ISIS-2810 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M5 >Reporter: Daniel Keir Haywood >Assignee: Daniel Keir Haywood >Priority: Minor > > ... by reworking HiddenTypeFacetDerivedFromAuthorization to be based on > explicit type action. > *discussion:* > The current behaviour of the NavigationFacetDerivedFromHiddenType, which is > derived from HiddenTypeFacetDerivedFromAuthorizaion (the only implementation > of HiddenTypeFacet) is difficult to comprehend and might be considered too > strict ... see for example this thread: > [https://the-asf.slack.com/archives/CFC42LWBV/p1626757648322200?thread_ts=1626754801.321200=CFC42LWBV.] > > An alternative design has been suggested for > HiddenTypeFacetDerivedFromAuthorizaion that is based not on whether there are > any members visible, but simply on whether the type has been explicitly > hidden (or perhaps implicitly inherited from the namespace). For more info, > pick up the thread here: > [https://the-asf.slack.com/archives/CFC42LWBV/p1626778227337200?thread_ts=1626754801.321200=CFC42LWBV] > Perhaps a configuration flag should determine the behaviour of its facet > factory easy to configure: > * EXPLICIT_TYPE_PERMISSIONS (this is the default) > * DERIVED_FROM_MEMBER_PERMISSIONS (collections, properties and actions) > * DERIVED_FROM_ASSOCIATION_PERMISSIONS (collections + properties but not > actions) > * DERIVED_FROM_PROPERTIES_PERMISSIONS > * NONE ... effectively disable -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1672) Simplify handling of autoComplete facet, by copying autoComplete from parameter type's spec down to the parameter itself
[ https://issues.apache.org/jira/browse/ISIS-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1672. Resolution: Won't Fix won't fix: I think we have more than one place where we need to check for facets on the parameter argument and facets on the parameter type; think its not strictly required to start making inferred facets for all these cases; keep it simple > Simplify handling of autoComplete facet, by copying autoComplete from > parameter type's spec down to the parameter itself > > > Key: ISIS-1672 > URL: https://issues.apache.org/jira/browse/ISIS-1672 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 1.14.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > Currently ReferencePanel and (as of ISIS-1600) the > ActionChoicesForCollectionParameterFacetFactory both check for > autoComplete/choices of a parameter in two places: > a) on the parameter itself (as per a choicesNXxx() or an autoCompleteNXxx()) > b) on the parameter's type (as per @DomainObject(autoCompleteRepository=...) > To simplify and make more consistent, should derive a parameter-level > ActionParameterAutoCompleteFacet from the objectspec's AutoCompletefacet. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1703) Mixin property that returns a BigDecimal does not support @Digits(...) annotation as a return type.
[ https://issues.apache.org/jira/browse/ISIS-1703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1703. Resolution: Fixed probably fixed with new value semantics > Mixin property that returns a BigDecimal does not support @Digits(...) > annotation as a return type. > --- > > Key: ISIS-1703 > URL: https://issues.apache.org/jira/browse/ISIS-1703 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 1.15.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1807) Wrap Domain Entities by default
[ https://issues.apache.org/jira/browse/ISIS-1807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1807. Resolution: Won't Fix won't fix: 4 years no progress; not enough momentum to make it a reality; can always re-iterate on that idea > Wrap Domain Entities by default > --- > > Key: ISIS-1807 > URL: https://issues.apache.org/jira/browse/ISIS-1807 > Project: Isis > Issue Type: Wish > Components: Isis Core >Affects Versions: 1.15.1 >Reporter: Óscar Bou >Priority: Major > > Maybe this should be controlled by a new nature on domain services? Whether > to wrap should be "inherited", ie if invoke a wrapped domain service then any > entities returned would also be wrapped. > ~~ > > This way, all hide/disable/validate constraints, and other > constraints/invariants forced through actions, are always ensured by default. > This will require to wrap by default: > * New Domain Entity instances / objects (ie, changes on FactoryService). > * Domain Entities returned by queries (ie, changes on RepositoryService). > Users might disable this new default behaviour through configuration, as some > projects can prioritize performance (avoiding wrapping invocations) vs Domain > constraints/invariants enforcement. > > Dan's notes: > I'd like to refine the concept of wrapping while implementing this ticket. > The idea of wrapping was originally to allow the UI to be simulated within > integration tests. The intent of this ticket is to formalize the idea of the > same set of validations being done automatically between programmatic > interactions from one service/entity to another service/entity. > So, the more general concept (common to both UI/domain interactions and > domain-to-domain programmatic interactions) is one of _trust boundaries_. If > there is no trust from the calling client to the supplying service/entity, > then that interaction should be wrapped. > However, the wrapping model as it currently stands is a little bit too > UI/domain oriented, in that it has both hidden AND disabled as well as > validate phases. From the perspective of a programmatic domain-to-domain > interaction there's no meaningful distinction between the hidden and disabled > constraints: they both mean: "that object isn't in a state to be called". In > other words its a pre constraint that is not satisfied. > The other aspect here is that I can imagine that there are actions that we > would like to allow to be made programmatically (ie through a wrapper) but > which shouldn't be part of the UI. In other words these actions form part of > the programmatic API of a module, just not part of its UI. > Putting all this together, I propose that we slightly change the meaning of > wrapping (though we'll keep the current implementation too for backwards > compatibility), namely that by default wrapped object will check the disable > and validate phases only, ie it will _not_ check the hidden phase. This > allows such actions to be indicated as hidden (probably using @ActionLayout > or .layout.xml or security) but still able to be called programmatically. The > disable phase = pre check. > We could define the following terminology: > - "default" wrapping : as described above, checks only disable and validate, > not hidden > - "strict" wrapping - for backward compatibility, also checks hidden first > We could define a configuration property: > isis.runtime.wrapping=default | strict | none > with "default" wrapping being the default if not specified. > In terms of the programming API, the WrapperFactory#wrap(...) will obviously > be less important than it was, because by default objects will be wrapped. > For backward compatibilty, I think this should continue to create strict > wrappers > The wrap(...) method is also overloaded, with wrap(ExecutionMode). We can > extend this enum: > - EXECUTE - (existing) returns a strict wrapper > - SKIP_RULES - (existing) skips applying the hidden/disable/validate rules > - NO_EXECUTE - (existing) applies hidden/disabled/validate, but does not > execute > - DEFAULT - (new) returns a "default" wrapper, applies only disable/validate > but not hidden > (new:) if the object passed in is already wrapped, then it should be replaced > with a wrapper with the specified mode. Prevoiusly this was a no-op, I think. > The unwrap(...) method is unchanged. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1807) Wrap Domain Entities by default
[ https://issues.apache.org/jira/browse/ISIS-1807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1807: - Issue Type: Wish (was: Improvement) > Wrap Domain Entities by default > --- > > Key: ISIS-1807 > URL: https://issues.apache.org/jira/browse/ISIS-1807 > Project: Isis > Issue Type: Wish > Components: Isis Core >Affects Versions: 1.15.1 >Reporter: Óscar Bou >Priority: Major > > Maybe this should be controlled by a new nature on domain services? Whether > to wrap should be "inherited", ie if invoke a wrapped domain service then any > entities returned would also be wrapped. > ~~ > > This way, all hide/disable/validate constraints, and other > constraints/invariants forced through actions, are always ensured by default. > This will require to wrap by default: > * New Domain Entity instances / objects (ie, changes on FactoryService). > * Domain Entities returned by queries (ie, changes on RepositoryService). > Users might disable this new default behaviour through configuration, as some > projects can prioritize performance (avoiding wrapping invocations) vs Domain > constraints/invariants enforcement. > > Dan's notes: > I'd like to refine the concept of wrapping while implementing this ticket. > The idea of wrapping was originally to allow the UI to be simulated within > integration tests. The intent of this ticket is to formalize the idea of the > same set of validations being done automatically between programmatic > interactions from one service/entity to another service/entity. > So, the more general concept (common to both UI/domain interactions and > domain-to-domain programmatic interactions) is one of _trust boundaries_. If > there is no trust from the calling client to the supplying service/entity, > then that interaction should be wrapped. > However, the wrapping model as it currently stands is a little bit too > UI/domain oriented, in that it has both hidden AND disabled as well as > validate phases. From the perspective of a programmatic domain-to-domain > interaction there's no meaningful distinction between the hidden and disabled > constraints: they both mean: "that object isn't in a state to be called". In > other words its a pre constraint that is not satisfied. > The other aspect here is that I can imagine that there are actions that we > would like to allow to be made programmatically (ie through a wrapper) but > which shouldn't be part of the UI. In other words these actions form part of > the programmatic API of a module, just not part of its UI. > Putting all this together, I propose that we slightly change the meaning of > wrapping (though we'll keep the current implementation too for backwards > compatibility), namely that by default wrapped object will check the disable > and validate phases only, ie it will _not_ check the hidden phase. This > allows such actions to be indicated as hidden (probably using @ActionLayout > or .layout.xml or security) but still able to be called programmatically. The > disable phase = pre check. > We could define the following terminology: > - "default" wrapping : as described above, checks only disable and validate, > not hidden > - "strict" wrapping - for backward compatibility, also checks hidden first > We could define a configuration property: > isis.runtime.wrapping=default | strict | none > with "default" wrapping being the default if not specified. > In terms of the programming API, the WrapperFactory#wrap(...) will obviously > be less important than it was, because by default objects will be wrapped. > For backward compatibilty, I think this should continue to create strict > wrappers > The wrap(...) method is also overloaded, with wrap(ExecutionMode). We can > extend this enum: > - EXECUTE - (existing) returns a strict wrapper > - SKIP_RULES - (existing) skips applying the hidden/disable/validate rules > - NO_EXECUTE - (existing) applies hidden/disabled/validate, but does not > execute > - DEFAULT - (new) returns a "default" wrapper, applies only disable/validate > but not hidden > (new:) if the object passed in is already wrapped, then it should be replaced > with a wrapper with the specified mode. Prevoiusly this was a no-op, I think. > The unwrap(...) method is unchanged. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1926) Why do we create an ActionInvocationDto for a mixin property anyway ?
[ https://issues.apache.org/jira/browse/ISIS-1926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1926. Resolution: Abandoned probably outdated; closing; can always re-iterate > Why do we create an ActionInvocationDto for a mixin property anyway ? > - > > Key: ISIS-1926 > URL: https://issues.apache.org/jira/browse/ISIS-1926 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Minor > > see ISIS-1925 -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2044) [Wish] IsisConfiguration download for offline editing (like layouts)
[ https://issues.apache.org/jira/browse/ISIS-2044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2044: - Summary: [Wish] IsisConfiguration download for offline editing (like layouts) (was: UI: IsisConfiguration download for offline editing (like layouts)) > [Wish] IsisConfiguration download for offline editing (like layouts) > > > Key: ISIS-2044 > URL: https://issues.apache.org/jira/browse/ISIS-2044 > Project: Isis > Issue Type: New Feature > Components: Isis Core >Reporter: Andi Huber >Priority: Minor > > When PROTOTYPING, allow for download of then IsisConfiguration in serialized > form (text-file), which can be edited offline and reused, same as we do with > layouts. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2044) [Wish] IsisConfiguration download for offline editing (like layouts)
[ https://issues.apache.org/jira/browse/ISIS-2044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2044: - Issue Type: Wish (was: New Feature) > [Wish] IsisConfiguration download for offline editing (like layouts) > > > Key: ISIS-2044 > URL: https://issues.apache.org/jira/browse/ISIS-2044 > Project: Isis > Issue Type: Wish > Components: Isis Core >Reporter: Andi Huber >Priority: Minor > > When PROTOTYPING, allow for download of then IsisConfiguration in serialized > form (text-file), which can be edited offline and reused, same as we do with > layouts. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2004) Concurrent Modification Exception in grid service
[ https://issues.apache.org/jira/browse/ISIS-2004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2004. Resolution: Abandoned probably outdated; closing; can always re-iterate > Concurrent Modification Exception in grid service > - > > Key: ISIS-2004 > URL: https://issues.apache.org/jira/browse/ISIS-2004 > Project: Isis > Issue Type: Bug > Components: Isis Core >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Trivial > > This occurred when invoking "latestFastnetImportLog" within Estatio (having > just restarted, in estatio-test - prototype mode) > {code} > 11:20:44,677 [RequestCycleExtra ] Handling the following exception > org.apache.wicket.WicketRuntimeException: Error attaching this container for > rendering: [RepeatingViewWithDynamicallyVisibleContent [Component id = > tabGroups]] > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1837) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Page.onBeforeRender(Page.java:801) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.Component.internalPrepareForRender(Component.java:2236) > at org.apache.wicket.Page.internalPrepareForRender(Page.java:242) > at org.apache.wicket.Component.render(Component.java:2325) > at org.apache.wicket.Page.renderPage(Page.java:1018) >
[jira] [Reopened] (ISIS-2004) Concurrent Modification Exception in grid service
[ https://issues.apache.org/jira/browse/ISIS-2004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reopened ISIS-2004: -- reopening: wrong resolution type > Concurrent Modification Exception in grid service > - > > Key: ISIS-2004 > URL: https://issues.apache.org/jira/browse/ISIS-2004 > Project: Isis > Issue Type: Bug > Components: Isis Core >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Trivial > > This occurred when invoking "latestFastnetImportLog" within Estatio (having > just restarted, in estatio-test - prototype mode) > {code} > 11:20:44,677 [RequestCycleExtra ] Handling the following exception > org.apache.wicket.WicketRuntimeException: Error attaching this container for > rendering: [RepeatingViewWithDynamicallyVisibleContent [Component id = > tabGroups]] > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1837) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Page.onBeforeRender(Page.java:801) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.Component.internalPrepareForRender(Component.java:2236) > at org.apache.wicket.Page.internalPrepareForRender(Page.java:242) > at org.apache.wicket.Component.render(Component.java:2325) > at org.apache.wicket.Page.renderPage(Page.java:1018) > at >
[jira] [Closed] (ISIS-2004) Concurrent Modification Exception in grid service
[ https://issues.apache.org/jira/browse/ISIS-2004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2004. Resolution: Fixed probably outdated; closing; can always re-iterate > Concurrent Modification Exception in grid service > - > > Key: ISIS-2004 > URL: https://issues.apache.org/jira/browse/ISIS-2004 > Project: Isis > Issue Type: Bug > Components: Isis Core >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Trivial > > This occurred when invoking "latestFastnetImportLog" within Estatio (having > just restarted, in estatio-test - prototype mode) > {code} > 11:20:44,677 [RequestCycleExtra ] Handling the following exception > org.apache.wicket.WicketRuntimeException: Error attaching this container for > rendering: [RepeatingViewWithDynamicallyVisibleContent [Component id = > tabGroups]] > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1837) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at > org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:143) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) > at org.apache.wicket.Component.onBeforeRender(Component.java:3916) > at org.apache.wicket.Page.onBeforeRender(Page.java:801) > at org.apache.wicket.Component.internalBeforeRender(Component.java:950) > at org.apache.wicket.Component.beforeRender(Component.java:1018) > at > org.apache.wicket.Component.internalPrepareForRender(Component.java:2236) > at org.apache.wicket.Page.internalPrepareForRender(Page.java:242) > at org.apache.wicket.Component.render(Component.java:2325) > at org.apache.wicket.Page.renderPage(Page.java:1018) > at
[jira] [Closed] (ISIS-2230) ERROR: Recursive call to appender Console (showing up on MacBook)
[ https://issues.apache.org/jira/browse/ISIS-2230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2230. Resolution: Fixed missing context; probably outdated; closing; can always re-iterate > ERROR: Recursive call to appender Console (showing up on MacBook) > -- > > Key: ISIS-2230 > URL: https://issues.apache.org/jira/browse/ISIS-2230 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1530) [Wish] Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout and @DomainObjectLayout
[ https://issues.apache.org/jira/browse/ISIS-1530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1530: - Summary: [Wish] Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout and @DomainObjectLayout (was: Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout and @DomainObjectLayout) > [Wish] Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for > @ActionLayout and @DomainObjectLayout > > > Key: ISIS-1530 > URL: https://issues.apache.org/jira/browse/ISIS-1530 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 1.13.1 >Reporter: Daniel Keir Haywood >Priority: Minor > > Introduce @CollectionLayout(title=SHOW|HIDE, ...) for parented collections, > and @ActionLayout(titleInCollection=SHOW|HIDE, ...) for actions returning > collections (ignored otherwise). Could also have > @DomainObjectLayout(titleInCollection=SHOW|HIDE, ...) as a fallback -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1530) Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout and @DomainObjectLayout
[ https://issues.apache.org/jira/browse/ISIS-1530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1530: - Issue Type: Wish (was: New Feature) > Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout > and @DomainObjectLayout > - > > Key: ISIS-1530 > URL: https://issues.apache.org/jira/browse/ISIS-1530 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 1.13.1 >Reporter: Daniel Keir Haywood >Priority: Minor > > Introduce @CollectionLayout(title=SHOW|HIDE, ...) for parented collections, > and @ActionLayout(titleInCollection=SHOW|HIDE, ...) for actions returning > collections (ignored otherwise). Could also have > @DomainObjectLayout(titleInCollection=SHOW|HIDE, ...) as a fallback -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1530) Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout and @DomainObjectLayout
[ https://issues.apache.org/jira/browse/ISIS-1530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1530: - Component/s: (was: Isis Core) (was: Isis Viewer Wicket) > Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout > and @DomainObjectLayout > - > > Key: ISIS-1530 > URL: https://issues.apache.org/jira/browse/ISIS-1530 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.13.1 >Reporter: Daniel Keir Haywood >Priority: Minor > > Introduce @CollectionLayout(title=SHOW|HIDE, ...) for parented collections, > and @ActionLayout(titleInCollection=SHOW|HIDE, ...) for actions returning > collections (ignored otherwise). Could also have > @DomainObjectLayout(titleInCollection=SHOW|HIDE, ...) as a fallback -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2060) [Duplicate] Allow safe actions to be invoked if only have read-only access.
[ https://issues.apache.org/jira/browse/ISIS-2060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2060. Resolution: Duplicate > [Duplicate] Allow safe actions to be invoked if only have read-only access. > --- > > Key: ISIS-2060 > URL: https://issues.apache.org/jira/browse/ISIS-2060 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Minor > > Use a config property to enable this feature. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2060) [Duplicate] Allow safe actions to be invoked if only have read-only access.
[ https://issues.apache.org/jira/browse/ISIS-2060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2060: - Summary: [Duplicate] Allow safe actions to be invoked if only have read-only access. (was: Allow safe actions to be invoked if only have read-only access.) > [Duplicate] Allow safe actions to be invoked if only have read-only access. > --- > > Key: ISIS-2060 > URL: https://issues.apache.org/jira/browse/ISIS-2060 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Minor > > Use a config property to enable this feature. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Comment Edited] (ISIS-2187) [Performance] Explore jandex or classindex as ways to speed up metadata bootstrapping
[ https://issues.apache.org/jira/browse/ISIS-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530134#comment-17530134 ] Andi Huber edited comment on ISIS-2187 at 4/29/22 5:07 PM: --- I have introduced a tiny straight forward reflection caching mechanism with _ClassCache that lives in the commons module. Would be great to see some benchmarks with a large object domain. No need to resort to a third party library I believe. Maybe in the future we can delegate this stuff entirely to Spring. was (Author: hobrom): I have introduced a tiny straight forward reflection caching with _ClassCache that lives in the commons module. Would be great to see some benchmarks with a large object domain. No need to resort to a third library I believe. Maybe in the future we can delegate this stuff entirely to Spring. > [Performance] Explore jandex or classindex as ways to speed up metadata > bootstrapping > - > > Key: ISIS-2187 > URL: https://issues.apache.org/jira/browse/ISIS-2187 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Reporter: Daniel Keir Haywood >Priority: Major > Labels: perfomance > > see: > [https://github.com/wildfly/jandex] > [https://github.com/atteo/classindex] > > jandex is a key technology used by Quarkus. > - [https://quarkus.io/guides/cdi-reference#how-to-generate-a-jandex-index] > - [https://quarkus.io/guides/writing-extensions] > > but ... spring boot decided not to use jandex) :: > [https://github.com/spring-projects/spring-boot/issues/6260] > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ISIS-2187) [Performance] Explore jandex or classindex as ways to speed up metadata bootstrapping
[ https://issues.apache.org/jira/browse/ISIS-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530134#comment-17530134 ] Andi Huber commented on ISIS-2187: -- I have introduced a tiny straight forward reflection caching with _ClassCache that lives in the commons module. Would be great to see some benchmarks with a large object domain. No need to resort to a third library I believe. Maybe in the future we can delegate this stuff entirely to Spring. > [Performance] Explore jandex or classindex as ways to speed up metadata > bootstrapping > - > > Key: ISIS-2187 > URL: https://issues.apache.org/jira/browse/ISIS-2187 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Reporter: Daniel Keir Haywood >Priority: Major > Labels: perfomance > > see: > [https://github.com/wildfly/jandex] > [https://github.com/atteo/classindex] > > jandex is a key technology used by Quarkus. > - [https://quarkus.io/guides/cdi-reference#how-to-generate-a-jandex-index] > - [https://quarkus.io/guides/writing-extensions] > > but ... spring boot decided not to use jandex) :: > [https://github.com/spring-projects/spring-boot/issues/6260] > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2187) [Performance] Explore jandex or classindex as ways to speed up metadata bootstrapping
[ https://issues.apache.org/jira/browse/ISIS-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2187: - Summary: [Performance] Explore jandex or classindex as ways to speed up metadata bootstrapping (was: Explore jandex or classindex as ways to speed up metadata bootstrapping) > [Performance] Explore jandex or classindex as ways to speed up metadata > bootstrapping > - > > Key: ISIS-2187 > URL: https://issues.apache.org/jira/browse/ISIS-2187 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Reporter: Daniel Keir Haywood >Priority: Major > Labels: perfomance > > see: > [https://github.com/wildfly/jandex] > [https://github.com/atteo/classindex] > > jandex is a key technology used by Quarkus. > - [https://quarkus.io/guides/cdi-reference#how-to-generate-a-jandex-index] > - [https://quarkus.io/guides/writing-extensions] > > but ... spring boot decided not to use jandex) :: > [https://github.com/spring-projects/spring-boot/issues/6260] > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2187) Explore jandex or classindex as ways to speed up metadata bootstrapping
[ https://issues.apache.org/jira/browse/ISIS-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2187: - Labels: perfomance (was: ) > Explore jandex or classindex as ways to speed up metadata bootstrapping > --- > > Key: ISIS-2187 > URL: https://issues.apache.org/jira/browse/ISIS-2187 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Reporter: Daniel Keir Haywood >Priority: Major > Labels: perfomance > > see: > [https://github.com/wildfly/jandex] > [https://github.com/atteo/classindex] > > jandex is a key technology used by Quarkus. > - [https://quarkus.io/guides/cdi-reference#how-to-generate-a-jandex-index] > - [https://quarkus.io/guides/writing-extensions] > > but ... spring boot decided not to use jandex) :: > [https://github.com/spring-projects/spring-boot/issues/6260] > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2381) [Validation] Metamodel exception if @PropertyLayout(navigable=...) with a value type
[ https://issues.apache.org/jira/browse/ISIS-2381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2381: - Fix Version/s: 2.0.0-RC1 > [Validation] Metamodel exception if @PropertyLayout(navigable=...) with a > value type > > > Key: ISIS-2381 > URL: https://issues.apache.org/jira/browse/ISIS-2381 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Trivial > Fix For: 2.0.0-RC1 > > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (ISIS-2389) [Validation] Metamodel exception if default supporting method type doesn't match.
[ https://issues.apache.org/jira/browse/ISIS-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reassigned ISIS-2389: Assignee: Andi Huber > [Validation] Metamodel exception if default supporting method type doesn't > match. > - > > Key: ISIS-2389 > URL: https://issues.apache.org/jira/browse/ISIS-2389 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Minor > Fix For: 2.0.0-RC1 > > > eg in the demo app, I had this error: > > @Action(semantics = SemanticsOf.SAFE) > @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL) > public WrapperBooleanVm openViewModel(Boolean initialValue) { > return new WrapperBooleanVm(initialValue); > } > public char default0OpenViewModel() { > return 'a'; > } -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2381) [Validation] Metamodel exception if @PropertyLayout(navigable=...) with a value type
[ https://issues.apache.org/jira/browse/ISIS-2381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2381: - Summary: [Validation] Metamodel exception if @PropertyLayout(navigable=...) with a value type (was: Metamodel exception if @PropertyLayout(navigable=...) with a value type) > [Validation] Metamodel exception if @PropertyLayout(navigable=...) with a > value type > > > Key: ISIS-2381 > URL: https://issues.apache.org/jira/browse/ISIS-2381 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Trivial > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (ISIS-2381) [Validation] Metamodel exception if @PropertyLayout(navigable=...) with a value type
[ https://issues.apache.org/jira/browse/ISIS-2381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reassigned ISIS-2381: Assignee: Andi Huber > [Validation] Metamodel exception if @PropertyLayout(navigable=...) with a > value type > > > Key: ISIS-2381 > URL: https://issues.apache.org/jira/browse/ISIS-2381 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Trivial > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2389) [Validation] Metamodel exception if default supporting method type doesn't match.
[ https://issues.apache.org/jira/browse/ISIS-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2389: - Fix Version/s: 2.0.0-RC1 > [Validation] Metamodel exception if default supporting method type doesn't > match. > - > > Key: ISIS-2389 > URL: https://issues.apache.org/jira/browse/ISIS-2389 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > Fix For: 2.0.0-RC1 > > > eg in the demo app, I had this error: > > @Action(semantics = SemanticsOf.SAFE) > @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL) > public WrapperBooleanVm openViewModel(Boolean initialValue) { > return new WrapperBooleanVm(initialValue); > } > public char default0OpenViewModel() { > return 'a'; > } -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2389) Metamodel exception if default supporting method type doesn't match.
[ https://issues.apache.org/jira/browse/ISIS-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2389: - Issue Type: Improvement (was: Bug) > Metamodel exception if default supporting method type doesn't match. > > > Key: ISIS-2389 > URL: https://issues.apache.org/jira/browse/ISIS-2389 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > > eg in the demo app, I had this error: > > @Action(semantics = SemanticsOf.SAFE) > @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL) > public WrapperBooleanVm openViewModel(Boolean initialValue) { > return new WrapperBooleanVm(initialValue); > } > public char default0OpenViewModel() { > return 'a'; > } -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2389) [Validation] Metamodel exception if default supporting method type doesn't match.
[ https://issues.apache.org/jira/browse/ISIS-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2389: - Summary: [Validation] Metamodel exception if default supporting method type doesn't match. (was: Metamodel exception if default supporting method type doesn't match.) > [Validation] Metamodel exception if default supporting method type doesn't > match. > - > > Key: ISIS-2389 > URL: https://issues.apache.org/jira/browse/ISIS-2389 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > > eg in the demo app, I had this error: > > @Action(semantics = SemanticsOf.SAFE) > @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL) > public WrapperBooleanVm openViewModel(Boolean initialValue) { > return new WrapperBooleanVm(initialValue); > } > public char default0OpenViewModel() { > return 'a'; > } -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2408) Support for RenderedAdjusted facet for datetimes should be pluggable.
[ https://issues.apache.org/jira/browse/ISIS-2408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2408. Resolution: Fixed superseded by new value semantics: @ValueSemantics(dateRenderAdjustDays=...) > Support for RenderedAdjusted facet for datetimes should be pluggable. > - > > Key: ISIS-2408 > URL: https://issues.apache.org/jira/browse/ISIS-2408 > Project: Isis > Issue Type: Improvement > Components: Isis Core, Isis Viewer Wicket >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > > Currently the list of types is hard-coded in IsisConverterLocator > It is also inconsistent with the subclasses of > ScalarPanelTextFieldDatePickerAbstract and calls to #getAdjustBy(). > > {code:java} > if (java.util.Date.class == correspondingClass) { > return _Casts.uncheckedCast(new > DateConverterForJavaUtilDate(wicketViewerSettings, adjustBy)); > } > if (java.sql.Date.class == correspondingClass) { > ... > } > if (org.joda.time.LocalDate.class == correspondingClass) { > ... > } > if (org.joda.time.LocalDateTime.class == correspondingClass) { > ... > } > if (org.joda.time.DateTime.class == correspondingClass) { > ... > } > if (java.sql.Timestamp.class == correspondingClass) { > ... > } {code} > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1098) Arbitrary metadata for @XxxLayout annotations.
[ https://issues.apache.org/jira/browse/ISIS-1098?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1098. Resolution: Abandoned probably outdated; closing; can always re-iterate > Arbitrary metadata for @XxxLayout annotations. > -- > > Key: ISIS-1098 > URL: https://issues.apache.org/jira/browse/ISIS-1098 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model), Isis Core, Isis Viewer > Wicket >Affects Versions: core-1.8.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > ie make ability to support requirements such as ISIS-1095 into formal API > > arguably it should be @PropertyLayout and @ParameterLayout annotations that > we extend, rather than @Property and @Parameter > ... depends on how "intrinsic" to the domain this hint is. > Opinions? -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1513) [Wish] If query-only action, then grant ability to execute even if only have viewing access.
[ https://issues.apache.org/jira/browse/ISIS-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1513: - Summary: [Wish] If query-only action, then grant ability to execute even if only have viewing access. (was: If query-only action, then grant ability to execute even if only have viewing access.) > [Wish] If query-only action, then grant ability to execute even if only have > viewing access. > > > Key: ISIS-1513 > URL: https://issues.apache.org/jira/browse/ISIS-1513 > Project: Isis > Issue Type: Wish > Components: Isis Core >Affects Versions: 1.13.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1513) If query-only action, then grant ability to execute even if only have viewing access.
[ https://issues.apache.org/jira/browse/ISIS-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1513: - Issue Type: Wish (was: Improvement) > If query-only action, then grant ability to execute even if only have viewing > access. > - > > Key: ISIS-1513 > URL: https://issues.apache.org/jira/browse/ISIS-1513 > Project: Isis > Issue Type: Wish > Components: Isis Core >Affects Versions: 1.13.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-965) [Duplicate] Provide a keyboard shortcut facet so that actions can be invoked using short cuts.
[ https://issues.apache.org/jira/browse/ISIS-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-965: Summary: [Duplicate] Provide a keyboard shortcut facet so that actions can be invoked using short cuts. (was: [Wish] Provide a keyboard shortcut facet so that actions can be invoked using short cuts.) > [Duplicate] Provide a keyboard shortcut facet so that actions can be invoked > using short cuts. > -- > > Key: ISIS-965 > URL: https://issues.apache.org/jira/browse/ISIS-965 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model), Isis Viewer Wicket >Affects Versions: viewer-wicket-1.7.0, core-1.7.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-965) [Duplicate] Provide a keyboard shortcut facet so that actions can be invoked using short cuts.
[ https://issues.apache.org/jira/browse/ISIS-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-965. --- Resolution: Duplicate > [Duplicate] Provide a keyboard shortcut facet so that actions can be invoked > using short cuts. > -- > > Key: ISIS-965 > URL: https://issues.apache.org/jira/browse/ISIS-965 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model), Isis Viewer Wicket >Affects Versions: viewer-wicket-1.7.0, core-1.7.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-891) [Duplicate] Dynamic and optional description for actions, as way to provide additional guidance in the action prompt.
[ https://issues.apache.org/jira/browse/ISIS-891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-891. --- Resolution: Duplicate > [Duplicate] Dynamic and optional description for actions, as way to provide > additional guidance in the action prompt. > - > > Key: ISIS-891 > URL: https://issues.apache.org/jira/browse/ISIS-891 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model), Isis Core, Isis Viewer > Wicket >Affects Versions: viewer-wicket-1.6.0, core-1.6.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-891) [Duplicate] Dynamic and optional description for actions, as way to provide additional guidance in the action prompt.
[ https://issues.apache.org/jira/browse/ISIS-891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-891: Summary: [Duplicate] Dynamic and optional description for actions, as way to provide additional guidance in the action prompt. (was: Dynamic and optional description for actions, as way to provide additional guidance in the action prompt.) > [Duplicate] Dynamic and optional description for actions, as way to provide > additional guidance in the action prompt. > - > > Key: ISIS-891 > URL: https://issues.apache.org/jira/browse/ISIS-891 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model), Isis Core, Isis Viewer > Wicket >Affects Versions: viewer-wicket-1.6.0, core-1.6.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-922) Reinstate "ensure safe semantics" (per ISIS-865, ISIS-921)
[ https://issues.apache.org/jira/browse/ISIS-922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-922. --- Resolution: Abandoned I believe we are are way beyond that. > Reinstate "ensure safe semantics" (per ISIS-865, ISIS-921) > -- > > Key: ISIS-922 > URL: https://issues.apache.org/jira/browse/ISIS-922 > Project: Isis > Issue Type: New Feature > Components: Isis Core >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-965) Provide a keyboard shortcut facet so that actions can be invoked using short cuts.
[ https://issues.apache.org/jira/browse/ISIS-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-965: Component/s: Isis Viewer Wicket (was: Isis Core) (was: Isis Viewer RO) > Provide a keyboard shortcut facet so that actions can be invoked using short > cuts. > -- > > Key: ISIS-965 > URL: https://issues.apache.org/jira/browse/ISIS-965 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model), Isis Viewer Wicket >Affects Versions: viewer-wicket-1.7.0, core-1.7.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-965) [Wish] Provide a keyboard shortcut facet so that actions can be invoked using short cuts.
[ https://issues.apache.org/jira/browse/ISIS-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-965: Issue Type: Wish (was: New Feature) > [Wish] Provide a keyboard shortcut facet so that actions can be invoked using > short cuts. > - > > Key: ISIS-965 > URL: https://issues.apache.org/jira/browse/ISIS-965 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model), Isis Viewer Wicket >Affects Versions: viewer-wicket-1.7.0, core-1.7.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-965) [Wish] Provide a keyboard shortcut facet so that actions can be invoked using short cuts.
[ https://issues.apache.org/jira/browse/ISIS-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-965: Summary: [Wish] Provide a keyboard shortcut facet so that actions can be invoked using short cuts. (was: Provide a keyboard shortcut facet so that actions can be invoked using short cuts.) > [Wish] Provide a keyboard shortcut facet so that actions can be invoked using > short cuts. > - > > Key: ISIS-965 > URL: https://issues.apache.org/jira/browse/ISIS-965 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model), Isis Viewer Wicket >Affects Versions: viewer-wicket-1.7.0, core-1.7.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2676) [Wish] Better approach to ordering columns in tables (properties + actions)
[ https://issues.apache.org/jira/browse/ISIS-2676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2676: - Component/s: Isis Applib (programming model) (was: Isis Core) (was: Isis Viewer Wicket) > [Wish] Better approach to ordering columns in tables (properties + actions) > --- > > Key: ISIS-2676 > URL: https://issues.apache.org/jira/browse/ISIS-2676 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M5 >Reporter: Daniel Keir Haywood >Priority: Major > > re: > [https://the-asf.slack.com/archives/CFC42LWBV/p1620925090232000?thread_ts=1620883840.222800=CFC42LWBV] > what we have already, of course, is TableColumnOrderService, which is a > terrible but rather handy kludge it works surprisingly well. > In olden days, before we had layout.xml, the (recently deceased) > {{@MemberOrder}} sufficed both for the order of fields on an object form, and > for the order of columns in a table. But we are well beyond that now. So I > think that the table column order should be specified through a completely > different mechanism. > Suggestions: > 1. One is to extend {{@PropertyLayout}} with a new element just for column > order, eg {{@PropertyLayout(columnOrder="1.0"). }}We would use dewey decimal > to allow subtypes to "slot" any columns in as nec. > 2. Another annotation-based idea is something like: > @DomainObjectLayout(columnOrderBy=CustomerColumnComparator.class) > public interface Customer { > } > 3. A different idea is to specify this in a separate file, eg > "ApplicationUser.columnOrder.txt". That could then be changed at runtime, > same as layout files, and could support commenting out as well in order to > hide columns. > A separate ongoing spike is to allow actions also being in the table. So > whatever option, it would be nice to anticipate this. > ~~~ > Riffing on (3), each row could represent either a property or an actionId. > We would provide a service to download it (same as Object_downloadLayout > currently). > eg: > {code:java} > # properties (this row starts with a '#' so is a comment and is ignored) > firstName > lastName > emailAddress > # actions. These would be shown in a separate column as a drop-down. > resetPassword# allow comments here also. > updateEmail > updateFamilyName > updateGivenName > updateKnownAs > {code} > > > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2676) [Wish] Better approach to ordering columns in tables (properties + actions)
[ https://issues.apache.org/jira/browse/ISIS-2676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2676: - Summary: [Wish] Better approach to ordering columns in tables (properties + actions) (was: Better approach to ordering columns in tables (properties + actions)) > [Wish] Better approach to ordering columns in tables (properties + actions) > --- > > Key: ISIS-2676 > URL: https://issues.apache.org/jira/browse/ISIS-2676 > Project: Isis > Issue Type: Wish > Components: Isis Core, Isis Viewer Wicket >Affects Versions: 2.0.0-M5 >Reporter: Daniel Keir Haywood >Priority: Major > > re: > [https://the-asf.slack.com/archives/CFC42LWBV/p1620925090232000?thread_ts=1620883840.222800=CFC42LWBV] > what we have already, of course, is TableColumnOrderService, which is a > terrible but rather handy kludge it works surprisingly well. > In olden days, before we had layout.xml, the (recently deceased) > {{@MemberOrder}} sufficed both for the order of fields on an object form, and > for the order of columns in a table. But we are well beyond that now. So I > think that the table column order should be specified through a completely > different mechanism. > Suggestions: > 1. One is to extend {{@PropertyLayout}} with a new element just for column > order, eg {{@PropertyLayout(columnOrder="1.0"). }}We would use dewey decimal > to allow subtypes to "slot" any columns in as nec. > 2. Another annotation-based idea is something like: > @DomainObjectLayout(columnOrderBy=CustomerColumnComparator.class) > public interface Customer { > } > 3. A different idea is to specify this in a separate file, eg > "ApplicationUser.columnOrder.txt". That could then be changed at runtime, > same as layout files, and could support commenting out as well in order to > hide columns. > A separate ongoing spike is to allow actions also being in the table. So > whatever option, it would be nice to anticipate this. > ~~~ > Riffing on (3), each row could represent either a property or an actionId. > We would provide a service to download it (same as Object_downloadLayout > currently). > eg: > {code:java} > # properties (this row starts with a '#' so is a comment and is ignored) > firstName > lastName > emailAddress > # actions. These would be shown in a separate column as a drop-down. > resetPassword# allow comments here also. > updateEmail > updateFamilyName > updateGivenName > updateKnownAs > {code} > > > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1484) [Wish] Extend @Parameter, specify a class to obtain the default, choices, autoComplete.
[ https://issues.apache.org/jira/browse/ISIS-1484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1484: - Summary: [Wish] Extend @Parameter, specify a class to obtain the default, choices, autoComplete. (was: Extend @Parameter, specify a class to obtain the default, choices, autoComplete. ) > [Wish] Extend @Parameter, specify a class to obtain the default, choices, > autoComplete. > > > Key: ISIS-1484 > URL: https://issues.apache.org/jira/browse/ISIS-1484 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 1.13.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > {code} > public void updateName( > @Parameter(defaultOf="Foo") // if can specify an Object??? > @ParameterLayout(named = "New name") > final String name) { > setName(newName); > } > {code} > or a more elaborate (over-complicated?) design: > eg: > {code} > public void updateName( > @Parameter(defaultFrom=ParameterDefaultFromProperty.class > @ParameterLayout(named = "New name") > final String name) { > setName(newName); > } > {code} > where (part of the applib): > {code} > public interface ParameterDefaulter { > Object defaultFor(Object domainObject, String actionName, String > parameterName); > } > {code} > and the applib also provides a default implementation: > {code} > public class ParameterDefaultFromProperty implements ParametedDefaulter { ... > } > {code} > that uses an injected service (from core.runtime) to look up the parameter > value from the corresponding property of the object. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2676) Better approach to ordering columns in tables (properties + actions)
[ https://issues.apache.org/jira/browse/ISIS-2676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2676: - Issue Type: Wish (was: New Feature) > Better approach to ordering columns in tables (properties + actions) > > > Key: ISIS-2676 > URL: https://issues.apache.org/jira/browse/ISIS-2676 > Project: Isis > Issue Type: Wish > Components: Isis Core, Isis Viewer Wicket >Affects Versions: 2.0.0-M5 >Reporter: Daniel Keir Haywood >Priority: Major > > re: > [https://the-asf.slack.com/archives/CFC42LWBV/p1620925090232000?thread_ts=1620883840.222800=CFC42LWBV] > what we have already, of course, is TableColumnOrderService, which is a > terrible but rather handy kludge it works surprisingly well. > In olden days, before we had layout.xml, the (recently deceased) > {{@MemberOrder}} sufficed both for the order of fields on an object form, and > for the order of columns in a table. But we are well beyond that now. So I > think that the table column order should be specified through a completely > different mechanism. > Suggestions: > 1. One is to extend {{@PropertyLayout}} with a new element just for column > order, eg {{@PropertyLayout(columnOrder="1.0"). }}We would use dewey decimal > to allow subtypes to "slot" any columns in as nec. > 2. Another annotation-based idea is something like: > @DomainObjectLayout(columnOrderBy=CustomerColumnComparator.class) > public interface Customer { > } > 3. A different idea is to specify this in a separate file, eg > "ApplicationUser.columnOrder.txt". That could then be changed at runtime, > same as layout files, and could support commenting out as well in order to > hide columns. > A separate ongoing spike is to allow actions also being in the table. So > whatever option, it would be nice to anticipate this. > ~~~ > Riffing on (3), each row could represent either a property or an actionId. > We would provide a service to download it (same as Object_downloadLayout > currently). > eg: > {code:java} > # properties (this row starts with a '#' so is a comment and is ignored) > firstName > lastName > emailAddress > # actions. These would be shown in a separate column as a drop-down. > resetPassword# allow comments here also. > updateEmail > updateFamilyName > updateGivenName > updateKnownAs > {code} > > > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1484) Extend @Parameter, specify a class to obtain the default, choices, autoComplete.
[ https://issues.apache.org/jira/browse/ISIS-1484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1484: - Issue Type: Wish (was: New Feature) > Extend @Parameter, specify a class to obtain the default, choices, > autoComplete. > - > > Key: ISIS-1484 > URL: https://issues.apache.org/jira/browse/ISIS-1484 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 1.13.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > {code} > public void updateName( > @Parameter(defaultOf="Foo") // if can specify an Object??? > @ParameterLayout(named = "New name") > final String name) { > setName(newName); > } > {code} > or a more elaborate (over-complicated?) design: > eg: > {code} > public void updateName( > @Parameter(defaultFrom=ParameterDefaultFromProperty.class > @ParameterLayout(named = "New name") > final String name) { > setName(newName); > } > {code} > where (part of the applib): > {code} > public interface ParameterDefaulter { > Object defaultFor(Object domainObject, String actionName, String > parameterName); > } > {code} > and the applib also provides a default implementation: > {code} > public class ParameterDefaultFromProperty implements ParametedDefaulter { ... > } > {code} > that uses an injected service (from core.runtime) to look up the parameter > value from the corresponding property of the object. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1484) Extend @Parameter, specify a class to obtain the default, choices, autoComplete.
[ https://issues.apache.org/jira/browse/ISIS-1484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1484: - Component/s: (was: Isis Core) > Extend @Parameter, specify a class to obtain the default, choices, > autoComplete. > - > > Key: ISIS-1484 > URL: https://issues.apache.org/jira/browse/ISIS-1484 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.13.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > {code} > public void updateName( > @Parameter(defaultOf="Foo") // if can specify an Object??? > @ParameterLayout(named = "New name") > final String name) { > setName(newName); > } > {code} > or a more elaborate (over-complicated?) design: > eg: > {code} > public void updateName( > @Parameter(defaultFrom=ParameterDefaultFromProperty.class > @ParameterLayout(named = "New name") > final String name) { > setName(newName); > } > {code} > where (part of the applib): > {code} > public interface ParameterDefaulter { > Object defaultFor(Object domainObject, String actionName, String > parameterName); > } > {code} > and the applib also provides a default implementation: > {code} > public class ParameterDefaultFromProperty implements ParametedDefaulter { ... > } > {code} > that uses an injected service (from core.runtime) to look up the parameter > value from the corresponding property of the object. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2417) [Wish] Support @javax.inject.Named annotation for Domain Objects
[ https://issues.apache.org/jira/browse/ISIS-2417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2417. Resolution: Won't Fix won't fix: maybe lets not add to the confusion, we have @DomainObject(logicalTypeName=...) can re-iterate on that in the future if maybe one day Spring manages our domain objects > [Wish] Support @javax.inject.Named annotation for Domain Objects > > > Key: ISIS-2417 > URL: https://issues.apache.org/jira/browse/ISIS-2417 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > > These must be unique, and Spring will use the simple class name as a > fallback, so has very similar semantics to our own objectType. > Probably need a validator to ensure that @Named and objectType=... are not > both specified (or, if they are, that the value is one and the same). -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2417) [Wish] Support @javax.inject.Named annotation for Domain Objects
[ https://issues.apache.org/jira/browse/ISIS-2417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2417: - Component/s: Isis Applib (programming model) (was: Isis Core) > [Wish] Support @javax.inject.Named annotation for Domain Objects > > > Key: ISIS-2417 > URL: https://issues.apache.org/jira/browse/ISIS-2417 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > > These must be unique, and Spring will use the simple class name as a > fallback, so has very similar semantics to our own objectType. > Probably need a validator to ensure that @Named and objectType=... are not > both specified (or, if they are, that the value is one and the same). -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2417) [Wish] Support @javax.inject.Named annotation for Domain Objects
[ https://issues.apache.org/jira/browse/ISIS-2417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2417: - Summary: [Wish] Support @javax.inject.Named annotation for Domain Objects (was: Derive objectType (ObjectSpecIdFacet) from @javax.inject.Named annotation) > [Wish] Support @javax.inject.Named annotation for Domain Objects > > > Key: ISIS-2417 > URL: https://issues.apache.org/jira/browse/ISIS-2417 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > > These must be unique, and Spring will use the simple class name as a > fallback, so has very similar semantics to our own objectType. > Probably need a validator to ensure that @Named and objectType=... are not > both specified (or, if they are, that the value is one and the same). -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2417) [Wish] Support @javax.inject.Named annotation for Domain Objects
[ https://issues.apache.org/jira/browse/ISIS-2417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2417: - Issue Type: Wish (was: Improvement) > [Wish] Support @javax.inject.Named annotation for Domain Objects > > > Key: ISIS-2417 > URL: https://issues.apache.org/jira/browse/ISIS-2417 > Project: Isis > Issue Type: Wish > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > > These must be unique, and Spring will use the simple class name as a > fallback, so has very similar semantics to our own objectType. > Probably need a validator to ensure that @Named and objectType=... are not > both specified (or, if they are, that the value is one and the same). -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2414) Infer maxLength semantic for primitives, eg short should be 6 characters max.
[ https://issues.apache.org/jira/browse/ISIS-2414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2414. Resolution: Fixed superseded by the new value semantics > Infer maxLength semantic for primitives, eg short should be 6 characters max. > - > > Key: ISIS-2414 > URL: https://issues.apache.org/jira/browse/ISIS-2414 > Project: Isis > Issue Type: Improvement > Components: Isis Core, Isis Viewer Wicket >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2415) "mustSatisfy" cannot be used in a meta-annotation
[ https://issues.apache.org/jira/browse/ISIS-2415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2415: - Fix Version/s: 2.0.0-RC1 > "mustSatisfy" cannot be used in a meta-annotation > - > > Key: ISIS-2415 > URL: https://issues.apache.org/jira/browse/ISIS-2415 > Project: Isis > Issue Type: Bug > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Priority: Minor > Fix For: 2.0.0-RC1 > > > @Property(mustSatisfy=..) and @Parameter(mustSatisfy=...) > To reproduce, unhide properties and mixins in demo app for > @Property(mustSatisfy=) -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (ISIS-2415) "mustSatisfy" cannot be used in a meta-annotation
[ https://issues.apache.org/jira/browse/ISIS-2415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reassigned ISIS-2415: Assignee: Andi Huber > "mustSatisfy" cannot be used in a meta-annotation > - > > Key: ISIS-2415 > URL: https://issues.apache.org/jira/browse/ISIS-2415 > Project: Isis > Issue Type: Bug > Components: Isis Core >Affects Versions: 2.0.0-M3 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Minor > Fix For: 2.0.0-RC1 > > > @Property(mustSatisfy=..) and @Parameter(mustSatisfy=...) > To reproduce, unhide properties and mixins in demo app for > @Property(mustSatisfy=) -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2744) Add new "optionalX" supporting method for parameters so that its optionality can be toggled
[ https://issues.apache.org/jira/browse/ISIS-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2744: - Issue Type: Wish (was: New Feature) > Add new "optionalX" supporting method for parameters so that its optionality > can be toggled > --- > > Key: ISIS-2744 > URL: https://issues.apache.org/jira/browse/ISIS-2744 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M5 >Reporter: Daniel Keir Haywood >Priority: Minor > > We can of course validate using validateNXxx(), but the idea here is to > toggle off or on the optionality constraint for N>0 parameters based on > earlier parameters, > eg: > {code:java} > public void act(SomeType type, String someParam) { > } > public boolean optional1Act(SomeType type) { > if (type == SomeType.FOO || type == SomeType.BAR) return true; > return false; > } {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2744) Add new "optionalX" supporting method for parameters so that its optionality can be toggled
[ https://issues.apache.org/jira/browse/ISIS-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2744: - Component/s: Isis Applib (programming model) (was: Isis Core) > Add new "optionalX" supporting method for parameters so that its optionality > can be toggled > --- > > Key: ISIS-2744 > URL: https://issues.apache.org/jira/browse/ISIS-2744 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M5 >Reporter: Daniel Keir Haywood >Priority: Minor > > We can of course validate using validateNXxx(), but the idea here is to > toggle off or on the optionality constraint for N>0 parameters based on > earlier parameters, > eg: > {code:java} > public void act(SomeType type, String someParam) { > } > public boolean optional1Act(SomeType type) { > if (type == SomeType.FOO || type == SomeType.BAR) return true; > return false; > } {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2744) [Wish] Add new "optionalX" supporting method for parameters so that its optionality can be toggled
[ https://issues.apache.org/jira/browse/ISIS-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2744: - Summary: [Wish] Add new "optionalX" supporting method for parameters so that its optionality can be toggled (was: Add new "optionalX" supporting method for parameters so that its optionality can be toggled) > [Wish] Add new "optionalX" supporting method for parameters so that its > optionality can be toggled > -- > > Key: ISIS-2744 > URL: https://issues.apache.org/jira/browse/ISIS-2744 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M5 >Reporter: Daniel Keir Haywood >Priority: Minor > > We can of course validate using validateNXxx(), but the idea here is to > toggle off or on the optionality constraint for N>0 parameters based on > earlier parameters, > eg: > {code:java} > public void act(SomeType type, String someParam) { > } > public boolean optional1Act(SomeType type) { > if (type == SomeType.FOO || type == SomeType.BAR) return true; > return false; > } {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1238) [Validation] Metamodel exception if transient property has @Property(editing=ENABLED)
[ https://issues.apache.org/jira/browse/ISIS-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1238. Resolution: Won't Fix won't fix: 'persisted' is no longer a flag in the Property annotation; we could in theory implement that proposed check - but that does not seem a trivial task > [Validation] Metamodel exception if transient property has > @Property(editing=ENABLED) > - > > Key: ISIS-1238 > URL: https://issues.apache.org/jira/browse/ISIS-1238 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.9.0 >Reporter: Daniel Keir Haywood >Priority: Trivial > > MetaModel validation > > for example: > private String firstName="Anju"; > @Property(editing=Editing.ENABLED,maxLength=9,notPersisted=true) > public String getFirstName() > { return firstName; } > // no setter. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1238) [Validation] Metamodel exception if transient property has @Property(editing=ENABLED)
[ https://issues.apache.org/jira/browse/ISIS-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1238: - Summary: [Validation] Metamodel exception if transient property has @Property(editing=ENABLED) (was: [Validation] Metamodel exception if derived property has @Property(ENABLED)) > [Validation] Metamodel exception if transient property has > @Property(editing=ENABLED) > - > > Key: ISIS-1238 > URL: https://issues.apache.org/jira/browse/ISIS-1238 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.9.0 >Reporter: Daniel Keir Haywood >Priority: Trivial > > MetaModel validation > > for example: > private String firstName="Anju"; > @Property(editing=Editing.ENABLED,maxLength=9,notPersisted=true) > public String getFirstName() > { return firstName; } > // no setter. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1238) [Validation] Metamodel exception if derived property has @Property(ENABLED)
[ https://issues.apache.org/jira/browse/ISIS-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1238: - Summary: [Validation] Metamodel exception if derived property has @Property(ENABLED) (was: Metamodel exception if derived property has @Property(ENABLED)) > [Validation] Metamodel exception if derived property has @Property(ENABLED) > --- > > Key: ISIS-1238 > URL: https://issues.apache.org/jira/browse/ISIS-1238 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.9.0 >Reporter: Daniel Keir Haywood >Priority: Trivial > > MetaModel validation > > for example: > private String firstName="Anju"; > @Property(editing=Editing.ENABLED,maxLength=9,notPersisted=true) > public String getFirstName() > { return firstName; } > // no setter. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2120) [Wish] Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml
[ https://issues.apache.org/jira/browse/ISIS-2120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2120: - Issue Type: Wish (was: New Feature) > [Wish] Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml > > > Key: ISIS-2120 > URL: https://issues.apache.org/jira/browse/ISIS-2120 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Reopened] (ISIS-2120) Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml
[ https://issues.apache.org/jira/browse/ISIS-2120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reopened ISIS-2120: -- > Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml > - > > Key: ISIS-2120 > URL: https://issues.apache.org/jira/browse/ISIS-2120 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] (ISIS-2120) Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml
[ https://issues.apache.org/jira/browse/ISIS-2120 ] Andi Huber deleted comment on ISIS-2120: -- was (Author: hobrom): I believe this was implemented. > Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml > - > > Key: ISIS-2120 > URL: https://issues.apache.org/jira/browse/ISIS-2120 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2120) [Wish] Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml
[ https://issues.apache.org/jira/browse/ISIS-2120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2120: - Summary: [Wish] Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml (was: Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml) > [Wish] Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml > > > Key: ISIS-2120 > URL: https://issues.apache.org/jira/browse/ISIS-2120 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2120) Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml
[ https://issues.apache.org/jira/browse/ISIS-2120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2120. Resolution: Fixed I believe this was implemented. > Add @DomainServiceLayout#menuName, to "slot into" menubars.layout.xml > - > > Key: ISIS-2120 > URL: https://issues.apache.org/jira/browse/ISIS-2120 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1388) Introduce @PropertyLayout(columnOrder=...) to make order of properties (when shown in tables) more predictable.
[ https://issues.apache.org/jira/browse/ISIS-1388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1388. Resolution: Won't Fix superseded by TableColumnOrderingService (SPI) > Introduce @PropertyLayout(columnOrder=...) to make order of properties (when > shown in tables) more predictable. > - > > Key: ISIS-1388 > URL: https://issues.apache.org/jira/browse/ISIS-1388 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.12.1 >Reporter: Daniel Keir Haywood >Priority: Minor > > At the moment it can be hard to predict, because the BS3Grid is traversed by > type, eg: > {code} > private void traverseCols(final Grid.Visitor visitor, final BS3Row > bs3Row) { > final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor); > final List cols = bs3Row.getCols(); > for (BS3RowContent rowContent : Lists.newArrayList(cols)) { > rowContent.setOwner(bs3Row); > if(rowContent instanceof BS3Col) { > final BS3Col bs3Col = (BS3Col) rowContent; > bs3Visitor.preVisit(bs3Col); > bs3Visitor.visit(bs3Col); > traverseDomainObject(bs3Col, visitor); > traverseTabGroups(bs3Col, visitor); > traverseActions(bs3Col, visitor); > traverseFieldSets(bs3Col, visitor); > traverseCollections(bs3Col, visitor); > traverseRows(bs3Col, visitor); > bs3Visitor.postVisit(bs3Col); > } else if (rowContent instanceof BS3ClearFix) { > final BS3ClearFix bs3ClearFix = (BS3ClearFix) rowContent; > bs3Visitor.visit(bs3ClearFix); > } else { > throw new IllegalStateException( > "Unrecognized implementation of BS3RowContent, " + > rowContent); > } > } > } > {code} > Instead, if it were traversed by element order, then the ordering of > properties would be more predictable. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1562) Metamodel exception if @DomainObject(ENTITY) missing when @PersistenceCapable or @Entity
[ https://issues.apache.org/jira/browse/ISIS-1562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1562. Resolution: Abandoned probably outdated; closing; can always re-iterate > Metamodel exception if @DomainObject(ENTITY) missing when @PersistenceCapable > or @Entity > > > Key: ISIS-1562 > URL: https://issues.apache.org/jira/browse/ISIS-1562 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 1.13.2 >Reporter: Daniel Keir Haywood >Priority: Minor > > Metamodel validator if forget to annotate... > > Also, RepositoryService#persist(...) is a no-op if the domain object passed > in is not an entity; this should probably fail-fast. > This was originally prompted by an obscure message being thrown in > Memento#updateFieldsAndResolveState(...), as the result of an entity being > treated as transient, because (a) the @PersistenceCapable annotation was > accidentally omitted, and (b) a call to RepositoryService#persist(...) just > did nothing. > So, this ticket would be a fail-fast for that scenario. > {code:java} > private void updateFieldsAndResolveState(final ObjectAdapter > objectAdapter, final Data data) { > > boolean dataIsTransient = data.getOid().isTransient(); > > if (!dataIsTransient) { >... > } else if (objectAdapter.isTransient() && dataIsTransient) { >... > > } else if (objectAdapter.isParentedCollection()) { >... > > } else { >// THIS IS THE BRANCH THAT'S TRIGGERED IF @PersistenceCapable IS > ACCIDENTALLY OMITTED. > final ObjectData od = (ObjectData) data; > if (od.containsField()) { > throw new IsisException("Resolve state (for " + objectAdapter > + ") inconsistent with fact that data exists for fields"); > } > } > } > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1623) Enhance @MustSatisfy Specification API, pass in the current object as context
[ https://issues.apache.org/jira/browse/ISIS-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1623. Resolution: Fixed superseded by Property#mustSatisfy() and Parameter#mustSatisfy() > Enhance @MustSatisfy Specification API, pass in the current object as context > - > > Key: ISIS-1623 > URL: https://issues.apache.org/jira/browse/ISIS-1623 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.14.0 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1282) Extend @ActionLayout annotation with a routeTo attribute.
[ https://issues.apache.org/jira/browse/ISIS-1282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1282. Resolution: Fixed I believe with the introduction of value type LocalResourcePath (and URL) that can be used as action return, we cover any routing use-case. > Extend @ActionLayout annotation with a routeTo attribute. > - > > Key: ISIS-1282 > URL: https://issues.apache.org/jira/browse/ISIS-1282 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.10.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > This would extend the work started in ISIS-666 (the RoutingService), and > extended in ISIS-1286, the idea being to allow the routing strategy to be > defined at a more fine-grained level with the action, rather than globally in > a service. > Suggest a new attribute "routeTo()" attribute on @ActionLayout, eg: > @ActionLayout( >routeTo=RouteToThis.class > ) > public void foo() { ... } > where: > public class RouteToThis implements ActionRouter { > public boolean canRoute(Object original); > public Object route(Object original); > } > If present then the RoutingService would instantiate and delegate to this > router object. > Note that the attribute is on @ActionLayout rather than @Action because this > is a UI concern only. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1286) Extend the RoutingService to provide more information, eg a context
[ https://issues.apache.org/jira/browse/ISIS-1286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1286. Resolution: Fixed I believe with the introduction of value type LocalResourcePath (and URL) that can be used as action return, we cover any routing use-case. > Extend the RoutingService to provide more information, eg a context > --- > > Key: ISIS-1286 > URL: https://issues.apache.org/jira/browse/ISIS-1286 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 1.10.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > so is passed a Context object, containing: > - the object that was invoked on > - whether this object is now deleted > - breadcrumb trail of previously visited objects. > - the home page, if any -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1664) editXxx as an action should implicitly associate with xxx property
[ https://issues.apache.org/jira/browse/ISIS-1664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1664. Resolution: Won't Fix no progress since 4 years - closing I believe one could easily register a custom MM post-processor to add a LayoutGroupFacet, that reflects this associateWith relation, if not already provided otherwise. (Rather do this than extend the programming model that affects everybody, I guess,) > editXxx as an action should implicitly associate with xxx property > -- > > Key: ISIS-1664 > URL: https://issues.apache.org/jira/browse/ISIS-1664 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.14.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > ie, as if > {code} > @MemberOrder(named="xxx", sequence="1") > @PropertyLayout(promptStyle=INLINE_AS_IF_EDIT) > public String getXxx() { ... } > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2695) [Duplicate] Add Java Bean Validation support
[ https://issues.apache.org/jira/browse/ISIS-2695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2695. Resolution: Duplicate duplicate of ISIS-491 > [Duplicate] Add Java Bean Validation support > > > Key: ISIS-2695 > URL: https://issues.apache.org/jira/browse/ISIS-2695 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M5 >Reporter: Patrick Deenen >Priority: Major > > [~danhaywood] > In v2 we support meta-annotations, which can then have both Isis and also JDO > annotations against them. That will make for better modularity. > What's not clear right now is whether it's worth the boilerplate without an > actual use case to benefit from that boilerplate. The only use case in > practice in many cases is for a string property, eg name, where we want to > tell both Isis and JDO that the max length is 50, say. > Another use case could be for regex's, eg for a reference. That is the > beginning of some business logic, and could use @Property(regexPattern=...) > and [@parameter|https://issues.apache.org/parameter](regexPattern=...). > More generally, we can do @Property(mustSatisfy=...) and > [@parameter|https://issues.apache.org/parameter](mustSatisfy=...) for > arbitrary business logic. > Another consideration is if the property appears as a parameter in lots of > actions; in which case this allows having to specify @Parametr and > @ParameterLayout everywhere. > For this particular use case, suggest just inline and get rid of NameType > ("yagni" - "you ain't gonna need it", in other words). > Perhaps the tipping point is if we could see there being a value type in the > future... in which case a meta-annotation as being fairly close to that. > Whether a value type / meta-annotation is worth the overhead depends on a > couple of factors: one might be whether the concept itself is helpful to have > as part of the ubiquitous language, another more practical reason is whether > the entities that have properties of that value type are mutable (for that > value type): eg does a Fixed Asset's name ever change? If so, a value type > for 'Name' might start to make sense. > > [~ppjdeenen] > I prefer using standards first and foremost, e.g. i would recommend switching > to java bean validation which has default annotations for this. It has strong > spring boot support, see > [https://reflectoring.io/bean-validation-with-spring-boot/] Hence for String > length validation use annotation > [@size|https://issues.apache.org/size](max=50) for regex use annotation > @pattern(regexp = "^[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}$") for > business logic in the entity use @AssertTrue or @AssertFalse and of course > one can define custom (generic) annotations. > > [~danhaywood] > We could certainly do this, though would require a contribution to Apache > Isis itself to 'teach' it about the meanings of this. I think this would be a > good and discrete thing to look into. > Indeed, we do still have (very old) tickets for this: > * https://issues.apache.org/jira/browse/ISIS-491 > * https://issues.apache.org/jira/browse/ISIS-517 > fyi, as a matter of style, we did use to have lots of fine-grained > annotations similar to [@size|https://issues.apache.org/size] and @pattern. > The difficulty we found was remembering them all, which is why we switched to > using two annotations (one domain, one layout) for each member type ... ie > @Property/@PropertyLayout, > [@action|https://issues.apache.org/action]/@ActionLayout etc. > > [~ppjdeenen] > Ok, to summarize my take on this: > * Use java bean validation for validation of business logic (the java > standard for validations) in combination with Spring for additional ease of > use. > * Refactor Apache Isis to support Java Bean Validation (so both Ises and ORM > understand the same annotations) > * Add @Property(Layout) and > [@action|https://issues.apache.org/action](Layout) as custom Java Bean > validation annotations -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ISIS-491) [Wish] Integrate JSR-349 validation.
[ https://issues.apache.org/jira/browse/ISIS-491?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530048#comment-17530048 ] Andi Huber commented on ISIS-491: - from ISIS-2695 (so can close as duplicate) [~danhaywood] In v2 we support meta-annotations, which can then have both Isis and also JDO annotations against them. That will make for better modularity. What's not clear right now is whether it's worth the boilerplate without an actual use case to benefit from that boilerplate. The only use case in practice in many cases is for a string property, eg name, where we want to tell both Isis and JDO that the max length is 50, say. Another use case could be for regex's, eg for a reference. That is the beginning of some business logic, and could use @Property(regexPattern=...) and [@parameter|https://issues.apache.org/parameter](regexPattern=...). More generally, we can do @Property(mustSatisfy=...) and [@parameter|https://issues.apache.org/parameter](mustSatisfy=...) for arbitrary business logic. Another consideration is if the property appears as a parameter in lots of actions; in which case this allows having to specify @Parametr and @ParameterLayout everywhere. For this particular use case, suggest just inline and get rid of NameType ("yagni" - "you ain't gonna need it", in other words). Perhaps the tipping point is if we could see there being a value type in the future... in which case a meta-annotation as being fairly close to that. Whether a value type / meta-annotation is worth the overhead depends on a couple of factors: one might be whether the concept itself is helpful to have as part of the ubiquitous language, another more practical reason is whether the entities that have properties of that value type are mutable (for that value type): eg does a Fixed Asset's name ever change? If so, a value type for 'Name' might start to make sense. [~ppjdeenen] I prefer using standards first and foremost, e.g. i would recommend switching to java bean validation which has default annotations for this. It has strong spring boot support, see [https://reflectoring.io/bean-validation-with-spring-boot/] Hence for String length validation use annotation [@size|https://issues.apache.org/size](max=50) for regex use annotation @pattern(regexp = "^[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}$") for business logic in the entity use @AssertTrue or @AssertFalse and of course one can define custom (generic) annotations. [~danhaywood] We could certainly do this, though would require a contribution to Apache Isis itself to 'teach' it about the meanings of this. I think this would be a good and discrete thing to look into. Indeed, we do still have (very old) tickets for this: * https://issues.apache.org/jira/browse/ISIS-491 * https://issues.apache.org/jira/browse/ISIS-517 fyi, as a matter of style, we did use to have lots of fine-grained annotations similar to [@size|https://issues.apache.org/size] and @pattern. The difficulty we found was remembering them all, which is why we switched to using two annotations (one domain, one layout) for each member type ... ie @Property/@PropertyLayout, [@action|https://issues.apache.org/action]/@ActionLayout etc. [~ppjdeenen] Ok, to summarize my take on this: * Use java bean validation for validation of business logic (the java standard for validations) in combination with Spring for additional ease of use. * Refactor Apache Isis to support Java Bean Validation (so both Ises and ORM understand the same annotations) * Add @Property(Layout) and [@action|https://issues.apache.org/action](Layout) as custom Java Bean validation annotations > [Wish] Integrate JSR-349 validation. > > > Key: ISIS-491 > URL: https://issues.apache.org/jira/browse/ISIS-491 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: core-1.2.0 >Reporter: Daniel Keir Haywood >Priority: Minor > Original Estimate: 72h > Remaining Estimate: 72h > > as per > http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/ > The reference implementation (Hibernate Validator) is Apache licensed [1]. > ~~~ > Implementation: should not be too difficult; mostly a matter of writing some > FacetFactories. > It may not make sense to use every feature of JSR-349... > * constructor parameters > * constraint groups > 1. In Isis bootstrapping, get hold and cache the Validator. (This is > thread-safe, so could perhaps be global; maybe as a new top-level component > cf AuthorizationManager etc). > {code} > ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); > validator = factory.getValidator(); > {code} > and also > {code} > executableValidator = validator.forExecutables(); > {code} > Validating a
[jira] [Updated] (ISIS-2695) [Duplicate] Add Java Bean Validation support
[ https://issues.apache.org/jira/browse/ISIS-2695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2695: - Summary: [Duplicate] Add Java Bean Validation support (was: Add Java Bean Validation support) > [Duplicate] Add Java Bean Validation support > > > Key: ISIS-2695 > URL: https://issues.apache.org/jira/browse/ISIS-2695 > Project: Isis > Issue Type: Improvement > Components: Isis Core >Affects Versions: 2.0.0-M5 >Reporter: Patrick Deenen >Priority: Major > > [~danhaywood] > In v2 we support meta-annotations, which can then have both Isis and also JDO > annotations against them. That will make for better modularity. > What's not clear right now is whether it's worth the boilerplate without an > actual use case to benefit from that boilerplate. The only use case in > practice in many cases is for a string property, eg name, where we want to > tell both Isis and JDO that the max length is 50, say. > Another use case could be for regex's, eg for a reference. That is the > beginning of some business logic, and could use @Property(regexPattern=...) > and [@parameter|https://issues.apache.org/parameter](regexPattern=...). > More generally, we can do @Property(mustSatisfy=...) and > [@parameter|https://issues.apache.org/parameter](mustSatisfy=...) for > arbitrary business logic. > Another consideration is if the property appears as a parameter in lots of > actions; in which case this allows having to specify @Parametr and > @ParameterLayout everywhere. > For this particular use case, suggest just inline and get rid of NameType > ("yagni" - "you ain't gonna need it", in other words). > Perhaps the tipping point is if we could see there being a value type in the > future... in which case a meta-annotation as being fairly close to that. > Whether a value type / meta-annotation is worth the overhead depends on a > couple of factors: one might be whether the concept itself is helpful to have > as part of the ubiquitous language, another more practical reason is whether > the entities that have properties of that value type are mutable (for that > value type): eg does a Fixed Asset's name ever change? If so, a value type > for 'Name' might start to make sense. > > [~ppjdeenen] > I prefer using standards first and foremost, e.g. i would recommend switching > to java bean validation which has default annotations for this. It has strong > spring boot support, see > [https://reflectoring.io/bean-validation-with-spring-boot/] Hence for String > length validation use annotation > [@size|https://issues.apache.org/size](max=50) for regex use annotation > @pattern(regexp = "^[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}$") for > business logic in the entity use @AssertTrue or @AssertFalse and of course > one can define custom (generic) annotations. > > [~danhaywood] > We could certainly do this, though would require a contribution to Apache > Isis itself to 'teach' it about the meanings of this. I think this would be a > good and discrete thing to look into. > Indeed, we do still have (very old) tickets for this: > * https://issues.apache.org/jira/browse/ISIS-491 > * https://issues.apache.org/jira/browse/ISIS-517 > fyi, as a matter of style, we did use to have lots of fine-grained > annotations similar to [@size|https://issues.apache.org/size] and @pattern. > The difficulty we found was remembering them all, which is why we switched to > using two annotations (one domain, one layout) for each member type ... ie > @Property/@PropertyLayout, > [@action|https://issues.apache.org/action]/@ActionLayout etc. > > [~ppjdeenen] > Ok, to summarize my take on this: > * Use java bean validation for validation of business logic (the java > standard for validations) in combination with Spring for additional ease of > use. > * Refactor Apache Isis to support Java Bean Validation (so both Ises and ORM > understand the same annotations) > * Add @Property(Layout) and > [@action|https://issues.apache.org/action](Layout) as custom Java Bean > validation annotations -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-491) [Wish] Integrate JSR-349 validation.
[ https://issues.apache.org/jira/browse/ISIS-491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-491: Summary: [Wish] Integrate JSR-349 validation. (was: Integrate JSR-349 validation.) > [Wish] Integrate JSR-349 validation. > > > Key: ISIS-491 > URL: https://issues.apache.org/jira/browse/ISIS-491 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: core-1.2.0 >Reporter: Daniel Keir Haywood >Priority: Minor > Original Estimate: 72h > Remaining Estimate: 72h > > as per > http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/ > The reference implementation (Hibernate Validator) is Apache licensed [1]. > ~~~ > Implementation: should not be too difficult; mostly a matter of writing some > FacetFactories. > It may not make sense to use every feature of JSR-349... > * constructor parameters > * constraint groups > 1. In Isis bootstrapping, get hold and cache the Validator. (This is > thread-safe, so could perhaps be global; maybe as a new top-level component > cf AuthorizationManager etc). > {code} > ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); > validator = factory.getValidator(); > {code} > and also > {code} > executableValidator = validator.forExecutables(); > {code} > Validating a property change can be done using: > {code} > Set> constraintViolations = validator.validateValue( > Car.class, > "manufacturer", > null > ); > assertEquals( 1, constraintViolations.size() ); > assertEquals( "may not be null", > constraintViolations.iterator().next().getMessage() ); > {code} > (nb: using validator.validateProperty(...) would mean that the value has been > applied already). > eg this would be a facet that implements ValidatingInteractionAdvisor and > acts on a ValidityContext of type PropertyModifyContext. (eg subclass > PropertyValidateFacetAbstract) > 2. Validating a parameter of an action can be done using: > {code} > Car object = new Car( "Morris" ); > Method method = Car.class.getMethod( "drive", int.class ); > Object[] parameterValues = { 80 }; > Set> violations = > executableValidator.validateParameters( > object, > method, > parameterValues > ); > assertEquals( 1, violations.size() ); > Class constraintType = violations.iterator() > .next() > .getConstraintDescriptor() > .getAnnotation() > .annotationType(); > assertEquals( Max.class, constraintType ); > {code} > This would be in a Facet that implements ValidatingInteractionAdvisor and > acts on a ValidityContext of type ActionInvocationContext (eg subclass > ActionValidationFacetAbstract) > ~~~ > There are also some new features that could be implemented: > 3. validating the return value of an action: > {code} > Car object = new Car( "Morris" ); > Method method = Car.class.getMethod( "getPassengers" ); > Object returnValue = Collections.emptyList(); > Set> violations = > executableValidator.validateReturnValue( > object, > method, > returnValue > ); > assertEquals( 1, violations.size() ); > Class constraintType = violations.iterator() > .next() > .getConstraintDescriptor() > .getAnnotation() > .annotationType(); > assertEquals( Size.class, constraintType ); > {code} > This would need to be done after the action has been invoked; if the > constraint failed, then an exception would be thrown causing the transaction > to be aborted. This might require a new subclass of ValidityContext, eg > ActionReturnValueContext. > 4. cf ISIS-479, all dirtied objects should be validated prior to commit. > a) we re-validate all properties (using the value of the property as the > proposed value). This would be done using InteractionUtils, called from > isAssociationValid with a ValidityContext of PropertyModifyContext. > b) we validate the object, ie InteractionUtils, with all with a > ValidityContext of ObjectValidityContext. > We would then have a new facet, implementing ValidatingInteractionAdvisor and > acting on an ObjectValidityContext (eg subclass ValidateObjectFacetAbstract); > which should perform: > {code} > Set> constraintViolations = validator.validate( car > ); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-491) Integrate JSR-349 validation.
[ https://issues.apache.org/jira/browse/ISIS-491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-491: Issue Type: Wish (was: New Feature) > Integrate JSR-349 validation. > - > > Key: ISIS-491 > URL: https://issues.apache.org/jira/browse/ISIS-491 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: core-1.2.0 >Reporter: Daniel Keir Haywood >Priority: Minor > Original Estimate: 72h > Remaining Estimate: 72h > > as per > http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/ > The reference implementation (Hibernate Validator) is Apache licensed [1]. > ~~~ > Implementation: should not be too difficult; mostly a matter of writing some > FacetFactories. > It may not make sense to use every feature of JSR-349... > * constructor parameters > * constraint groups > 1. In Isis bootstrapping, get hold and cache the Validator. (This is > thread-safe, so could perhaps be global; maybe as a new top-level component > cf AuthorizationManager etc). > {code} > ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); > validator = factory.getValidator(); > {code} > and also > {code} > executableValidator = validator.forExecutables(); > {code} > Validating a property change can be done using: > {code} > Set> constraintViolations = validator.validateValue( > Car.class, > "manufacturer", > null > ); > assertEquals( 1, constraintViolations.size() ); > assertEquals( "may not be null", > constraintViolations.iterator().next().getMessage() ); > {code} > (nb: using validator.validateProperty(...) would mean that the value has been > applied already). > eg this would be a facet that implements ValidatingInteractionAdvisor and > acts on a ValidityContext of type PropertyModifyContext. (eg subclass > PropertyValidateFacetAbstract) > 2. Validating a parameter of an action can be done using: > {code} > Car object = new Car( "Morris" ); > Method method = Car.class.getMethod( "drive", int.class ); > Object[] parameterValues = { 80 }; > Set> violations = > executableValidator.validateParameters( > object, > method, > parameterValues > ); > assertEquals( 1, violations.size() ); > Class constraintType = violations.iterator() > .next() > .getConstraintDescriptor() > .getAnnotation() > .annotationType(); > assertEquals( Max.class, constraintType ); > {code} > This would be in a Facet that implements ValidatingInteractionAdvisor and > acts on a ValidityContext of type ActionInvocationContext (eg subclass > ActionValidationFacetAbstract) > ~~~ > There are also some new features that could be implemented: > 3. validating the return value of an action: > {code} > Car object = new Car( "Morris" ); > Method method = Car.class.getMethod( "getPassengers" ); > Object returnValue = Collections.emptyList(); > Set> violations = > executableValidator.validateReturnValue( > object, > method, > returnValue > ); > assertEquals( 1, violations.size() ); > Class constraintType = violations.iterator() > .next() > .getConstraintDescriptor() > .getAnnotation() > .annotationType(); > assertEquals( Size.class, constraintType ); > {code} > This would need to be done after the action has been invoked; if the > constraint failed, then an exception would be thrown causing the transaction > to be aborted. This might require a new subclass of ValidityContext, eg > ActionReturnValueContext. > 4. cf ISIS-479, all dirtied objects should be validated prior to commit. > a) we re-validate all properties (using the value of the property as the > proposed value). This would be done using InteractionUtils, called from > isAssociationValid with a ValidityContext of PropertyModifyContext. > b) we validate the object, ie InteractionUtils, with all with a > ValidityContext of ObjectValidityContext. > We would then have a new facet, implementing ValidatingInteractionAdvisor and > acting on an ObjectValidityContext (eg subclass ValidateObjectFacetAbstract); > which should perform: > {code} > Set> constraintViolations = validator.validate( car > ); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-517) ??? Support JSR-305 annotations (@Immutable, @Signed, @MatchesPattern)
[ https://issues.apache.org/jira/browse/ISIS-517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-517. --- Resolution: Won't Fix JSR-305 is dead > ??? Support JSR-305 annotations (@Immutable, @Signed, @MatchesPattern) > -- > > Key: ISIS-517 > URL: https://issues.apache.org/jira/browse/ISIS-517 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: core-1.2.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > for jsr305 annotations, eg @Immutable, @Signed, @MatchesPattern > applib.Filters.and(Filter, Filter) should be Filter > from duplicate ISIS-241: > @javax.annotation.MatchesPattern > @javax.annotation.Nonnegative > @javax.annotation.Nullable > @javax.annotation.concurrent.Immutable > @javax.annotation.meta.Exhaustive (equivalent to @Bounded) > note that jsr305 is part of Isis' dependencies because of the dependency we > take on google guava. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2074) Emit UI events to allow subscribers to contribute choices, defaults, autoComplete
[ https://issues.apache.org/jira/browse/ISIS-2074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2074: - Issue Type: Wish (was: New Feature) > Emit UI events to allow subscribers to contribute choices, defaults, > autoComplete > - > > Key: ISIS-2074 > URL: https://issues.apache.org/jira/browse/ISIS-2074 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Major > > The idea being that most facets (perhaps all UI facets) should be able to be > expressed: > a) declaratively > b) imperatively > c) via a subscriber. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2074) [Wish] Emit UI events to allow subscribers to contribute choices, defaults, autoComplete
[ https://issues.apache.org/jira/browse/ISIS-2074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2074: - Summary: [Wish] Emit UI events to allow subscribers to contribute choices, defaults, autoComplete (was: Emit UI events to allow subscribers to contribute choices, defaults, autoComplete) > [Wish] Emit UI events to allow subscribers to contribute choices, defaults, > autoComplete > > > Key: ISIS-2074 > URL: https://issues.apache.org/jira/browse/ISIS-2074 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Major > > The idea being that most facets (perhaps all UI facets) should be able to be > expressed: > a) declaratively > b) imperatively > c) via a subscriber. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1663) @Property/@Collection/@Action methods must be public.
[ https://issues.apache.org/jira/browse/ISIS-1663?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1663. Resolution: Abandoned proposition no longer holds > @Property/@Collection/@Action methods must be public. > - > > Key: ISIS-1663 > URL: https://issues.apache.org/jira/browse/ISIS-1663 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Reporter: Daniel Keir Haywood >Priority: Minor > > Metamodel validator to check -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (ISIS-1883) [Validation] Scalar ref params should have a choices or autoComplete.
[ https://issues.apache.org/jira/browse/ISIS-1883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reassigned ISIS-1883: Assignee: Andi Huber > [Validation] Scalar ref params should have a choices or autoComplete. > - > > Key: ISIS-1883 > URL: https://issues.apache.org/jira/browse/ISIS-1883 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 1.16.1 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Minor > Fix For: 2.0.0-RC1 > > > With a metamodel validator. > > We do this for collection parameters already (see > ActionChoicesForCollectionParameterFacetFactory) but not for scalar reference > parameter. > NOTE: be careful to ignore scalar VALUE parameters (such as string or date); > obviously they *aren't* required to have a choices or autoComplete facet. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1883) [Validation] Scalar ref params should have a choices or autoComplete.
[ https://issues.apache.org/jira/browse/ISIS-1883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1883: - Summary: [Validation] Scalar ref params should have a choices or autoComplete. (was: scalar ref params should have a choices or autoComplete.) > [Validation] Scalar ref params should have a choices or autoComplete. > - > > Key: ISIS-1883 > URL: https://issues.apache.org/jira/browse/ISIS-1883 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 1.16.1 >Reporter: Daniel Keir Haywood >Priority: Minor > > With a metamodel validator. > > We do this for collection parameters already (see > ActionChoicesForCollectionParameterFacetFactory) but not for scalar reference > parameter. > NOTE: be careful to ignore scalar VALUE parameters (such as string or date); > obviously they *aren't* required to have a choices or autoComplete facet. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-1883) [Validation] Scalar ref params should have a choices or autoComplete.
[ https://issues.apache.org/jira/browse/ISIS-1883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1883: - Fix Version/s: 2.0.0-RC1 > [Validation] Scalar ref params should have a choices or autoComplete. > - > > Key: ISIS-1883 > URL: https://issues.apache.org/jira/browse/ISIS-1883 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 1.16.1 >Reporter: Daniel Keir Haywood >Priority: Minor > Fix For: 2.0.0-RC1 > > > With a metamodel validator. > > We do this for collection parameters already (see > ActionChoicesForCollectionParameterFacetFactory) but not for scalar reference > parameter. > NOTE: be careful to ignore scalar VALUE parameters (such as string or date); > obviously they *aren't* required to have a choices or autoComplete facet. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2010) Define a formal natureOfService of MODULE_API for programmatic interactions via wrapper across module trust boundaries.
[ https://issues.apache.org/jira/browse/ISIS-2010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2010. Resolution: Fixed believed to be fixed; programming model for services was reworked > Define a formal natureOfService of MODULE_API for programmatic interactions > via wrapper across module trust boundaries. > --- > > Key: ISIS-2010 > URL: https://issues.apache.org/jira/browse/ISIS-2010 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 1.16.2 >Reporter: Daniel Keir Haywood >Priority: Major > > One idea: > - NatureOfService.MODULE_API > For the API, can wrap (and perhaps are auto-wrapped) > For the DOMAIN, are not wrapped, and don't introspect the methods to create > actions. > Questions: > * It's not clear to me which of the Isis services should be MODULE_API vs > DOMAIN. > * Do we also auto-wrap entities returned from a service thus annotated? -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2064) Allow explicit vs implicit metamodel discovery to be specified with @DomainObject
[ https://issues.apache.org/jira/browse/ISIS-2064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2064. Resolution: Fixed provided via {code:java} @DomainObject(introspection=...) {code} > Allow explicit vs implicit metamodel discovery to be specified with > @DomainObject > - > > Key: ISIS-2064 > URL: https://issues.apache.org/jira/browse/ISIS-2064 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Reporter: Daniel Keir Haywood >Priority: Minor > > as per dev mailing list > [https://lists.apache.org/thread.html/9d766b4e43079f81d1a72c9a78be9f78f65433cb92288394b7f195df@%3Cusers.isis.apache.org%3E] > > We currently have the configuration property > "isis.reflector.explicitAnnotations.action" which if specified requires > @Action to be added as an annotation for all public methods that don't > represent properties/collections or supporting methods. If this is enabled > then there's generally no need to annotate public methods that aren't meant > to be in the metamodel with the @Programmatic annotation. > > Andi and I have just been discussing this (off-list) and wondering if we > should extend this in v2. Our idea is maybe to allow this to be specified at > the class level, and to also have three levels rather than two: > > - explicit : all properties, collections and actions must be annotated > - actions : actions must be annotated, but properties and collections need > not. This is the behavior if the above configuration property is specified. > - implicit : no annotations are required. This is the current default > > So, we were thinking to add a value to @DomainObject, eg > > @DomainObject(metamodelDiscoveryStrategy = EXPLICIT | ACTIONS | IMPLICIT | > AS_CONFIGURED) > > where "AS_CONFIGURED" would read a new configuration property that would > take these three values (replacing the existing > "isis.reflector.explicitAnnotations.action". > > Two questions: > > 1. is the idea of a new level to explicitly annotate everything (properties > and collections as well as actions) useful ? > 2. is there a need to configure this on a class-by-class basis, or is a > global configuration property sufficient? -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2096) Extend ReasonBuffer in the applib.
[ https://issues.apache.org/jira/browse/ISIS-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2096. Resolution: Fixed seems implemented; closing this > Extend ReasonBuffer in the applib. > -- > > Key: ISIS-2096 > URL: https://issues.apache.org/jira/browse/ISIS-2096 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M2 >Reporter: Daniel Keir Haywood >Priority: Minor > -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2122) [Wish] adviseXxx(), a softer version of validateXxx().
[ https://issues.apache.org/jira/browse/ISIS-2122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2122: - Issue Type: Wish (was: Improvement) > [Wish] adviseXxx(), a softer version of validateXxx(). > -- > > Key: ISIS-2122 > URL: https://issues.apache.org/jira/browse/ISIS-2122 > Project: Isis > Issue Type: Wish > Components: Isis Applib (programming model) >Reporter: Daniel Keir Haywood >Priority: Major > > more discussion at > [https://lists.apache.org/thread.html/bd8a407ceb0e07cc42c1b7eb85e266817b802a11fccf05819c9c4812@%3Cusers.isis.apache.org%3E] -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2122) [Wish] adviseXxx(), a softer version of validateXxx().
[ https://issues.apache.org/jira/browse/ISIS-2122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2122: - Summary: [Wish] adviseXxx(), a softer version of validateXxx(). (was: adviseXxx(), a softer version of validateXxx().) > [Wish] adviseXxx(), a softer version of validateXxx(). > -- > > Key: ISIS-2122 > URL: https://issues.apache.org/jira/browse/ISIS-2122 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Reporter: Daniel Keir Haywood >Priority: Major > > more discussion at > [https://lists.apache.org/thread.html/bd8a407ceb0e07cc42c1b7eb85e266817b802a11fccf05819c9c4812@%3Cusers.isis.apache.org%3E] -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ISIS-2085) [Validation] Every entity should be annotated with @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
[ https://issues.apache.org/jira/browse/ISIS-2085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530025#comment-17530025 ] Andi Huber commented on ISIS-2085: -- A probably even better solution is to inspect all JAXB viewmodels and collect all the types they reference. Then validate that either the referencing member or the referenced entity have the appropriate annotation. No configuration required. > [Validation] Every entity should be annotated with > @XmlJavaTypeAdapter(PersistentEntityAdapter.class) > - > > Key: ISIS-2085 > URL: https://issues.apache.org/jira/browse/ISIS-2085 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > So can be referenced in a view model. > Perhaps only enable this metamodel validation if a config property is enabled. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (ISIS-2085) [Validation] Every entity should be annotated with @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
[ https://issues.apache.org/jira/browse/ISIS-2085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reassigned ISIS-2085: Assignee: Andi Huber > [Validation] Every entity should be annotated with > @XmlJavaTypeAdapter(PersistentEntityAdapter.class) > - > > Key: ISIS-2085 > URL: https://issues.apache.org/jira/browse/ISIS-2085 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Minor > Fix For: 2.0.0-RC1 > > > So can be referenced in a view model. > Perhaps only enable this metamodel validation if a config property is enabled. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2085) [Validation] Every entity should be annotated with @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
[ https://issues.apache.org/jira/browse/ISIS-2085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2085: - Fix Version/s: 2.0.0-RC1 > [Validation] Every entity should be annotated with > @XmlJavaTypeAdapter(PersistentEntityAdapter.class) > - > > Key: ISIS-2085 > URL: https://issues.apache.org/jira/browse/ISIS-2085 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Minor > Fix For: 2.0.0-RC1 > > > So can be referenced in a view model. > Perhaps only enable this metamodel validation if a config property is enabled. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Updated] (ISIS-2085) [Validation] Every entity should be annotated with @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
[ https://issues.apache.org/jira/browse/ISIS-2085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-2085: - Summary: [Validation] Every entity should be annotated with @XmlJavaTypeAdapter(PersistentEntityAdapter.class) (was: validation - every entity should be annotated with @XmlJavaTypeAdapter(PersistentEntityAdapter.class)) > [Validation] Every entity should be annotated with > @XmlJavaTypeAdapter(PersistentEntityAdapter.class) > - > > Key: ISIS-2085 > URL: https://issues.apache.org/jira/browse/ISIS-2085 > Project: Isis > Issue Type: New Feature > Components: Isis Applib (programming model) >Affects Versions: 1.17.0 >Reporter: Daniel Keir Haywood >Priority: Minor > > So can be referenced in a view model. > Perhaps only enable this metamodel validation if a config property is enabled. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-2289) detect incompatible choices return types
[ https://issues.apache.org/jira/browse/ISIS-2289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-2289. Resolution: Won't Fix won't fix: cannot figure out runtime types based on reflection > detect incompatible choices return types > - > > Key: ISIS-2289 > URL: https://issues.apache.org/jira/browse/ISIS-2289 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 2.0.0-M2 >Reporter: Andi Huber >Priority: Minor > > Metamodel validator: validate eagerly (when full introspect) > > This one [1] hits at runtime, should be covered by full > introspection/validation instead. > > [1] > [https://github.com/apache/isis/blob/f380b389fa80f98b3667383f1d8b76d39b8e84a9/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java#L351] -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Closed] (ISIS-1898) Use Joda Interval for LocalDate collection parameter
[ https://issues.apache.org/jira/browse/ISIS-1898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber closed ISIS-1898. Resolution: Abandoned 4 years no progress; use-case seems to not find enough momentum > Use Joda Interval for LocalDate collection parameter > > > Key: ISIS-1898 > URL: https://issues.apache.org/jira/browse/ISIS-1898 > Project: Isis > Issue Type: Improvement > Components: Isis Applib (programming model) >Affects Versions: 1.16.1 >Reporter: Sander Ginn >Priority: Major > > {code:java} > // code placeholder > {code} > To accommodate to the requirement of a {{choicesXxx}}/{{autoCompleteXxx}} > method for a collection parameter on an action, it would be useful to be able > to return a Joda Interval instead of a collection of LocalDates. > Furthermore, it is desirable that the available options are offered through > the date picker that is currently used for single LocalDate parameters. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ISIS-2528) add docs to describe how to style the Wicket UI
[ https://issues.apache.org/jira/browse/ISIS-2528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530007#comment-17530007 ] Andi Huber commented on ISIS-2528: -- As the Wicket Viewer is now based on Bootstrap 5.x, tweaking the theme background color in Apache Isis has become as simple as overriding bootstrap CSS vars in your custom application.css file: https://the-asf.slack.com/archives/CFC42LWBV/p1650880445852229 > add docs to describe how to style the Wicket UI > --- > > Key: ISIS-2528 > URL: https://issues.apache.org/jira/browse/ISIS-2528 > Project: Isis > Issue Type: Improvement > Components: Isis Docs Website >Affects Versions: 2.0.0-M4 >Reporter: Jörg Rade >Priority: Minor > > By adding styles to {{application.css}} the UI can be styled and values > override any Theme settings, example: > {code:java} > header.navbar-fixed-top { > background-color: #002852; > } > .navbar-inverse { > background-color: #56b7e9; > border-color: transparent; > } > .navbar-default .navbar-collapse, .navbar-default .navbar-form { > background-color: #002852; > } > {code} > The interaction between 'Theme' and css (application, page) needs some > explanation -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] (ISIS-1656) [Performance] Flush auditing/publishing etc to end of the ACTION phase, rather than end of RENDER phase.
[ https://issues.apache.org/jira/browse/ISIS-1656 ] Andi Huber deleted comment on ISIS-1656: -- was (Author: hobrom): probably outdated; would like to close that one > [Performance] Flush auditing/publishing etc to end of the ACTION phase, > rather than end of RENDER phase. > > > Key: ISIS-1656 > URL: https://issues.apache.org/jira/browse/ISIS-1656 > Project: Isis > Issue Type: Improvement > Components: Isis Viewer Wicket >Affects Versions: 1.14.0 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Minor > Labels: perfomance > Fix For: 2.0.0-RC1 > > > cf ISIS=1655, whereby we can only flush QueryResultsCache and not the other > two transaction-scoped services. > I think we should probably bring the hook for the auditing etc forward to the > beginning of the RENDER phase, ie using the same hook that we have installed > TargetRespondListenerToResetQueryResultCache class. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Assigned] (ISIS-1656) [Performance] Flush auditing/publishing etc to end of the ACTION phase, rather than end of RENDER phase.
[ https://issues.apache.org/jira/browse/ISIS-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber reassigned ISIS-1656: Assignee: Andi Huber (was: Daniel Keir Haywood) > [Performance] Flush auditing/publishing etc to end of the ACTION phase, > rather than end of RENDER phase. > > > Key: ISIS-1656 > URL: https://issues.apache.org/jira/browse/ISIS-1656 > Project: Isis > Issue Type: Improvement > Components: Isis Viewer Wicket >Affects Versions: 1.14.0 >Reporter: Daniel Keir Haywood >Assignee: Andi Huber >Priority: Minor > Labels: perfomance > Fix For: 2.0.0-RC1 > > > cf ISIS=1655, whereby we can only flush QueryResultsCache and not the other > two transaction-scoped services. > I think we should probably bring the hook for the auditing etc forward to the > beginning of the RENDER phase, ie using the same hook that we have installed > TargetRespondListenerToResetQueryResultCache class. -- This message was sent by Atlassian Jira (v8.20.7#820007)