Coder Social home page Coder Social logo

Comments (14)

mkouba avatar mkouba commented on May 16, 2024

Follows up #38

from quarkus.

cescoffier avatar cescoffier commented on May 16, 2024

@mkouba isn't this done?

from quarkus.

mkouba avatar mkouba commented on May 16, 2024

I'm not sure. @manovotn could you pls verify the relevant functionalities?

from quarkus.

manovotn avatar manovotn commented on May 16, 2024

@cescoffier @mkouba
Well, Arc deliberately doesn't implement specialization so there's that.
Other than that, in type-level inheritance, we seem to be missing qualifier and stereotype inheritance while scope and interceptor bindings work.
Member-level inheritance seems to work fully.
I've written these tests to try that out - https://github.com/manovotn/quarkus/tree/inheritanceRules

from quarkus.

manovotn avatar manovotn commented on May 16, 2024

FTR, CDI spec recommends that qualifiers should not declare @Inherited:

qualifier types should not be declared @inherited,

so that's definitely of minor priority.

As for stereotypes, those would be nice to have feature, but probably not mandatory right away.
It would require deep recursive search through annotations because stereotypes can declare another stereotypes...

from quarkus.

Ladicek avatar Ladicek commented on May 16, 2024

I can confirm that stereotype inheritance doesn't work, as well as transitive stereotypes (stereotype declared on another stereotype). I added some @Disabled tests for these in a mostly-unrelated PR (#13553).

from quarkus.

dufoli avatar dufoli commented on May 16, 2024

so I have start to work on it but I am stuck because jandex seems to not return annotation of superclass got from classInfo.
I am maybe thinking to change completly the code and init all BeanInfo then enriched with qualifer/stereotype inherited
wdyt ? Or there is a solution to
@mkouba
Btw, I copy past the test from @manovotn but I will try to do my own later and add other test.

from quarkus.

cescoffier avatar cescoffier commented on May 16, 2024

CC @Ladicek - is it something doable?

from quarkus.

mkouba avatar mkouba commented on May 16, 2024

I am stuck because jandex seems to not return annotation of superclass got from classInfo.

That's intentional and well-documented. You need to walk the class hiearchy instead.

from quarkus.

Ladicek avatar Ladicek commented on May 16, 2024

@mkouba Considering recent developments in CDI Lite and extensions, I think the annotation store in ArC should probably always include all annotations of a class (including inherited ones). This is a little more complicated for scope annotations, and I didn't really think it through yet, so this is more like a heads up than a definitive claim :-)

from quarkus.

mkouba avatar mkouba commented on May 16, 2024

I think the annotation store in ArC should probably always include all annotations of a class (including inherited ones)

I assume that you mean the annotations declared on superclasses and annotated with @Inherited?

from quarkus.

Ladicek avatar Ladicek commented on May 16, 2024

Yes.

from quarkus.

manovotn avatar manovotn commented on May 16, 2024

@Ladicek might be worth an issue with some details so we keep track of it?

from quarkus.

Ladicek avatar Ladicek commented on May 16, 2024

At some point, sure. I need to think more about it.

from quarkus.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.