CAMEL-20199: Add JMX support for virtual thread executors#21701
Conversation
Virtual thread executors (ThreadPerTaskExecutor) were silently skipped from JMX registration because LifecycleStrategy.onThreadPoolAdd only accepted ThreadPoolExecutor. This adds overloaded methods for ExecutorService to register non-ThreadPoolExecutor instances in JMX. New ManagedVirtualThreadExecutorMBean exposes basic attributes: id, sourceId, routeId, isVirtualThread, and isShutdown. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🌟 Thank you for your contribution to the Apache Camel project! 🌟 🐫 Apache Camel Committers, please review the following items:
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Run [[ -z $(git status --porcelain) ]] || { echo 'There are uncommitted changes'; git status; echo; echo; git diff; exit 1; } |
Match code generator output for blank Javadoc comment lines in SedaEndpointBuilderFactory and StubEndpointBuilderFactory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
ThreadPerTaskExecutor) were silently skipped from JMX registration becauseLifecycleStrategy.onThreadPoolAddonly acceptedThreadPoolExecutoronThreadPoolAdd/Remove(ExecutorService)default methods toLifecycleStrategy,ManagementObjectStrategy, andManagementObjectNameStrategyfor backward compatibilityManagedVirtualThreadExecutorMBeaninterface andManagedVirtualThreadExecutorimplementation exposing basic attributes (id, sourceId, routeId, isVirtualThread, isShutdown)BaseExecutorServiceManagerto notify lifecycle strategies for non-ThreadPoolExecutor instancesJmxManagementLifecycleStrategyandDefaultManagementObjectStrategyto handle ExecutorService registration/unregistrationTest plan
ManagedVirtualThreadExecutorTestverifies virtual thread executor MBeans are registered in JMX with correct attributes (JDK 21+)ManagedThreadPoolTest,ManagedThreadPoolWithIdTest,ManagedThreadPoolProfileTest,DualManagedThreadPoolWithIdTest,DualManagedThreadPoolProfileTestall pass🤖 Generated with Claude Code