Skip to content

Introduce AOP Execution Framework with Invocation Contexts and Executor Chains#63

Merged
jhonatapers merged 105 commits intomainfrom
develop
Aug 25, 2025
Merged

Introduce AOP Execution Framework with Invocation Contexts and Executor Chains#63
jhonatapers merged 105 commits intomainfrom
develop

Conversation

@jhonatapers
Copy link
Copy Markdown
Member

This pull request introduces a new AOP (Aspect-Oriented Programming) execution and context framework to the codebase, along with supporting build configuration and minor updates to existing files. The main changes include the addition of context and executor abstractions for method invocations, chain-of-responsibility patterns for handling pre- and post-invocation logic, and builder utilities for assembling executor chains. There are also updates to build dependencies and minor naming improvements in the application layer.

AOP Framework Introduction

  • Added core context interfaces and implementations for invocation handling: InvocationContext, PreInvocationContext, PostInvocationContext, and their concrete classes (SimplePreInvocationContext, SimplePostInvocationContext, AbstractInvocationContext). These enable structured tracking and management of method invocation states and results. [1] [2] [3] [4] [5] [6]
  • Implemented executor interfaces (Executor, PreExecutor, PostExecutor) and chain-of-responsibility abstractions (ExecutorChain, PreInvocationExecutorChain, PostInvocationExecutorChain) to allow flexible composition of pre- and post-invocation logic. [1] [2] [3] [4] [5] [6]

Chain Handler Utilities

  • Added ExecutorChainHandler and its implementation SimpleExecutorChainHandler to orchestrate the invocation process, handling success and error scenarios. [1] [2]
  • Provided SimpleExecutorChainHandlerBuilder for assembling complex executor chains from queues of pre-, post-, and error executors, supporting modular configuration.

Build and Dependency Updates

  • Added a new aop/build.gradle with AspectJ and JUnit dependencies, and updated application/build.gradle to use newer versions of JUnit and Mockito. [1] [2]

Minor Improvements

  • Renamed method parameters in UnitUseCase and UseCase for clarity (anIn to input). [1] [2]
  • Added RabbitMQ environment variables to .env.example for future messaging support.

MatheusmPigatto and others added 30 commits March 3, 2025 14:18
Co-authored-by: Artur S <Artituis@users.noreply.github.com>
Co-authored-by: Artur S <Artituis@users.noreply.github.com>
…d validation logic

Co-authored-by: Artur S <Artituis@users.noreply.github.com>
…member creation logic

Co-authored-by: Artur S <Artituis@users.noreply.github.com>
…ultCreateRequestQuotaUseCase

Co-authored-by: Artur S <Artituis@users.noreply.github.com>
…RabbitMQ

Co-authored-by: Artur S <Artituis@users.noreply.github.com>
Co-authored-by: Artur S <Artituis@users.noreply.github.com>
…d event handling

-wip

Co-authored-by: Artur S <Artituis@users.noreply.github.com>
…ove binding definitions

Co-authored-by: Artur S <Artituis@users.noreply.github.com>
…cution handling; enhance ApplicationLayerAspect with result logging

refactor: update logging in LogErrorPostExecutor, LogMethodArgsPreExecutor, LogMethodResultPostExecutor, LogMethodSignaturePreExecutor, and LogTelemetryPostExecutor for consistency
fix: implement toString method in FileJpaEntity for better logging
…Member, and MemberID classes for better logging and debugging
…dArgsPreExecutor, and LogMethodSignaturePreExecutor constructors
… MemberAdminAPI to use @PatchMapping for quota approval
feat: adds new route to update folder name
@jhonatapers jhonatapers self-assigned this Aug 25, 2025
@jhonatapers jhonatapers merged commit c52559a into main Aug 25, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants