Skip to content

2.1.0-RELEASE

Compare
Choose a tag to compare
@ferdiknight ferdiknight released this 27 Jun 18:52

Feature

  • Add two run modes :

    • agent-launcher :
      Start XPocket with agent-launcher mode with command,e.g sh xpocket.sh -run_mode agent-launcher -pid 1 -port 9527. XPocket will attach the xpocket-agent to the target process, and start a telnet-server with port that be defined in args (Default : 9527). It will load all on-attach mode Java Agent Plugins. Then start a telent-client UI in current terminal.
    • once : Start XPocket with once mode with command,e.g sh xpocket.sh -run_mode once "echo test".XPocket will start,and run command echo test.And the process exit directly.
  • Revised XPocket Plugin SPI

    • Add a new interface XPocketAgentPlugin to define initial operation for a new type of plugin - XPocketAgentPlugin.
<dependency>
  <groupId>com.perfma.xlab</groupId>
  <artifactId>xpocket-plugin-spi</artifactId>
  <version>2.1.0-RELEASE</version>
</dependency>
  • Revised XPocket Framework SPI
    • Add a new start method in UIEngine|MainUIManager on purpose transfering Instrumentation object for XPocketAgentPlugins.
    • Add a new loadPlugins method in PluginLoader|PluginManager on purpose transfering Instrumentation object for XPocketAgentPlugins.
<dependency>
  <groupId>com.perfma.xlab</groupId>
  <artifactId>xpocket-framework-spi</artifactId>
  <version>2.1.0-RELEASE</version>
</dependency>
  • XPocket-SDK
    • Add a new module xpocket-sdk. This module will be used by developers for Testing/Debugging developing-plugins. It can run your plugin in the IDE.
<dependency>
  <groupId>com.perfma.xlab</groupId>
  <artifactId>xpocket-sdk</artifactId>
  <version>2.1.0-RELEASE</version>
</dependency>
  • XPocket Plugin Archtype
    • Setup a maven archtype for plugin developers.
<dependency>
  <groupId>com.perfma.xlab</groupId>
  <artifactId>xpocket-plugin-archetype</artifactId>
  <version>2.0.1-RELEASE</version>
</dependency>
  • XPocket-JLine

    • Add a new module xpocket-jline. The module integrates jline2 & jline3 for comprehensive using of ConsoleReader in jline2.
  • A new render algorithm for default AsciiArt logo has been used. Now new logo will like this:

       _   _    _    _____   _____    ____
      | | | |  | |  / ____| |  __ \  |  _ \
      | | | |__| | | (___   | |  | | | |_) |
  _   | | |  __  |  \___ \  | |  | | |  _ <
 | |__| | | |  | |  ____) | | |__| | | |_) |
  \____/  |_|  |_| |_____/  |_____/  |____/

Bugfix

  • Input keyboard operation has missed when some plugin running in full-screen mode (Just like top). Now XPocket will transfer this operations to target plugin correctly.
  • Now XPocket will switch thread context classloader with correct XPocketPluginClassLoader when plugin is initialing and running.

Reference

Issues: https://github.com/PerfMa/xpocket/milestone/1?closed=1
[#17] FEATURE: 目标进程统一agent控制,统一管理目标进程与XPocket进程的通讯
[#14] FEATURE: XPocket插件开发SDK,提供直接启动入口,在IDE中直接调试开发中的插件
[#15] BUG: 执行过程中的用户输入未正确传递的问题