forked from jfager/jdiscript
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
14 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,32 @@ | ||
A scripting interface for the Java Debugger Interface (JDI). | ||
A scripting frontend for the Java Debugger Interface (JDI). | ||
|
||
An example of a real-world use case is available in a post | ||
[introducing jdiscript](http://jasonfager.com/888-introducing-jdiscript/), which finds thread | ||
contention in the [Cassandra](http://cassandra.apache.org/) write path. At this point Cassandra | ||
itself has moved on, but the jdiscript stuff is still correct. | ||
|
||
Right now, jdiscript provides: | ||
|
||
- An event-loop/dispatcher that allows you to specify handlers to respond to | ||
events from particular EventRequests. | ||
|
||
- A set of interfaces and a dynamic proxy for chaining Request configuration | ||
method calls. | ||
|
||
- A set of single-method handler interfaces that are easy to implement as | ||
closures in several of the higher-level languages. | ||
closures in other languages available on the jvm. | ||
|
||
- Utility classes for launching a new VM and handling its process input and | ||
output, or attaching to an existing VM. | ||
|
||
- A top-level script object that allows transparent use of jdiscript features | ||
and easy access to frequently used operations. | ||
|
||
- A top-level script object that allows easy access to frequently used operations. | ||
|
||
jdiscript is intended to be used by whichever higher-level JVM language you | ||
prefer, and is itself pure Java, with no dependencies outside of jdk6. Some | ||
sample Groovy scripts are provided to get you started, but there's no reason | ||
you couldn't use JRuby, Clojure, Scala, etc. If you run into problems with | ||
jdiscript is pure Java, with no dependencies outside of jdk6/7. Some | ||
sample scripts in other languages are provided to get you started, including | ||
Groovy, JRuby, Clojure, and Scala. If you run into problems with | ||
your language of choice, or you have ideas for how a common idiom in your | ||
language could be better supported by the underlying Java implementation, | ||
please let me know. | ||
|
||
I'd also love to start collecting generally useful scripts into one place, and | ||
I'd also like to start collecting generally useful scripts into one place, and | ||
creating a comprehensive debugging catalogue that anyone can dip into to help | ||
troubleshoot their code more efficiently. If you have one you'd like to share, | ||
drop it into a gist and link to it from the [wiki page](http://wiki.github.com/jfager/jdiscript/useful-jdiscripts). | ||
|
||
If you'd like to discuss jdiscript, a [mailing list](http://groups.google.com/group/jdiscript) is up over at Google groups. All feedback welcome and requested. | ||
|
||
drop it into a gist and I will link to it from the | ||
[wiki page](http://wiki.github.com/jfager/jdiscript/useful-jdiscripts). |