Get BlackConnect to Work with Latest Version of Mozilla

RESOLVED WONTFIX

Status

Core Graveyard
Java to XPCOM Bridge
RESOLVED WONTFIX
15 years ago
3 years ago

People

(Reporter: Brad Neuberg, Assigned: Brad Neuberg)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(12 attachments, 1 obsolete attachment)

(Assignee)

Description

15 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.2a) Gecko/20020910
Build Identifier: Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.2a) Gecko/20020910

BlackConnect, the Java-XPCOM bridge, hasn't been worked on for about two years.
 This RFE involves getting it to use the newer Autoconf build system to build
and changing it to be able to work with the latest version of Mozilla (1.3a at
this time).

Reproducible: Always

Steps to Reproduce:
1.
2.
3.
Per Brad's request....
Assignee: idk → bkn3
Status: UNCONFIRMED → NEW
Ever confirmed: true
(Assignee)

Comment 2

15 years ago
I believe that Igor is no longer working on the codebase; I was told that Sun
disbanded the Blackwood team and orphaned the project.
There is also a patch somewhere in an open bug.
(Assignee)

Comment 4

14 years ago
Created attachment 128396 [details]
connector.patch 2003_07_22
(Assignee)

Comment 5

14 years ago
Created attachment 128397 [details]
java_config.patch 2003_07_22
(Assignee)

Comment 6

14 years ago
Created attachment 128398 [details] [diff] [review]
patch to set referrers in history
(Assignee)

Comment 7

14 years ago
Created attachment 128399 [details]
java_xpcom_root.patch 2003_07_22
(Assignee)

Comment 8

14 years ago
Created attachment 128400 [details]
mozilla_root.patch 2003_07_22
(Assignee)

Updated

14 years ago
Attachment #128396 - Attachment description: 2003_07_24 patch → connector.patch 2003_07_22
(Assignee)

Updated

14 years ago
Attachment #128397 - Attachment description: 2003_07_24 patch → java_config.patch 2003_07_22
(Assignee)

Updated

14 years ago
Attachment #128398 - Attachment description: 2003_07_24 patch → java_side.patch 2003_07_22
(Assignee)

Updated

14 years ago
Attachment #128399 - Attachment description: 2003_07_24 patch → java_xpcom_root.patch 2003_07_22
(Assignee)

Updated

14 years ago
Attachment #128400 - Attachment description: 2003_07_24 patch → mozilla_root.patch 2003_07_22
(Assignee)

Comment 9

14 years ago
Created attachment 128401 [details]
sample.patch 2003_07_22
(Assignee)

Comment 10

14 years ago
Created attachment 128402 [details]
thread-test.patch 2003_07_22
(Assignee)

Comment 11

14 years ago
Created attachment 128403 [details]
wrappers.patch 2003_07_22
(Assignee)

Comment 12

14 years ago
Created attachment 128404 [details]
xpcom_side.patch 2003_07_22
(Assignee)

Comment 13

14 years ago
Created attachment 128405 [details]
xpidl.patch 2003_07_22
(Assignee)

Comment 14

14 years ago
I have made significant progress in forward-porting BlackConnect to Mozilla 1.4
and JDK 1.3.1_06 over the last few months.  Source and binary builds are
available at http://java.mozdev.org/blackconnect, which I would like to be the
new repository for BlackConnect news, source, and builds.  Sun, the initial
developer of BlackConnect, has not maintained the project since 2001 or updated
their <a href="http://www.mozilla.org/projects/blackwood/connect/">info
page</a>.  This repository is part of a <a href="http://java.mozdev.org">larger
initiative</a> started by Kevin Burton and I to more deeply integrate Java and
the Mozilla XUL technologies; news and info on this initiative can be found at
java.mozdev.org.

The last time BlackConnect built and work was with Mozilla M4 in 2001.  Here is
a summary of the changes I have made to get things working and the current
status of the system:

BlackConnect has been forward-ported to Mozilla 1.4 on the Windows platform
only. Creating Java XPCOM components now works and can be called from JavaScript
and C++, and calling XPCOM components from Java also works. BlackConnect only
works correctly on debug, non-optimized builds.  BlackConnect's build system has
been fully forward-ported to Mozilla's modern build system, not the old Mozilla
system that was used on M4. Exceptions need more robust testing, thread-safety
seems to be correct (I created a unit test to test for this).  Passing null
values currently does not work.  A new Java build system has been integrated
into Mozilla's build system that makes creating Java XPCOM components very easy.
 Code has been added to pass human-friendly error messages when XPCOM exceptions
are thrown over the BlackConnect boundary, but needs to be tested more fully.  A
tutorial has also been added to the README file stepping the user through
creating their own Java XPCOM components and calling XPCOM components written in
other languages from Java.

Known issues:

* BlackConnect has serious breakage when run
  against optimized, non-debug builds; however,
  it runs fine when run against non-optimized,
  debug builds.  Can't figure out why.
* The following types are used in IDL but are
  either not currently supported by the bridge
  or haven't been tested:
	* AString (not supported)
	* ACString (not supported)
	* AUTF8String (not supported)
	* DOMString (not tested)
	* IID, CID, and ContractID ptr and ref types (not tested)
	* nsIID (not supported)
* BlackConnect does not currently build on Linux, Solaris,
  and OS X.  The Makefile.in's need to be 
  updated to get this going.
* BlackConnect probably doesn't work with
  internationalized file systems, where the component name 
  or the pathname is Unicode.
* Earlier code from Sun might not be triple licensed
  under LGPL/GPL/MPL, since it was developed when
  Mozilla was at release M4 (2001).
* Right now running an applet with a BlackConnect enabled
  build of Mozilla fails; this is because we are linking
  right to the jvm.dll and not through OJI (Open Java Interface).
* Giving a null value to a Java XPCOM component does not work
  (such as calling "JavaComponent.Foo(null);" from JavaScript on
  a Java XPCOM component. 

I have attached the following patch files to this bug:
* java_config.patch - Changes made to mozilla/config to deeply integrate using
Java as an XPCOM technology (see the README file for details on how to use this
Java build system).
* mozilla_root.patch - Changes made to mozilla/Makefile.in and
mozilla/allmakefiles.sh to provide awareness of BlackConnect and a
MOZ_BLACKCONNECT build flag
* java_xpcom_root.patch - Changes made to files located in the root of the
mozilla/java/xpcom directory.  Basicly this
is the README, RecentChanges, and makefile.in files.
* java_side.patch - Changes made to mozilla/java/xpcom/java, which is the Java
side of the XPCOM bridge.
* xpcom_side.patch - Changes made to mozilla/java/xpcom/xpcom, which is the
XPCOM side of the bridge
* connector.patch - Changes made to mozilla/java/xpcom/connect, which has XPCOM
code to link the two sides of the bridge.
* wrappers.patch - Changes made to mozilla/java/xpcom/wrapper, which has various
XPCOM wrappers needed by the bridge.
* sample.patch - Changes made to mozilla/java/xpcom/sample, which contains a
sample Java XPCOM component referenced by the tutorial in the README.
* thread_test.patch - Changes made to mozilla/java/xpcom/thread-test, which
contains a unit test to ensure that the BlackConnect bridge is thread-safe and
correctly proxying thread-calls over the BlackConnect boundry.

I have also attached the following files to this bug:
* README - The readme file accompanying BlackConnect; read this to get a good
scope of where we are at and what remains to be done to get BlackConnect stable,
documentation on the technical layout of BlackConnect, and a tutorial on how to
use the system as a developer.
* blackconnect_src_2003_07_24.tar.gz - A source-drop of just the BlackConnect
module.
* blackconnect_patches_2003_07_24.tar.gz - Grab all the patches at once to look
them over.
* RecentChanges - a list of files added, changed, and deprecated.

The URP (UNO Remote Protocol) portion of the bridge (mozilla/java/xpcom/urp) has
not been touched or forward ported; this portion of the bridge was created to
make interacting with UNO, the OpenOffice component technology, easier.  This
portion of BlackConnect is not well-documented.  There are also a set of unit
tests in mozilla/java/xpcom/test that have not been touched either; these are
also not documented and very complex, with many recursive directories.
(Assignee)

Comment 15

14 years ago
Created attachment 128407 [details]
README 2003_07_22
(Assignee)

Comment 16

14 years ago
Created attachment 128408 [details]
RecentChanges 2003_07_22
(Assignee)

Updated

14 years ago
Attachment #128408 - Attachment description: README 2003_07_22 → RecentChanges 2003_07_22
(Assignee)

Comment 17

14 years ago
Created attachment 128409 [details]
blackconnect_patches_2003_07_24.tar.gz
(Assignee)

Comment 18

14 years ago
Note that the work I did depends a great deal on some patches posted by Marcus
Fellinger in bug 124606 and bug 123651 in order to get Mozilla's build system
and xpidl compilers more up to date in relation to the Java-XPCOM bridge. The
patches I posted actually pick up these changes since they were never merged
into the main BlackConnect branch.  Thanks Marcus, especially for your
Java/XPCOM xpidl work.
(Assignee)

Comment 19

14 years ago
Note that the work I did depends a great deal on some patches posted by Marcus
Fellinger in bug 124606 and bug 123651 in order to get Mozilla's build system
and xpidl compilers more up to date in relation to the Java-XPCOM bridge. The
patches I posted actually pick up these changes since they were never merged
into the main BlackConnect branch.  Thanks Marcus, especially for your
Java/XPCOM xpidl work.

Comment 20

13 years ago
What's the status of this? Any chance of hitting 1.8a with it?
(Assignee)

Comment 21

13 years ago
Andrew, I have stopped work on this and am looking for a new maintainer.

Comment 22

13 years ago
Darn. Okay. 

Here's an interesting Usenet post. It says that getting BlackConnect working
would be a big boost in our competitiveness, especially with Longhorn coming out.

http://groups.google.com/groups?selm=408F3891.7030302%40cox.net

Updated

13 years ago
Attachment #128398 - Attachment description: java_side.patch 2003_07_22 → patch to set referrers in history
Attachment #128398 - Attachment filename: java_side.patch → foo
Attachment #128398 - Attachment is obsolete: true
Attachment #128398 - Attachment is patch: true
Blackconnect no longer builds and hasn't been worked on since 2001.  -> WONTFIX
Status: NEW → RESOLVED
Last Resolved: 12 years ago
Resolution: --- → WONTFIX
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.