Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide Compatibility with Feign Annotation Processors #57

Open
kdavisk6 opened this issue Apr 25, 2020 · 0 comments
Open

Provide Compatibility with Feign Annotation Processors #57

kdavisk6 opened this issue Apr 25, 2020 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@kdavisk6
Copy link
Member

Feign's DeclarativeContract uses FunctionalInterface AnnotationProcessors to simply contract parsing and metadata building.

This type of annotation processing should be supported in Feignx for the following reasons:

  • Backward Compatibility
  • Simplicity
  • APT groundwork.
@kdavisk6 kdavisk6 added the enhancement New feature or request label Apr 25, 2020
@kdavisk6 kdavisk6 added this to the 1.0.0.M1 milestone Apr 25, 2020
kdavisk6 added a commit to kdavisk6/feignx that referenced this issue Mar 15, 2021
This change introduces the skeleton for our Annotation Processor,
that will allow users to choose between our default runtime target
generator and a compile-time alternative.
kdavisk6 added a commit that referenced this issue Mar 15, 2021
This change introduces the skeleton for our Annotation Processor,
that will allow users to choose between our default runtime target
generator and a compile-time alternative.
@kdavisk6 kdavisk6 added this to To do in 1.0.0.RELEASE via automation Mar 20, 2021
@kdavisk6 kdavisk6 moved this from To do to In progress in 1.0.0.RELEASE Mar 20, 2021
kdavisk6 added a commit to kdavisk6/feignx that referenced this issue Mar 23, 2021
To better support compile time annotation processors, this change introduces the TargetMethodParameterDefinition model object.  Used by our compile time annotation processor and eventually all Contract implementation, this object contains the configuration of an annotated method parameter.
kdavisk6 added a commit that referenced this issue Mar 23, 2021
To better support compile time annotation processors, this change introduces the TargetMethodParameterDefinition model object.  Used by our compile time annotation processor and eventually all Contract implementation, this object contains the configuration of an annotated method parameter.
kdavisk6 added a commit to kdavisk6/feignx that referenced this issue Mar 28, 2021
Related to OpenFeign#57

This change moves `TemplateParameter` object creation to `AbstractTargetMethodHandler` to reduce the overhead of `Contract` parsing and reduce the responsibility of `Contract` implementations to class metadata and not collaborating object construction.
kdavisk6 added a commit to kdavisk6/feignx that referenced this issue Mar 28, 2021
Related to OpenFeign#57

This change moves `TemplateParameter` object creation to `AbstractTargetMethodHandler` to reduce the overhead of `Contract` parsing and reduce the responsibility of `Contract` implementations to class metadata and not collaborating object construction.
kdavisk6 added a commit to kdavisk6/feignx that referenced this issue Mar 28, 2021
Related to OpenFeign#57

This change moves `TemplateParameter` object creation to `AbstractTargetMethodHandler` to reduce the overhead of `Contract` parsing and reduce the responsibility of `Contract` implementations to class metadata and not collaborating object construction.
kdavisk6 added a commit that referenced this issue Mar 28, 2021
Related to #57

This change moves `TemplateParameter` object creation to `AbstractTargetMethodHandler` to reduce the overhead of `Contract` parsing and reduce the responsibility of `Contract` implementations to class metadata and not collaborating object construction.
kdavisk6 added a commit to kdavisk6/feignx that referenced this issue Jul 23, 2021
This change introduces the concept of an `AnnotationProcessor`.
These components are used when processing an `AnnotationDrivenContract`

Contracts can now be modularized whereas they are now collections of
annotation processors instead of full fledged parsing components.

By doing so, `AnnotationProcessors` can be shared between our current
reflection based contract parsers and the upcoming compile time annotation
processors.
kdavisk6 added a commit to kdavisk6/feignx that referenced this issue Jul 23, 2021
This change introduces the concept of an `AnnotationProcessor`.
These components are used when processing an `AnnotationDrivenContract`

Contracts can now be modularized whereas they are now collections of
annotation processors instead of full fledged parsing components.

By doing so, `AnnotationProcessors` can be shared between our current
reflection based contract parsers and the upcoming compile time annotation
processors.
kdavisk6 added a commit that referenced this issue Jul 23, 2021
This change introduces the concept of an `AnnotationProcessor`.
These components are used when processing an `AnnotationDrivenContract`

Contracts can now be modularized whereas they are now collections of
annotation processors instead of full fledged parsing components.

By doing so, `AnnotationProcessors` can be shared between our current
reflection based contract parsers and the upcoming compile time annotation
processors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
1.0.0.RELEASE
  
In progress
Development

No branches or pull requests

1 participant