Closed Bug 32011 Opened 25 years ago Closed 6 years ago

Webclient not ready for UNO

Categories

(Core Graveyard :: Java APIs to WebShell, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: edburns, Assigned: edburns)

Details

(Whiteboard: suntrak-n6, oji_working)

Attachments

(3 files)

Webclient isn't ready for being integrated into StarOffice.

At first, I thought we'd have to do some complicated #ifdef thing where we 
would define alternate function declarations for all the JNI functions.  Now I 
see that we can just leave the JNI function declarations as they are and use 
function pointers to make it easier to call them from UNO.  The trick is to 
replace all callsites where a function is invoked from a JNIEnv pointer with 
function calls to functions in jni_util.h.  The implementations of these 
functions will use #ifdef logic to do the right thing whether in UNO or JNI 
contexts.

Patch forthcoming.
Of course, webclient.dll will always have to be compiled with jni headers, even 
when compiling with the UNO style ifdefs.  However, when compiling with the UNO 
style ifdefs, there will be no calls to any JNI functions.  Just the type 
information will be used.
Status: NEW → ASSIGNED
Here's the CVS comment for the patch:

This set of changes replaces all occurrences of 

env->Func(args...)

with 

::util_Func(env, args...)

Except of course, for the implementations of the above mentioned
::util_Func() functions.

This is done to allow the JNI functions to be called from a non JNI
context, such as UNO.
This change enables the current webclient API to be called from native
code.  

It adds makefile and conditional compilation logic.

If the user defines BAL_INTERFACE in their environment before building
webclient, -DBAL_INTERFACE is added to LCFLAGS.  This causes code in
jni_util_export.cpp to behave differently due to the conditional
compilation logic.

I've broken out the 8 functions that are necessary to call into the
Webclient JNI methods into jni_util_export.{h,cpp}.  

I've created a new pair of files, bal_util.{h,cpp} that contain function
declarations and definitions that are used when src_moz is built with
BAL_INTERFACE.  bal_util.obj is not built, nor added to webclient.dll if
building without BAL_INTERFACE.

See the page
http://www.mozilla.org/projects/blackwood/webclient/design/uno-transition.html
for a design document description of these changes.
Hi Ed, 
I've checked the new patch submitted 03/20/00. It looks good.

r=ashuk

_Ashu

Thanks Ashu.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
More changes will need to be made to webclient as the UNO integration work 
progresses.  Reopening.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Adding Status white board keyword to track all existing Webclient bugs
Whiteboard: suntrak-n6
Whiteboard: suntrak-n6 → suntrak-n6, oji_working
QA Contact: geetha.vaidyanaathan → avm
Product: Core → Core Graveyard
Java APIs to WebShell isn't a thing anymore. Closing.
Status: REOPENED → RESOLVED
Closed: 24 years ago6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: