Brian Clozel
8ffbafd384
Prevent accidental Sysouts in the codebase
2024-10-30 10:36:30 +01:00
Juergen Hoeller
fa21dffcf8
Restore traditional AspectJ behavior through "spring.aop.ajc.ignore=true"
...
Closes gh-33704
2024-10-29 23:01:16 +01:00
Juergen Hoeller
9f4968ed05
Polishing
2024-09-27 19:16:12 +02:00
Sébastien Deleuze
1911ca728d
Support invoking bridged suspending functions in AopUtils
...
Closes gh-33045
2024-08-12 17:27:41 +02:00
Juergen Hoeller
f2b3263fff
Polishing
2024-07-10 15:56:56 +02:00
Juergen Hoeller
3ccaefe38f
Polishing
2024-07-10 15:15:32 +02:00
Juergen Hoeller
100da83913
Detect ajc markers in superclasses as well (for weaving check)
...
Closes gh-33113
2024-06-28 11:36:17 +02:00
Juergen Hoeller
0ea96b4806
Skip ajc-compiled aspects for ajc-compiled target classes
...
Includes defensive ignoring of incompatible aspect types.
Closes gh-32970
2024-06-06 20:42:07 +02:00
Juergen Hoeller
4f6f2c0d41
Revert to separate get/put steps against method cache for concurrency
...
Closes gh-32958
2024-06-05 16:32:27 +02:00
Juergen Hoeller
624be6d4e6
Report bean creation failure in sortAdvisors as AopConfigException
...
Closes gh-32230
2024-06-03 12:46:14 +02:00
Juergen Hoeller
6d7cd9c7dc
Defensive handling of incompatible advice methods
...
This covers AspectJ transaction and caching aspects when encountered by Spring AOP.
Closes gh-32882
See gh-32793
2024-05-23 17:07:51 +02:00
Juergen Hoeller
ea596aa211
Select most specific advice method in case of override
...
Closes gh-32865
2024-05-22 10:00:31 +02:00
Juergen Hoeller
617833bec9
Defensively catch and log pointcut parsing exceptions
...
Closes gh-32838
See gh-32793
2024-05-17 12:27:59 +02:00
Juergen Hoeller
a4135bac5c
Leniently ignore unsupported pointcut expression
...
See gh-32793
2024-05-10 13:52:39 +02:00
Juergen Hoeller
bf08e0c1b4
Polishing
2024-05-10 12:27:29 +02:00
Juergen Hoeller
9202c0ad41
Accept ajc-compiled @Aspect classes for Spring AOP proxy usage
...
Closes gh-32793
2024-05-10 12:27:12 +02:00
Juergen Hoeller
cbda46984c
Polishing
2024-04-30 15:46:28 +02:00
Juergen Hoeller
39cd31613b
Polishing
2024-04-10 18:06:32 +02:00
Sébastien Deleuze
23696b7db8
Add a classpath check for AOP Coroutines/Reactive conversion
...
Closes gh-32599
2024-04-09 15:21:21 +02:00
Sébastien Deleuze
4a7c24d90f
Refine null-safety
...
See gh-32475
2024-04-05 14:30:50 +02:00
Sébastien Deleuze
290a41d398
Refine null-safety in more modules
...
This commit refines the null-safety in all remaining modules
except spring-test.
See gh-32475
2024-03-26 15:39:18 +01:00
Sébastien Deleuze
1b563f8ba4
Refine null-safety in more modules
...
This commit refines the null-safety in:
- spring-jdbc
- spring-r2dbc
- spring-orm
- spring-beans
- spring-aop
See gh-32475
2024-03-26 09:46:34 +01:00
Juergen Hoeller
c531a8a705
Nullability refinements and related polishing
...
See gh-32475
2024-03-19 09:58:44 +01:00
Juergen Hoeller
4300fec023
Restore ability to return original method at ClassUtils level as well
...
Closes gh-32365
2024-03-04 23:48:26 +01:00
Sam Brannen
db535863dd
Consistently use class literals for primitive types
...
To improve consistency and avoid confusion regarding primitive types
and their wrapper types, this commit ensures that we always use class
literals for primitive types.
For example, instead of using the `Void.TYPE` constant, we now
consistently use `void.class`.
2024-01-30 15:26:12 +01:00
Juergen Hoeller
c6121da151
Polishing
2024-01-24 22:30:33 +01:00
Juergen Hoeller
89e7174cc4
Share cached interceptors for entire Advised instance if possible
...
Closes gh-32104
2024-01-24 22:30:22 +01:00
Juergen Hoeller
03b6e51225
Evaluate thread-bound MethodInvocation only if it matches current Method
...
Closes gh-26068
2024-01-09 11:54:05 +01:00
Juergen Hoeller
419e34e571
Introduce getMostSpecificMethod variant on BridgeMethodResolver
...
This is able to resolve the original method even if no bridge method has been generated at the same class hierarchy level (a known difference between the Eclipse compiler and regular javac).
Closes gh-21843
2024-01-07 16:33:06 +01:00
Juergen Hoeller
43107e7eb1
Propagate arguments for dynamic prototype-scoped advice
...
Closes gh-28407
2024-01-07 00:12:15 +01:00
Stéphane Nicoll
e22d1efdc0
Update copyright year of changed files
...
See gh-31930
2024-01-01 11:00:56 +01:00
Johnny Lim
ff8097d37c
Polish
...
See gh-31930
2024-01-01 10:59:35 +01:00
Juergen Hoeller
fdb454b9a4
Declare JdkDynamicAopProxy's ProxiedInterfacesCache as private
...
See gh-30499
2023-12-31 13:48:50 +01:00
Yanming Zhou
cfa3aa001f
Replace if with switch where feasible
...
See gh-31916
2023-12-28 13:29:50 +01:00
Yanming Zhou
4a450c6fab
Use enhanced for loop where feasible
...
See gh-31916
2023-12-28 13:01:44 +01:00
Sébastien Deleuze
8bd8c4f627
Add support for @Async Kotlin function returning Unit?
...
Closes gh-31881
2023-12-22 15:33:34 +01:00
Juergen Hoeller
cd11219fa7
Declare proxyMetadataCache as volatile and ProxiedInterfacesCache fields as final
...
See gh-30499
2023-12-22 12:27:03 +01:00
Juergen Hoeller
44c652ec98
Introduce ProxiedInterfacesCache for JdkDynamicAopProxy
...
Closes gh-30499
2023-12-22 11:55:59 +01:00
Stéphane Nicoll
68931a2091
Upgrade copyright year of changed file
...
See gh-31847
2023-12-15 07:36:50 +01:00
achhibi
7f79ccbec0
Combine conditions for better readability and simplicity
2023-12-14 20:29:09 +01:00
Juergen Hoeller
6bb9775309
Declare isStatic and releaseTarget as default methods on TargetSource
...
Closes gh-31820
2023-12-12 12:39:52 +01:00
Sébastien Deleuze
9aded3fcad
Fix a NPE in proxied suspending functions
...
Closes gh-31809
2023-12-11 21:21:34 +01:00
Juergen Hoeller
121e3540cc
Clear cached executors in setBeanFactory (for reused AspectJ aspect)
...
Closes gh-28201
2023-11-23 16:15:01 +01:00
Juergen Hoeller
0d8dee2878
Apply fallback for proxy with negative match or annotation pointcut
...
See gh-30534
2023-11-23 16:14:33 +01:00
Yanming Zhou
3a6d0c1d5b
Always fall back to original method if annotation pointcut used
...
Prior to this commit, AspectJExpressionPointcut doesn't fall back to original method if `!@annotation()` is used, it can cause false positive result.
Fix GH-27119
2023-11-23 16:01:18 +01:00
Juergen Hoeller
99378fe947
Polishing
2023-11-16 11:22:09 +01:00
Brian Clozel
8eebb5e27b
Polish
...
See gh-31575
2023-11-15 15:26:49 +01:00
Sébastien Deleuze
92c3843dae
Add required AspectJ field hints
...
This commit adds reflection hints on fields for
classes compiled by AspectJ.
Closes gh-31575
2023-11-15 10:30:02 +01:00
Sam Brannen
c7bb981db1
Ensure it's possible to extend ControlFlowPointcut with RegEx support
...
Commit d3fba6d49b introduced built-in pattern matching support for
method names in ControlFlowPointcut; however, it was still cumbersome
to extend ControlFlowPointcut with support for regular expressions
instead of simple pattern matching.
To address that, this commit introduces a variant of isMatch() that
accepts the pattern index instead of the pre-resolved method name
pattern. The default implementation retrieves the method name pattern
from the methodNamePatterns field and delegates to isMatch(String, String).
Subclasses can override the new isMatch(String, int) method to support
regular expressions, as can be seen in the example
RegExControlFlowPointcut class in ControlFlowPointcutTests.
See gh-31435
2023-10-28 16:30:02 +02:00
Sam Brannen
7f1beb0140
Polishing
2023-10-28 16:24:59 +02:00