• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

aspectran / aspectran / #5127
43%

Build:
DEFAULT BRANCH: master
Ran 03 Apr 2026 03:48PM UTC
Jobs 1
Files 1036
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Apr 2026 03:36PM UTC coverage: 42.8% (+0.4%) from 42.371%
#5127

push

github

topframe
feat(core): implement advanced hint mechanism with frame-based isolation

This commit introduces a sophisticated Hint mechanism that allows business
logic to convey execution "intents" to underlying framework modules via
metadata, ensuring proper isolation and propagation across call frames.

Key features and enhancements:

- **Frame-based Isolation**: Implemented a logical "call frame" structure
  within the hint stack using `ArrayStack` and `null` as boundary markers.
  This ensures zero-allocation overhead for creating frame boundaries.
- **Propagation Control**: Added a `propagated` attribute to `@Hint` to
  strictly control whether a hint is visible to nested method calls.
- **Intelligent Peeking**: `peekHint` now respects frame boundaries,
  allowing only propagated hints from parent frames while always
  honoring hints within the current frame.
- **Architecture Refactoring**:
    - Extracted scanning logic into `ProxyHintScanner`.
    - Separated `SuperInvoker` into a standalone interface.
    - Decoupled `JdkBeanProxy` and `JavassistBeanProxy` from initialization
      details by injecting scanned hints during proxy creation.
- **API Robustness**: Enhanced `Activity` and `Translet` interfaces with
  count-based `popHint` and list-based `pushHint` to ensure stack
  integrity and prevent imbalance.
- **Comprehensive Documentation**: Updated Javadocs across the core
  interfaces to explain the frame isolation and propagation mechanism.
- **Extensive Testing**: Added diverse test scenarios in `HintTest` to
  verify basic functionality, propagation, and strict isolation.

Example:
  @Hint(type="tx", value="readOnly: true", propagated=false)
  public void serviceMethod() { ... }

70 of 86 new or added lines in 5 files covered. (81.4%)

230 existing lines in 6 files now uncovered.

18422 of 43042 relevant lines covered (42.8%)

0.43 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
78.74
6.52% core/src/main/java/com/aspectran/core/activity/AbstractActivity.java
4
0.0
0.0% core/src/main/java/com/aspectran/core/component/bean/proxy/JdkBeanProxy.java
11
79.63
core/src/main/java/com/aspectran/core/component/bean/proxy/ProxyHintScanner.java

Uncovered Existing Lines

Lines Coverage ∆ File
1
58.62
1.15% daemon/src/main/java/com/aspectran/daemon/command/CommandExecutor.java
2
65.52
-1.72% core/src/main/java/com/aspectran/core/component/bean/BeanRuleAnalyzer.java
8
78.74
6.52% core/src/main/java/com/aspectran/core/activity/AbstractActivity.java
37
63.36
-1.0% core/src/main/java/com/aspectran/core/component/bean/proxy/AbstractBeanProxy.java
85
5.0
5.0% core/src/main/java/com/aspectran/core/activity/InstantTranslet.java
97
4.52
0.0% core/src/main/java/com/aspectran/core/activity/CoreTranslet.java
Jobs
ID Job ID Ran Files Coverage
1 #5127.1 03 Apr 2026 03:48PM UTC 1036
42.8
Source Files on build #5127
  • Tree
  • List 1036
  • Changed 28
  • Source Changed 9
  • Coverage Changed 28
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 5abb122a on github
  • Prev Build on master
  • Next Build on master
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc