Closed Bug 164760 Opened 22 years ago Closed 22 years ago

Implement the Palm AB Conduit for Mozilla

Categories

(MailNews Core Graveyard :: Palm Sync, defect)

x86
Windows NT
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
mozilla1.2beta

People

(Reporter: rdayal, Assigned: rdayal)

References

Details

Attachments

(2 files, 3 obsolete files)

This bug will track the implementation of the Palm Conduit Dll. This gets loaded
by the Palm HotSync Manager and calls into Mozilla across the process space to
synchronize AB. The Palm Conduit Dll communicates with Palm Handheld (HH) to
retrieve data from Palm HH AB as well as to update it. 

The implementation has following files:

- the implementation of entry points into the Conduit (most of this code is
generated by Palm CDK).
- MozABConduitRecord - this is the class that represents the Mozilla AB record
and converts the Palm record to Moz record and vice versa.
- MozABHHManager - this is the class that interacts with the Palm HH to retrieve
AB data (Categories and Records) as well as updates the HH AB.
- MozPCManager - this is the class that interacts with Mozilla to send updated
Palm records to it as well as retrieve Moz AB records. This interaction is done
using MSCOM as the IPC infrastructure. MAPI interface existing in Mozilla is
currently extended to make these calls.
- MozABConduitSync - this is the class which defines the overall logic for Sync.
Building this patch requires Palm CDK installed since it uses it to interact
with the Palm. The files in the patch here doesnot contain the Mozilla boiler
plates yet.
This takes care of Cavin's suggestion for:
- use macros for implementing CMozABConduitRecord::ConvertFromGeneric and
ConvertToGeneric.
- correct the checking of categoryID to check for it's value as -1 instead of
0.
- remove unused code.

Besides these suggestions it also has the following changes:
- modified code so that the RecordIds for new records from Moz added into Palm
are sent back to Mozilla so that its cards can be updated with corresponding
ids.
- modified the code so that the category information is correctly compacted
into the DBInfoBlock and stored on Palm. This enables new AB records to be
displayed in the right category rather than under the Unfiled category
description.
- modified the code so that Sync Done ack is sent to Mozilla after each
category is synchronized so that memory is freed correctly
- added Mozilla license plates.
Attachment #96806 - Attachment is obsolete: true
Blocks: 155417
Comment on attachment 97935 [details] [diff] [review]
updated patch for Mozilla Palm sync Conduit

r=cavin.
Attachment #97935 - Flags: review+
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.2beta
Rajiv, what directory are these new files going in? I couldn't tell from the
diff and was curious. 
Hi Scott, these files would go into mailnews/extensions/palmsync directory.
However, the makefile is not yet part of this patch I am still trying to figure
out how the nightly builds would be done since it will require Palm CDK to be
installed on the build machine. Meanwhile could you please take a look at the
attached patch and if there are any suggestions i can have the makefile as part
of the updated patch or else i will attach a separate patch for the makefile. I
will make sure that I land the makefile changes alongwith this code. thanks.
Comment on attachment 97935 [details] [diff] [review]
updated patch for Mozilla Palm sync Conduit

sr=mscott
Attachment #97935 - Flags: superreview+
thanks Scott.
During QA testing couple of issues came up which have been fixed, these are:
1) Data mapping issue for Display Name
2) Modified record sometimes doesnot get synced properly. Usage of
CategoryIndex, and not CategoryId (although the field name is called CatId), is
done by PalmSyncManager API for accessing existing records.

Besides this I have merged two same named functions NotifySyncDone as the called
interface function has also merged, and have removed some unrequired code in the
Palm CDK generated MozABConduitGenCond code.

I am attaching a diff patch listing differences with previous patch for easier
review and a complete patch with the new code below.
Attached patch Diff Patch with differences (obsolete) — Splinter Review
Comment on attachment 101600 [details] [diff] [review]
Entire Patch with updated code

sr=mscott
Attachment #101600 - Flags: superreview+
Attachment #97935 - Attachment is obsolete: true
Attachment #101599 - Attachment is obsolete: true
thanks Scott.
This patch has the makefile changes for
mailnews/extensions/palmsync/Makefile.in to build the conduit if the
PALM_CDK_DIR environment variable is defined pointing to the directory where
Palm CDK is installed. It also has the Makefile.in for the conduit (the
implementation here) and the changes to build the conduit using Palm CDK files.
Hi Leaf,

Can u please review the above patch for makefile changes, thanks.
Comment on attachment 102098 [details] [diff] [review]
patch for makefile changes to make this implementation part of build

r=leaf
Attachment #102098 - Flags: review+
thanks Leaf.

Hi Scott, Can u please super review this makefile changes patch, thanks.
Comment on attachment 102098 [details] [diff] [review]
patch for makefile changes to make this implementation part of build

if i'm not building palmsync, will I see your echo statements in
palmsync/Makefile.in about setting the palm cdk dir? Or is there another
variable which tells us whether we even want to enter the palmsync directory?

Rajiv and I agree this is a big hack but we're going to go with it because leaf
says this solution poses the least burden on modifications to our build system.
Given that leaf would rather have us do this than add a much of palm sync logic
to the build config setup, we'll go along with it. 

sr=mscott assuming the answer to my question about the echo statement is no.
Attachment #102098 - Flags: superreview+
Thanks Scott.

The Echo statement will appear when the extensions/palmsync is built. If this
dir is not built it will not appear.

Also I do agree that this a hack but I also think it should not be a 'practical'
issue since this doesnot pose an overhead on build or output binary size :)

This has landed. Marking this as fixed.

This feature has been tested by Gregg Meehan from QA, changing QA contact to him.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
QA Contact: nbaca → meehansqa
Resolution: --- → FIXED
*** Bug 112555 has been marked as a duplicate of this bug. ***
It's really nice to see somebody working on this. Thank you!
Component: Address Book → Palm Sync
Mozilla 1.2.1 build has implemented the Palm AB Conduit for Mozilla.
Status: RESOLVED → VERIFIED
QA Contact: meehansqa → nbaca
*** Bug 36836 has been marked as a duplicate of this bug. ***
Product: MailNews → Core
Product: Core → MailNews Core
Product: MailNews Core → MailNews Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: