Skip to content

Feature/aop lib#54

Merged
jhonatapers merged 12 commits intodevelopfrom
feature/aop-lib
Aug 23, 2025
Merged

Feature/aop lib#54
jhonatapers merged 12 commits intodevelopfrom
feature/aop-lib

Conversation

@jhonatapers
Copy link
Copy Markdown
Member

This pull request introduces a new AOP (Aspect-Oriented Programming) executor framework and supporting context classes, along with some minor improvements to domain model classes. The main changes are the addition of a flexible executor chain system for handling method invocations with pre- and post-processing, as well as enhancements to the domain model for better debugging and logging.

AOP Executor Framework Implementation:

  • Added core AOP context interfaces and implementations for invocation handling, including InvocationContext, PreInvocationContext, PostInvocationContext, and their concrete classes such as SimplePreInvocationContext and SimplePostInvocationContext. These manage the state and results of method invocations, including timing and exception handling. [1] [2] [3] [4] [5] [6]
  • Introduced the executor and chain interfaces/classes (Executor, PreExecutor, PostExecutor, ExecutorChain, PreInvocationExecutorChain, PostInvocationExecutorChain) to enable composition of multiple processing steps before and after method invocations. [1] [2] [3] [4] [5] [6]
  • Implemented handler classes (ExecutorChainHandler, SimpleExecutorChainHandler, SimpleExecutorChainHandlerBuilder) for building and executing customizable chains of pre- and post-invocation logic, including error handling. [1] [2] [3]

Build System:

  • Added a new build.gradle for the aop module, configuring dependencies (AspectJ, JUnit, Mockito), Java 21 toolchain, and test setup.

Domain Model Improvements:

  • Added toString() methods to domain entities (File, FileID, Folder, FolderID) for improved logging and debugging output. [1] [2] [3] [4]

…on context management

- Added InvocationContext interface to encapsulate context information during method invocation.
- Refactored PostInvocationContext and PreInvocationContext to extend InvocationContext.
- Implemented SimplePreInvocationContext and SimplePostInvocationContext to handle invocation context.
- Updated SimpleExecutorChainHandlerBuilder to manage pre and post invocation executor chains using queues.
- Created ApplicationLayerAspect to handle method execution with AOP.
- Removed obsolete aspect-related classes and interfaces to streamline the AOP implementation.
- Introduced logging executors for method arguments, signatures, and execution telemetry.
- Configured AOP beans in AopConfig for logging and error handling during method execution.
…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
@jhonatapers jhonatapers self-assigned this Aug 23, 2025
@jhonatapers jhonatapers added the enhancement New feature or request label Aug 23, 2025
@jhonatapers jhonatapers marked this pull request as ready for review August 23, 2025 21:29
@jhonatapers jhonatapers moved this to In Progress in CallV2 Aug 23, 2025
@jhonatapers jhonatapers merged commit b7527d7 into develop Aug 23, 2025
@github-project-automation github-project-automation Bot moved this from In Progress to Done in CallV2 Aug 23, 2025
@jhonatapers jhonatapers deleted the feature/aop-lib branch August 23, 2025 21:34
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

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant