gecko-dev/java/xpcom/TODO
frankm%eng.sun.com 9f88f309ff Some cleanup, and update to new mozilla source. In particular:
- Removed #if 0 code in genproxy.c and elsewhere.

- Used jlong_* macros for portability (and defined in xpjava.h if not
  elsewhere)

- Commented out calls to PR_Atomic{In,De}crement in JSSample.cpp, and began
  to use "official" XPCOM macros.

- Removed Java interfaces for test components; will be autogenerated by
  xpidl and/or genproxy.

- Extend genproxy to generate interfaces.

- Updated README with note on the jni.h problem
1999-09-14 21:56:19 +00:00

93 lines
2.1 KiB
Plaintext

TODO
====
(By no means complete ...)
Configuration
-------------
-- *GET XPCTest WORKING*. For some reason, the JDK 1.2 JVM on Solaris
won't load libxpcom.so correctly, even if it's on LD_LIBRARY_PATH. I
have yet to confirm whether this is a problem on Linux or NT.
[Done 13 Aug 1999]
-- Make Java compilation work correctly on Unix/Linux.
-- Better integration with Mozilla makefile/autoconf system.
-- Move XPCOM startup code to test programs.
-- Integrate into Java Plugin and test.
-- File and function renaming, to prevent conflicts and increase modularity.
Registration and Activation
---------------------------
-- Insure JNI libraries load and unload, even within JNI plugin
-- Derive proxy class from IID, and vice-versa
-- Generate static proxies (using genproxy)
-- Generate and load "on-the-fly" bytecode for proxy classes.
Marshalling
-----------
-- Verify nsID parameters are marshalled correctly.
-- Unwrap proxies used as "in" parameters.
-- Wrap "out" XPCOM objects in correct wrapper class. [dep: Proxy Generation]
-- Build C++ stubs for Java-implemented XPCOM objects. [big task?]
-- [Future] Allow mapping from native concrete type to Java types
-- [Future] Efficient handling of attributes and 0- or 1-arg methods.
-- [Future] Reflection API (if Java's is insufficient)
NSRESULTs
---------
-- Throw exceptions for error codes
-- Design and implement "success code mechanism", for single-threaded case
-- Store success codes per thread, and retrieve for current threads.
API
---
-- Write proxy for ns[I]ComponentManager, by hand. (For performance,
and because of the overloaded methods and lack of XPT.)
-- Write proxy for ns[I]ServiceManager, similar to above.
-- Throw exceptions for unknown or missing proxy classes (and other errors).
-- Implement XPCOM identity rules
-- Document (including Javadoc)
Memory Management
-----------------
-- Insure that temporary heap memory (esp. strings and nsIDs) is
recycled.
-- Insure reference-counting rules aren't violated.
-- Cache previously allocated wrapper objects, to prevent unnecessary
allocation.
-- Thread-safe object release