Help With The 'Blackwood' Project
Monday September 20th, 1999
Frank Mitchell of Sun has a request for any coders out there interested in helping with the Blackwood project - specifically the enabling of Java-based components in Mozilla. Frank writes:
"If you've been reading netscape.public.mozilla.xpcom, you may notice my posting on the problems we -- or should I say 'I' -- are having on the XPCOM-Java Bridge part of Blackwood. Right now, we're severely understaffed.
So, I'm asking for some volunteers to help finish implementing the bridge. The code is in mozilla/java/xpcom; it's available by checking out that directory (which is all you need if you have Mozilla already), or by checking out Blackwood (or SeaMonkeyBlackwood for SeaMonkey + Blackwood) to get all the Blackwood code.
Remaining tasks include:
- Generating a Java proxy class on-the-fly for each XPCOM interface.
- Generating an instance of a Java proxy to wrap a C++ object, based on the interface being exposed.
- Mapping a Java object back to the C++ object it proxies for, if any.
- Building a subclass of nsXPTCStubBase to act as a proxy for Java XPCOM objects.
- Detecting whether a Java object is a proxy to be unwrapped, or a real Java object to be wrapped.
- Insuring that each Java object has at most one C++ proxy instance. (And vice versa, although that might require weak references, which are only available in Java 2 ...)
- Completing the method dispatch code, which currently doesn't handle nsIDs and interfaces. (The former is a simple addition, the latter requires a small amount of work.)
- Writing similar method dispatch code for C++ to Java, perhaps after abstracting out bits of the Java to C++ code.
- Making method calls, particularly refcounting, thread-safe.
- Fixing leaks, and debugging in general.
If anyone is interested, please email email@example.com; tell me what you want to work on, and how much time you think you can afford to spend on it, so I know which areas are covered. Also send me any questions about the project or the code base; I realize that the website docs and READMEs are sketchy right now, and there's a lot of design assumptions that I haven't -- yet -- committed to HTML or code.
I'd highly recommend that you post this request to the JavaLobby site at <http://www.javalobby.org> . I'd wager there are more people there who might be available to help.