I'm working on a kind of spy++ and I need to add java support. (any type of GUI)

I need to :

1- inject some code into a *JAVA* application at runtime (I already do this for native, .NET, WPF etc..)
2- Get the architecture of the user interface (the type of control with the parent-child hiercharchy)
3- Get all possible properties for a specific *JAVA* control. By example getting the text of a text button or the list of items of a listView


1- Is there any C++/C#/Java example of injecting java code into another java process ?
2- Is there any java equivalent for interprocess native window message with SendMessage (ex: LVM_GETITEMS to get listview items)
3- Is there any java equivalent for MS .Net Control.FromHandle() Is it possible to get an access to a control instance once i'm injected into the java process?
4- Can you point me to some interresting things to accomplish my particular tasks? (code injection and getting properties)

I just need something to start with.... I have not many chances to work more with java until now

Is there a better place to post this kind of question?