[jira] [Commented] (ISIS-3032) [Wicket Viewer] Consistent Placeholder Rendering (none) + (suppressed)

2022-04-29 Thread ASF subversion and git services (Jira)


[ 
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)

2022-04-29 Thread ASF subversion and git services (Jira)


[ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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 ?

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


[ 
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

2022-04-29 Thread Andi Huber (Jira)


[ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


[ 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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


[ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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().

2022-04-29 Thread Andi Huber (Jira)


 [ 
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().

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


[ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


 [ 
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

2022-04-29 Thread Andi Huber (Jira)


[ 
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.

2022-04-29 Thread Andi Huber (Jira)


[ 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.

2022-04-29 Thread Andi Huber (Jira)


 [ 
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)


  1   2   3   >