Closed
Bug 328901
Opened 18 years ago
Closed 18 years ago
Split MozillaInterfaces.jar
Categories
(Core Graveyard :: Java to XPCOM Bridge, defect)
Core Graveyard
Java to XPCOM Bridge
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: jhpedemonte, Assigned: jhpedemonte)
References
Details
Attachments
(2 files, 1 obsolete file)
14.02 KB,
patch
|
benjamin
:
review+
|
Details | Diff | Splinter Review |
1014 bytes,
patch
|
benjamin
:
review+
|
Details | Diff | Splinter Review |
It would be best to split MozillaInterfaces.jar, in order to make it more maintainable from the client side of things. Here's what I have in mind: * MozillaGlue.jar (or XPCOMGlue.jar, whatever) - This jar would be roughly equivalent to xpcomglue.dll. It would contain all the bootstrapping code to find a valid XULRunner install and start embedding, as well as the convenience methods like |GetComponentManager|, etc. The code would be forward compatible like the current glue code is. * MozillaInterfaces.jar - Roughly equivalent to the C headers in the SDK. This jar would just contain the Java-fied public Mozilla interfaces. In fact, this could be split into two separate jars, one each for frozen and non-frozen interfaces. This might help clients mostly stick to frozen interfaces, and they would be guaranteed that using a given version of the frozen interfaces jar would work with future XULRunner releases. Or, instead of separating the interfaces into different jars, we could add a comment for all of the frozen interfaces. Unfortunately, since I use the nsInterfaceInfoManager to generate the Java interfaces, there is no easy way to differentiate between frozen and non-frozen interfaces. And in order to switch back to using xpidl.exe, some bugs need to be fixed (such as bug 324026).
Assignee | ||
Comment 1•18 years ago
|
||
This patch splits the jar into MozillaGlue.jar and MozillaInterfaces.jar. This also sets up some make rules for creating a Java library. Unfortunately, due to lack of foresight on my part, this patch requires doing some CVS moves of the code (who handles that?): cvs move extensions/java/xpcom/interfaces/*.java extensions/java/xpcom/interfaces/org/mozilla/xpcom/ cvs move extensions/java/xpcom/XPCOMException.java extensions/java/xpcom/interfaces/org/mozilla/xpcom/ cvs move extensions/java/xpcom/gen-nsError.pl extensions/java/xpcom/interfaces/ cvs move extensions/java/xpcom/XPCOMJavaProxy*.java extensions/java/xpcom/src/org/mozilla/xpcom/interal/ cvs move extensions/java/xpcom/src/*Impl.java extensions/java/xpcom/src/org/mozilla/xpcom/internal/ cvs move extensions/java/xpcom/*.cpp extensions/java/xpcom/src/ cvs move extensions/java/xpcom/*.h extensions/java/xpcom/src/ cvs remove extensions/java/xpcom/XPCOMPrivate.java cvs remove extensions/java/xpcom/build
Assignee | ||
Comment 2•18 years ago
|
||
Comment on attachment 213512 [details] [diff] [review] patch bsmedberg, what do you think of this split? As I mentioned previously, eventually it would be good to also split the interfaces into a frozen and a non-frozen jar (but other bugs need to be fixed before that can happen).
Attachment #213512 -
Flags: review?(benjamin)
Comment 3•18 years ago
|
||
Comment on attachment 213512 [details] [diff] [review] patch I'll get to this Thursday, hopefully.
Assignee | ||
Comment 4•18 years ago
|
||
Hmm, looks like I never tested this on Win32. For that to work, I had to put quotes around the _JAVA_SOURCEPATH and _JAVA_CLASSPATH values, as well as to prepend "$(CYGWIN_WRAPPER)" to the $(JAVAC) line.
Assignee | ||
Comment 5•18 years ago
|
||
This patch is based on the xpidl patch from bug 333618. Cleans up the rules from the previous patch. The CVS moves from comment #1 still apply.
Attachment #213512 -
Attachment is obsolete: true
Attachment #226653 -
Flags: review?(benjamin)
Attachment #213512 -
Flags: review?(benjamin)
Comment 6•18 years ago
|
||
Comment on attachment 226653 [details] [diff] [review] patch using xpidl (checked in) >+## > # Temporarily copy these not only to dist/sdk/lib but to dist/bin/sdk/lib >+## > > TEMP_SDK_DIR = $(DIST)/bin/sdk/lib > > $(TEMP_SDK_DIR):: > $(NSINSTALL) -D $@ Remove this now that we're releasing SDKs again?
Attachment #226653 -
Flags: review?(benjamin) → review+
Assignee | ||
Comment 7•18 years ago
|
||
Checked in to trunk, and seems to be building fine on Linux XULRunner tbox. ->FIXED
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 8•18 years ago
|
||
The jars aren't getting properly copied into the SDK. I set NO_DIST_INSTALL to prevent MozillaGlue.jar from getting copied to dist/bin, but this also prevents them from getting copied to dist/sdk/lib. Benjamin, is this patch the correct way to handle this?
Attachment #240353 -
Flags: review?(benjamin)
Comment 9•18 years ago
|
||
Comment on attachment 240353 [details] [diff] [review] sdk copy patch (checked in) That's not a bad way to do it.
Attachment #240353 -
Flags: review?(benjamin) → review+
Assignee | ||
Updated•18 years ago
|
Attachment #240353 -
Attachment description: sdk copy patch → sdk copy patch (checked in)
Assignee | ||
Updated•18 years ago
|
Attachment #226653 -
Attachment description: patch using xpidl → patch using xpidl (checked in)
Updated•10 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•