Dan Haywood created ISIS-1620:
---------------------------------
Summary: use normal mechanism of indicating metamodel invalid if
choices specified incorrectly
Key: ISIS-1620
URL: https://issues.apache.org/jira/browse/ISIS-1620
Project: Isis
Issue Type: Improvement
Components: Core
Affects Versions: 1.14.0
Reporter: Dan Haywood
Priority: Trivial
Fix For: 1.18.0
currently the framework just fails "too fast" and throws an exception as soon
as the issue is detected. instead it should collate the problem and report
along with others (as for other metamodel invalid exceptions).
To reproduce in kitchensink app:
{code}
@Action(semantics=SemanticsOf.IDEMPOTENT, publishing = Publishing.ENABLED)
public TextObject updateSomeStringOptionalWithMultiChoices(
// @Nullable
@ParameterLayout(named = "Choose some string(s)")
final List<String> strings) {
final String asStr = SeparatorUtil.asStr(strings);
setSomeStringOptionalWithMultiChoices(asStr);
return this;
}
public List<String> choices0UpdateSomeStringOptionalWithMultiChoices() {
return choicesUpdateSomeStringOptionalWithMultiChoices();
}
public List<String> choicesUpdateSomeStringOptionalWithMultiChoices() {
return Lists.newArrayList("a", "ab", "abcd", "abcdefgh",
"abcdefghijklmnop", "abcdefghijklmnopqrstuvwxyz");
}
{code}
will throw an exception when encountered
{code}
at org.apache.wicket.Application.initApplication(Application.java:953)
at
org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429)
... 20 more
Caused by: org.apache.isis.core.metamodel.exceptions.MetaModelException: class
org.isisaddons.app.kitchensink.dom.text.TextObject uses both old and new
choices syntax - must use one or other
at
org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParameterChoicesFacetViaMethodFactory.attachChoicesFacetForParametersIfChoicesNumMethodIsFound(ActionParameterChoicesFacetViaMethodFactory.java:92)
at
org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParameterChoicesFacetViaMethodFactory.process(ActionParameterChoicesFacetViaMethodFactory.java:65)
at
org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor.process(FacetProcessor.java:315)
at
org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.createActionFacetedMethod(FacetedMethodsBuilder.java:489)
at
org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethod(FacetedMethodsBuilder.java:475)
at
org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethods(FacetedMethodsBuilder.java:454)
at
org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethods(FacetedMethodsBuilder.java:433)
at
org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.getActionFacetedMethods(FacetedMethodsBuilder.java:409)
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)