ChangeLog
5.3.0
Hot Reload and Resource Deployment
- Added automatic class file watching and reloading, disabled by default. Compiled class file changes trigger redefinition of loaded classes.
- Added Freemarker hot reload, including updated template reads and object wrapper cache clearing after class redefinition.
- Added Thymeleaf hot reload, clearing the current template cache before rendering.
- Extended single-file resource operations from XML to non-Java files, supporting copies to module output and deployment by relative resource path.
- Automatic watching and manual hot deployment share a class redefinition lock to prevent concurrent redefinition across these paths.
Groovy Breakpoint Debugging
- Added Debug Current Groovy, supporting script breakpoints in the target JVM, variable inspection, and stepping through IDEA Debugger.
- Match Java debugger sessions by target JVM identity and distinguish source versions by script file and content.
MCP Tools
- Provide 16 MCP tools. See Using IDEA MCP.
- Added status aggregation, HTTP URL search, and recent logs and SQL queries.
- Added HotSwap operation lookup and run_and_invoke orchestration, with explicit run configuration startup or attachment to a specified PID.
- Added saved pre/post script queries, allowing method invocation to reuse Method Around scripts by name.
- Added
resultView=TO_STRING|JSON|DEBUG|NONEtoinvoke_java_method, reporting additional result fetch status separately from method execution status.
Upgrading
Upgrade both the IDEA plugin and target JVM Agent to 5.3.0. Remote applications need an Agent replacement and restart to use the new Groovy debugging, logs, and SQL endpoints. Automatic hot reload settings also affect only subsequent application starts.
A successful HotSwap MCP response means the request was submitted. Confirm compilation and reloading in IDEA. See MCP Workflow for the current limits.
5.2.0 (2026-08-24)
- Added Forest hot reload support by @wangqiqi95
- Significantly improved HTTP URL search response speed
- Improved the auto-attach ready indicator when multiple projects start simultaneously
- #299 - Added zooming and bidirectional docking to the method invocation page
- #300 - Added one-click cURL copying for method invocations and HTTP requests
- Adapted MCP tool descriptors for IntelliJ IDEA 2026.2+
- #265 - Added JAX-RS URL search support
- #298 - Added GBase database support to SQL printing by @ayuayue
- Added support for
@FeignClientannotation configuration when scanning URLs by @javalover123 - #302 - Added stored procedure support to SQL printing by @javalover123
- #304 - Preserved
/* block comments */when the SQL print format is set toCompressby @javalover123 - #297 - Fixed the full request URL not being visible and mouse-wheel scrolling not working under Actual Request in invocation history and HTTP debugging by @wangqiqi95
5.1.0 (2026-07-13)
- Added support for converting Controller method invocations to HTTP requests
- Integrated with IDEA MCP and added MCP tools for Java method invocation and hot reload
- Improved the method Header UI and interaction experience
- #265 - Added JAX-RS annotation support to URL search
- Fixed an error when searching before the main class module index is ready
- Fixed search not working in tree mode on the invocation history page
- #281 - Fixed configuration lookup failures in multi-environment projects
- #292 - Fixed method invocation failures with newer Sa-Token versions
- #293 - Fixed Spring features becoming unavailable when Spring information was requested too soon after attaching
- #294 - Fixed an occasional Spring Boot startup deadlock when SQL printing was enabled, by @C.
5.0.1 (2026-06-21)
- Added completion for class-type parameters in method invocation.
- Invocation history supports viewing execution results as JSON.
- Added module and project information to the application info shown on hover.
- Optimized the hot deployment and settings home page styles.
- #285 - HTTP method search supports request method prefix filtering.
- #280 - Fixed a bug where SQL history was shared between multiple applications with the same name.
- #282 - Fixed a bug where restarting an application with auto attach enabled cleared the filled application attachment information.
- #283 - Fixed a bug where method invocation failed when the
RequestContextHolderclass did not exist. - #284 - Fixed a bug where invocation history stayed loading forever for methods that could not be found.
- #287 - Fixed a bug where re-executing a method from invocation records failed after restarting the project.
4.6.1 (2026-04-07)
- Changed to asynchronous class loader retrieval to avoid delays blocking the main IntelliJ IDEA UI process when the application appears to freeze.
- Added support for Spring Boot 2 WebFlux request headers.
- #254 - Added support for Spring Boot 3 request context and header addition.
- #231 - Added support for replacing numeric PathVariable information in URLs with {} for search matching.
- #255 - Fixed a bug where SQL printing configuration could not be modified.
- #258 - Ignored the Gradle daemon when retrieving the JVM list.
- #256 #259 - Fixed the method call icon in IDEA 2026.1 from being hovered over the mouse to being permanently displayed in the header.
- #257 - Fixed a bug in IDEA 2026.1 where the call window would throw an error when retrieving class information.
- #261 - Fixed a bug in IDEA 2026.1 where the call window would throw an error when retrieving method information.
- Fixed a bug in IntelliJ IDEA 2026.1 that caused an error when searching URLs.
- #262 - Fixed a bug where attaching occasionally failed when switching projects.
4.6.0 (2026-03-25)
- Refactored the communication module to ensure that simultaneous calls to multiple methods, hot deployment, and Groovy operations do not interfere with each other.
- Refactored the settings page UI.
- #197 - Added the ability to hot-reload and disable specified plugins by @fat-huhu
- #236 - Fixed a bug where older versions of Spring Boot could not hot-reload a single @RequestParam annotation by @wangqiqi95
- #240 - Fixed a bug where EasyExcel would return a null pointer when setting setHeadRowNumber(0) during hot reload startup by @wangqiqi95
- #249 - Fixed a bug where switching JDK on the M chip in macOS would occasionally fail
- #249 - Fixed a bug in IntelliJ IDEA 2025.3.3+ where 'attach failed: Failed to load agent library: 0' by @wangqiqi95
- #238 - Fixed a bug where selecting a single letter in command style switching would cause an error by @ayuayue
4.5.3 (2026-02-03)
- #200 - Fixed a bug where PostgreSQL placeholder variables were not replaced by @wangqiqi95
- #205 - Added support for converting enumeration parameters of array and generic collection types by @ayuayue
- #210 - Added support for hot reloading of the @RequestParam annotation
- #212 - Added support for regular expression filtering packages and statements in SQL printing by @wangqiqi95
- #214 - Optimized search URL speed by @wangqiqi95
- #218 - Optimized message sending to avoid blocking the IDEA UI process
- #219 - Fixed an occasional NPE bug when switching to a new project
- #226 - Optimized the JVM list retrieval and Attach functions to avoid blocking the UI thread.
- #230 - Optimized quick debug time type to support more formats and automatic conversion by @ayuayue
4.5.2 (2026-01-15)
- #185 - Add configuration for hot reload to retain static variables of class using runtime data.
- #186 - Fixed a bug where JdbcTemplate could not print SQL by @wangqiqi95
- #187 - Fixed a bug where hot deployment of local compilation of VFS would result in a deadlock during synchronous refresh. #190 - Fixed a bug where OpenFeign projects would not start without Mybatis.
- #190 - Fixed a bug where OpenFeign projects would not start without Mybatis.
- #191 - Fixed a bug where dylib would not reload when switching between JDK 8 and JDK 17 on macOS by @wangqiqi95
- #196 - Fixed a bug where SQL could not be formatted when using ServerPreparedStatement.
- #198 - Fixed a bug where searching URLs could not recognize controller annotations inserted into custom annotations by @wangqiqi95 @wangqiqi95
- #202 - Optimized the search URL return style, added a double shift option to display the search URL by @wangqiqi95
4.5.1 (2026-01-06)
- #180 - Added support for file array type parameters when calling Java methods by @ayuayue
- Fixed a bug where OpenFeign and Spring class conflicts caused Spring projects to fail to recognize hot reload.
4.5.0 (2025-12-22)
- #166 - Added support for OpenFeign for hot reload/hot deployment
- #164 - Added log level control by @wangqiqi95
- #167 - Fixed a bug in DM8 that caused a null pointer exception when printing SQL by @wangqiqi95
- #170 - Fixed a bug where breakpoint markers didn't update promptly when starting with the DebugTools executor.
- #172 - Fixed a bug where starting two applications simultaneously on Windows would display DLL file usage, by @ayuayue
- Optimized the hot reload lock mechanism for MyBatis and MyBatisPlus.
- Fixed a bug where hot reload of anonymous inner classes occasionally caused JVM crashes.
4.4.4 (2025-11-24)
- #71 - Added dynamic control over SQL printing configuration
- #154 - Added a semicolon at the end of printed SQL by @javalover123
- #158 - Optimized MethodAround execution performance
- #155 - Fixed a bug where MyBatis hot reload failed when MyBatis and MyBatisPlus were used together by @ruhengChen
- #160 - Fixed a bug where Spring annotation values were null when scanning URLs
- #161 - Fixed a bug where hot reload failed to start after inheriting the GenericFilterBean class
4.4.3 (2025-11-03)
- #150 - Supports JDK 25 hot reload
- #151 - View call results configuration changes via JSON
- #149 - Optimize the debug window
- #153 - Fixed a bug where only one instance of the same URL could be used across different modules
- #152 - Fixed a bug where classes could not be found during the second remote compilation after hot deployment of the same class
4.4.2 (2025-10-15)
- #142 - Supports switching naming formats
- #139 - Supports configuring whether to search for URLs in dependent JARs
- #148 - Supports configuring whether to enable method call logging
- #144 - Fixed a bug causing Spring's BeanCopier hot reload to fail
- #136 - Fixed a bug where single quotes were not escaped when printing SQL, causing SQL print failure. By @fat-huhu
- #137 - Fixed a bug where the order of SQL statements was disrupted when reading from EasyExcel without adding @ExcelIgnore. By @wangqiqi95
4.4.1 (2025-09-29)
- Fixed an issue where the ToolWindow occasionally returned null when switching projects.
- #127 - Optimized hot deployment file scanning and local compilation performance.
- #131 - Optimized the display of contextName information during Tomcat class loading by @iwillmissu
- #129 - Fixed a bug where calling history list operations would block the UI process.
- #35 - Fixed occasional hot reload failure of Jackson when returning Spring data.
- #130 - Fixed a bug where hot reload of entity changes to the resultType in MyBatis XML did not take effect.
- #134 - Fixed a bug where resource file monitoring failed when a resource folder contained only one file and was hot-reloaded simultaneously with a class file.
- #135 - Fixed a bug where controller reload failed in Spring Boot 2.0.x and Spring MVC 5.0.x.
4.4.0 (2025-09-18)
- Support for viewing call log information
- Display the name of the currently attached application in the call parameters window/response information window
- Support for classpath file mode for shortened command lines
- Optimized URL search response speed
- Fixed a bug where Spring interface listeners could not receive events
- Fixed a bug where ReflectUtil in earlier versions of HuTool could not find the getMethodsDirectly method
4.3.1 (2025-09-03)
- Hot deployment supports files in the resource directory
- Hot deployment supports MyBatis XML files
- debug-tools-boot supports passing the process ID as the PID parameter
- Fixed a bug where EasyExcel export styles were lost during hot reload by @wangqiqi95
- Fixed a bug where hot deployment failed in Spring Boot 3.4.5
4.3.0 (2025-08-25)
- Added pre- and post-scripts for calling methods
- Added a double-click/right-click menu to zoom in on SQL statements in trace mode
- Internationalization (English/Chinese) by @ayuayue
- Printing SQL statements supports the DAMO database by @wangqiqi95
- Toggle on and off whether to display the call method button when hovering the mouse over the line by @wangqiqi95
- JDK 11 plugin now supports only JBR 11 and no longer supports TRAVA 11
- Spring Boot DevTools projects now use the RestartClassLoader class loader by default
- Fixed a bug where regex matching failed when passing escaped strings to the call method trace function
- Fixed a bug where dylib loading errors occurred on macOS on M chipsets by @wangqiqi95 @wangqiqi95
- Fixed a bug causing MyBatis Plus 3.5.6 startup failure (by @wangqiqi95)
- Fixed a bug causing hot reload failure in MyBatis Plus 3.5.11+
- Fixed a hot reload failure in mybatis-spring 3.0.4+
- Fixed a bug causing cglib bean startup failure in Spring Boot 3.4.5
- Fixed a bug causing debug-tools-boot to fail to attach due to an incorrect application name being retrieved during remote attachment.
4.2.0 (2025-08-08)
- Added a trace function to display the link duration when calling methods.
- Added a function to display the method call button when hovering the mouse over the line header.
- Added the ability to copy objects to JSON in the right-click menu of breakpoints. By @ayuayue
- Added the ability to print SQL history and save it to a file. By @ayuayue
- Adapted hot reload startup to the IDEA run/debug configurations. By @loong95
- Optimized the MyBatis mapper XML file recognition method. By @loong95
- Optimized the agent startup loading speed.
- Removed the Groovy Console button from the right-click menu.
- Removed the hot deploy button from the launcher and placed it in the ToolWindow.
- Fixed the bug in SQL print time type display by @ayuayue
- Fixed the bug in WSL2 causing XML hot reload failure by @seahoe
- Fixed the bug in mybatis-spring 1.3.2 startup failures.
- Fixed the bug in dynamic-datasource 3+ startup failures.
- Fixed the bug in inner class constructors where the parent class's IoC property was null.
4.1.2 (2025-07-15)
- Fixed the bug of dynamic-datasource4.2+ startup failure
- Fixed the bug of mybatis-spring2.0.2 startup failure
- Fixed the bug of fastjson2 high version not getting getKotlinConstructor method
- Fixed the bug of unable to switch class loader
- Fixed the bug of startup java.lang.NullPointerException: Cannot read field "string" because "utf" is null
4.1.1 (2025-07-09)
- Add ToolWindow quick jump settings and document buttons by @ayuayue
- Add support for hot reload of JDK8 under MacOS aarch64 (M chip) @yaoxinghuo
- Fix the bug that the project cannot be used under MacOS aarch64 (M chip) by @yaoxinghuo
- Fix the bug that hot reload dynamic-datasource is invalid under 4.3+ by @anweicloud
- Fix hot reload MyBatisPlus 3.5.6+ lambdaQuery() failed to obtain when inheriting ServiceImpl
- Fixed the bug that oracle and sqlserver failed to print sql
- Fixed the bug that Spring Class information could not be found in Groovy
- Fixed the bug that the UI was stuck when viewing large json in the return result json mode
4.1.0 (2025-06-27)
- Hot deployment supports modifying MyBatis Mapper files
- Hot deployment supports modifying MyBatis Plus Entity/Mapper files
- Hot reload supports Solon applications
- Calling Java methods supports Solon Bean methods
- Add remote connection configuration function by @anweicloud
- Add printing compression SQL option configuration (Pretty, Compress, No)
- Optimize the logic of calling static methods.
- Optimize the logic of automatic attachment startup application
- Optimize command execution logic
- Fixed the bug that SQL statements cannot be printed under Jdk21
- Fixed the bug of StackOverflowError when Jackson deserializes nested classes
- Fixed the bug that the list of attached project class loaders does not refresh when closing ToolWindow
- Fixed the bug that application attachment fails when only automatic attachment is enabled
- Fixed the bug that the status cannot be updated when the remote connection is disconnected
- Fixed the bug that the application project cannot be packaged under jdk21
4.0.1 (2025-06-04)
- Fixed the bug that Exception in thread java.lang.UnsatisfiedLinkError: io.github.future0923.debug.tools.vm.VmTool.getInstances0(Ljava/lang/Class;I)[Ljava/lang/0bject; 的bug(#63)
4.0.0(2025-06-03)
- Added hot deployment function to achieve hot update of remote application code in seconds.
- Added remote dynamic compilation function. When hot deploying and hot reloading, you can choose to compile the code with local Idea or dynamically compile the code with remote application.
- Added default class loader selection function, which allows you to select class loader when performing hot deployment, hot reload, and Groovy scripts
- Added dynamic-datasource dynamic data source
@DSannotation hot reload (#8) - Added hutool hot reload(#48)
- Added Gson hot reload(#49)
- Added EasyExcel hot reload(#46)
- Added FastJson、FastJson2 hot reload(#56)
- Added Jackson hot reload(#50)
- Added hibernate-validator hot reload(#60)
- Refactor the calling method function, remote calling supports hot deployment of classes
- Supports calling internal class methods at more than two levels(#43)
- Automatically attach the application launched in the current project(#58)
- Optimized heartbeat logic
- Optimize http timeout
- Fixed the bug that RuntimeExceptionWithAttachments:Read access is allowed from inside read-action only(#38).
3.4.4 (2025-04-22)
- Support IntelliJ IDEA 2025.1 version (#37).
3.4.3 (2025-04-01)
- Fixed the problem that there is only one Controller under the folder File renaming hot reload failed BUG (#31).
- Modify JDK21 hot reload startup failure BUG (#30).
- Modify WebFlux can not call BUG (#29).
3.4.2 (2025-03-17)
- Add button to trigger compilation XML File to trigger (#21).
- Fix the bug that hot reload cannot be triggered when the Controller file is renamed (#23).
- Fix the bug that failed to connect to the remote application (#27).
3.4.1 (2025-02-27)
- Fix ConcurrentModificationException when multiple MyBatis Mappers are hot reloaded BUG (#20).
3.4.0 (2025-02-20)
- Hot reload supports static variables, static final variables, and static code blocks (#10).
- Hot reload supports Enum (#10)
- Fixed the bug that non-Bean classes cannot be called in Spring environment (#16).
3.3.0 (2025-02-11)
- Hot reload supports MyBatis Plus to add Entity, modify Entity, add Mapper, modify Mapper, add xml, modify xml.
- Hot reload supports MyBatis to add Mapper, modify Mapper, add xml, modify xml.
- Add the function of executing the last time through the default class loader (#12).
- Fixed the bug that Maven commands cannot be executed when SQL printing is turned on (#7).
3.2.0 (2025-01-09)
- Added hot reload function to make the written code effective without restarting the application.
3.1.2 (2024-12-30)
- Fix the bug that failed to remove ContextPath (#3).
- Fix the bug that multiple projects share an additional button (#4).
3.1.1 (2024-12-18)
- ContextPath information can be removed when searching for http urls
- Fix the bug that domain names cannot be matched when there is no http(s)
3.1.0 (2024-12-17)
- Added the function of searching http url.
- Fixed the bug that the default class loader cannot be obtained when Groovy is executed in remote application.
- Fixed the bug that DebugToolsClassLoader repeatedly loaded the AppClassLoader base package, causing an exception to be thrown when using DefaultClassLoader.
- Optimize log printing (#2)
3.0.1 (2024-12-12)
- Support IntelliJ IDEA 2024.3 version.
- Fix the bug that Groovy cannot get the default class loader when executing in remote application.
3.0.0 (2024-11-01)
- Add the function of calling remote application methods.
- Add the function of selecting class loader when calling methods.
2.3.0 (2024-09-19)
- Add groovy console, which can quickly execute code through the target application
- Add debug mode to quickly copy name and value
- Add attach The application can disconnect and stop the service
2.2.0 (2024-08-28)
- Support toString, json, debug to view the return result
- Support console, debug to view the exception information
- Support org.springframework.web.multipart.MultipartFile type parameter input
- Optimize the plugin style
- Fix the recursive stack overflow exception when the parameters are nested
2.1.0 (2024-08-19)
- Support 2024.2 version
- Support calls in non-Spring environments
- Support passing xxl-job parameters
- Support more parameter passing
- request (MockHttpServletRequest)
- response (MockHttpServletResponse)
- file (absolute path to File object)
- class (class full name to Class object)
- Optimize the window parameter logic
2.0.1 (2024-08-09)
- Fixed the bug that the heartbeat is too short and causes the business execution to be interrupted
- Fixed the bug that the exception information is not printed completely
2.0.0 (2024-08-06)
- Added interactive logic to support the caller to view the execution results and error information.
- Fixed the bug that the SQL print display error is NULL.
1.2.1 (2024-06-13)
- Added cache cleaning logic
- Added the exception return information of failed execution
- Optimized the request header parameter input logic
- Fixed the bug that the batch operation cannot print SQL
1.2.0 (2024-06-07)
- Optimized the core library loading logic
- Added the function of printing SQL statements and time consumption
- Fixed the bug that the library loading failed under window
1.1.1 (2024-06-04)
- Added a custom class loader to separate the target application
- Fixed the StackOverflowError when the collection type BUG
1.1.0 (2024-05-30)
- Add call configuration information
- Add request header parameter passing
1.0.0 (2024-05-29)
- Can call any Java method and support parameter passing