Releases: PerfMa/xpocket
2.1.2-alpha
Feature
- Add one run mode :
-
mxbean : Start XPocket with mxbean mode with command,e.g sh xpocket.sh -run_mode mxbean -port 9528 -timeout 60.XPocket will start a quiet mxbean server, and can invoke commands with java mxbean remote call.
-
code example
invoke operation is used to invoke a command, xpocket only invoke the first command in the param list in this version.
stop operation is used to stop the xpocket mxbean server. when the server has accepted this operation,it will kill itself after 1s.
-
JMXServiceURL url = new JMXServiceURL(String.format("service:jmx:rmi:///jndi/rmi://localhost:%s/server",9528));
JMXConnector jmxConnector = JMXConnectorFactory.connect(url);
MBeanServerConnection msc = jmxConnector.getMBeanServerConnection();
ObjectName xpocketObjectName = new ObjectName("XPocket:name=xpocket");
String s = (String)msc.invoke(xpocketObjectName, "invoke", new String[]{"jps"}, null);
System.out.println(s);
System.out.println(msc.invoke(xpocketObjectName, "stop", null, null));
- Add scroll command collection :
- support groovy script in current version.
- scroll list list all loaded scroll in current xpocket session.
- scroll compile compile a script or script file to scroll. -name and -ns is both required, the compiled scroll is marked as name@ns for unique. scroll compile -name scrollname -ns scrollnamespace [-t type Default:groovy] [-output path] [-F file or script]
- scroll exec execute a script or script file or a compiled scroll file or a loaded scroll.scroll exec [-script -t type Default:groovy] [-F file or script]
- command example
scroll compile -name demo -ns xpocket "exec(\\"jps\\");"
scroll compile -name demo -ns xpocket -F ./demo.groovy
scroll compile -name demo -ns xpocket -F ./demo.groovy -output ./demo.scl
scroll exec -script "exec(\\"jps\\");"
scroll exec -script -F ./demo.groovy
scroll exec -F ./demo.scl
scroll exec demo@xpocket
Bugfix
Reference
Issues:
[#41] FEATURE: [scroll] groovy support in xpocket.
[#40] FEATURE:mxbean mode for integrated applications
2.1.1-RELEASE
Feature
-
Add one run mode :
- telnet : Start XPocket with telnet mode with command,e.g sh xpocket.sh -run_mode telnet -port 9527.XPocket will start a quiet telnet server, and can accept telnet connections.
-
Revised XPocket-SDK
- include lastest version of xpocket-runtime
<dependency>
<groupId>com.perfma.xlab</groupId>
<artifactId>xpocket-sdk</artifactId>
<version>2.1.1-RELEASE</version>
</dependency>
- New module XPocket-Tools
- release a new module xpocket-tools as a tool kit for plugin developers.
<dependency>
<groupId>com.perfma.xlab</groupId>
<artifactId>xpocket-tools</artifactId>
<version>2.1.1-RELEASE</version>
</dependency>
Bugfix
- Now XPocket will not load plugins when every telnet session is created. It only load once when XPocket is starting.
Reference
Issues: https://github.com/PerfMa/xpocket/milestone/2?closed=1
[#32] BUG:XPocket will load plugins when every telnet session connected.
[#33] FEATURE: Support telnet mode
[#34] FEATURE: Need a tools kit for running native commands
2.1.0-RELEASE
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.
- agent-launcher :
-
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: 执行过程中的用户输入未正确传递的问题
2.0.1-SNAPSHOT
- 新增运行模式选项,在运行脚本时通过 -run_mode xxx 指定运行模式
- 目前默认支持的模式为:
- DEFAULT 默认命令行交互模式
- ONCE 单次执行即退出模式,例如 sh xpocket_jdk8.sh -run_mode once "jps | grep XPocket | split -i 0"
2.0.0-RELEASE
First release for XPocket opensource.