[Planner Dev] [Fwd: RE: MPP file format]



Hi All,

I ran across this project today - called mpxj.  Its a java library
designed to interpret M$P files in various formats including mpx, mpp,
and mspdi xml files, so I contacted the developer, Jon Iles (message
below), and it looks to me like we could leverage his work to enable
import/export functionality in Planner.

I like the sound of his option #2 - building mpxj with gcj rather than
re-implementing it in C++, but I'm not nearly as in touch with the
technical details to be sure...

... so what do you think?

-----Forwarded Message-----
From: Jon Iles <jon iles bcs org uk>
To: 'Kurt Maute' <kmaute users sourceforge net>
Subject: RE: MPP file format
Date: 11 May 2004 20:12:26 +0100

Hi Kurt,

Nice to hear from you. 

Regarding the MPP file format structure, I've just had to work at
understanding it a section at a time by methodically changing data items in
MS Project, and looking at the results in the MPP file. 

The single biggest jump forward was right at the start of the project, when
I realised that the file format is an OLE compound document, and I was able
to use the Jakarta POI library to get at the internal file system that makes
up the MPP file. The MPP9 file format (the one understood by versions of MS
Project 2000 onwards) is by far the most logical and easy to understand,
MPP8 (Project 98) is a bit of a nightmare, but I've now managed to organise
the same level of support for both MPP file formats. I think that MPXJ
supports about 90% of the features found in MPP files, certainly more than
enough for migration of data between various project management
applications.

In terms of sharing the knowledge, I've tried to document the file structure
in the Java code, so all the information you need is embedded in the MPXJ
source. I think there are a couple of ways to provide MPP import/export for
Planner:

1. Rewrite the bits of MPXJ you want in C++ (I'm assuming Planner is C++).
Your biggest hurdle will be the OLE Compound Document file format, you'd
have to see if there are any open source C++ libraries to read the file
format. Once you've got that, the MPXJ code should be trivial to turn into
C++ as it doesn't really do anything Java specific.

2. An alternative to this, which is potentially more beneficial, is to
investigate using gcj to build MPXJ. This will allow you treat MPXJ like any
other library you might link into Planner. This will be a bit more tricky to
achieve (as you will have to ensure that the bits of POI that MPXJ needs are
also compiled up using gcj), but you do not have to duplicate the effort of
maintaining support for the MPP file format. In fact you will potentially
get a load of extras for free, i.e. support for the MPX and MSPDI file
formats too, and a maintained and bug-fixed library that does the work for
you :-)

I hope you find the above notes useful. Whatever route you take, I am more
than happy to answer questions about MPXJ and the MPP file format in
general.

Good Luck!

Jon


-----Original Message-----
From: Kurt Maute [mailto:kmaute users sourceforge net] 
Sent: 11 May 2004 18:30
To: joniles users sourceforge net
Cc: kmaute users sourceforge net
Subject: MPP file format



Hi Jon,



I just came across your mpxj project and it caught my eye

because of your ability to read MPP files.



I maintain the user guide for the open source project

Planner, which is a project managment tool for the Gnome

desktop.   We've had several casual discussions over the

past two years or so on our mailing list about the MPP file

format and what we could do to provide an import/export

capability in Planner.  



Your mpxj project is the first project on sourceforge that

I've seen to tackle the MPP format, and I was wondering how

you were able to discover the layout, and would you be

willing to share your knowledge with us?



Thanks in advance,



Kurt Maute





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]