Hi,

Finally found some time to work on this again.

@Brian thx for putting me on the right track.  I had indeed some issues
with: domain methods returning a non-Domain class

@Dan thanks for pointing out the work-around with the property

I had some issues with non-domain classes being picked up by the
meta-model, I've sprinkled @Programmatic in the appropriate places had have
been able to mostly get rid of this behaviour.  Two errors are remaining:
```
Collection action parameter found without supporting choices or
autoComplete facet. Class: org.apache.isis.applib.query.Query action:
withRange parameter 0
Collection action parameter found without supporting choices or
autoComplete facet. Class:
org.apache.isis.applib.services.repository.RepositoryService action:
persistAndFlush parameter 0
```
I'm a bit lost as to what is actually generating this; is there a way to
enable more verbose logging, that would for example show the actual domain
class that is at the origin of this?

I have not been able to fix these, but by setting
isis.core.meta-model.introspector.policy=ENCAPSULATION_ENABLED the model
validation PASSED and the application starts.

Thx so far, I may be back with more questions,
Koen





On Mon, 11 Apr 2022 at 05:31, Brian K <harvestmoon...@gmail.com> wrote:

> This type of error usually happens to me when I include a data type from
> one of my 3rd party libraries as a return type/parameter of an action or as
> a property.  The framework would walk the members of that type and find all
> sorts of non-isis-compliant classes!   When I upgraded to M7 from M5, I had
> this happen when I introduced an interface (I was trying to track down
> another bug caused by my aggressively persisting objects in my domain
> code).  In my case, replacing the interface with the regular domain class
> brought me back from those errors.   I was led to this solution after
> reading something about abstract classes and overriding actions not
> currently being supported.
>
> On Sat, Apr 9, 2022 at 6:59 AM Koen Debruyckere <debru...@gmail.com>
> wrote:
>
> > Cross posting from stackoverflow.
> >
> >
> > <https://stackoverflow.com/posts/71788680/timeline>
> >
> > I changed my source code and pom.xml upgrading from 2.0.0-M5 to 2.0.0-M7.
> > Note, that none of the below errors were showing up in M5. The
> application
> > is compiling again but when going to the application, it shows a long
> list
> > of metamodel validation error that weren't there in M5
> >
> > This happens on a lot of classes. Any clue as to how to properly fix
> this,
> > (for the moment I get no further than commenting them out)?
> >
> > someClass#defaultXSomeMethod(): is public, but orphaned (was not
> > picked up by the framework); reporting orphans, because the class is
> > setup for member introspection, without enforcing annotations
> >
> > The following occurs on framework classes, and classes from libraries
> > included that are not part of the domain model itself. I have no clue
> > what's going on nor how to fix this.
> >
> > Collection action parameter found without supporting choices or
> > autoComplete facet. Class: org.apache.isis.applib.query.Query action:
> > withRange parameter 0
> >
> > And then this one:
> >
> > Action method overloading is not allowed, yet
> > javax.activation.MimeType has action(s) that have a the same member
> > name: [match]
> >
> > this is an included library class, and it is used to parse the mimeType
> > provided as an input parameter in one of the methods of a domain object.
> It
> > used to work in M5. Any clue as to how to avoid this, or work around it?
> >
> > Note, I also get the overloading error on my own DomainObjects (not in
> M5);
> > I guess there the work around will be to stop overloading.
> >
> > Thanks for any hints to point me in the right way.
> >
> >
> >
> > Some answers from Dan:
> >
> > In 2.0.0-M6 and 2.0.0-M7 we made the programming model more
> sophisticated,
> > but also made the metamodel validator more stringent. Probably easiest
> for
> > you to join the mailing list and from there we can invite you onto our
> > slack channel to help you fix these issues
> >
> > *"Collection action parameter found without supporting choices or
> > autoComplete facet. Class: org.apache.isis.applib.query.Query action:
> > withRange parameter 0"*
> >
> > If this is a framework service then it shouldn't occur, and sounds like a
> > bug.
> >
> > I think the issue is in the isis.core.meta-model.introspector. policy
> > configuration property - the default is to include non-annotated into the
> > metamodel and - incorrectly - some types are being included that
> shouldn't
> > be.
> >
> > Alternatively, you can add either @Programmatic or @Domain.Exclude to
> > ensure that methods are excluded from the metamodel.
> >
> > > Will try as soon as I can
> >
> > As a workaround, try changing this config property.
> >
> > Best though would be to join the users mailing list / slack channel so we
> > can dig into the issue more thoroughly there.
> >
> > > Done
> >
> >
> > Sorry, I'm traveling for the moment and cannot work on the code.
> >
>

Reply via email to