From c6d1a1285d56b245df94dfee5fa38873efa946ea Mon Sep 17 00:00:00 2001
From: Mark Johnson
- To begin with, we suggest you to subscribe to the + To begin with, we suggest you subscribe to the POI mailing lists (follow the link for information on how to subscribe and to access the mail - list archives). Listen-in for a while, to hear how others make contibutions. + list archives). Listen in for a while, to hear how others make contributions.
You can get your local working copy of the latest and - greatest code (which you find in the POI module in + greatest code (which you find in the jakarta-poi module in the CVS code repository. - Review the todo list, choose a task + Review the todo list and choose a task (or perhaps you have noticed something that needs patching). Make the changes, do the testing, generate a patch, and post to the dev mailing list. (Do not worry - the process is easy and explained below.) @@ -60,11 +61,11 @@ having too many questioners and not enough experts to respond to all the questions.
general POI mailing list
+ general POI mailing list
, install and try out POI
and read some of the mail archives.
You should have a strong "fluency" in XML technologies, Java and a basic understanding of
@@ -86,8 +87,8 @@
An overview of how to use CVS to participate in POI development. Do not be afraid - you cannot accidently destroy the actual code repository, - because you are working with a local copy as an anonymous user. Therefore, - you do not have the system permissions to change anything. You can only + because you are working with a local copy as an anonymous user. + You do not have the system permissions to change anything. You can only update your local repository and compare your revisions with the real repository.
@@ -134,7 +135,7 @@ is appropriate for a certain situation and how to go about it without confusion. This section explains when to use thedeveloper
mailing list
- the bug database.
+ and the bug database.
@@ -155,9 +156,9 @@ Experienced developers use Bugzilla directly, as they are very sure when they have found a bug and when not. However, less experienced users should first discuss it on the user or developer mailing list (as - appropriate). Impatient people always enter everything into Bugzilla - without caring if it is a bug of POI or their own - installation/configuration mistake - please do not do this. + appropriate). Impatient people frequently enter everything into Bugzilla + without caring if it is a bug in POI or their own + installation/configuration mistake - please, do not do this.
@@ -168,8 +169,8 @@
- Perhaps you do not get any answer on your first reply, so just post - it again until you get one. (But please not every hour - allow a few + If you do not get any answer on your first attempt, post + your issue again until you get a reply. (But, please, not every hour - allow a few days for the list to deal with it.) Do not be impatient - remember that the whole world is busy, not just you. Bear in mind that other countries will have holidays at different times to your country and that they are @@ -193,27 +194,27 @@
In-reply-to
header). If so, then your new topic will get
+ because threaded mail-readers get confused (they use the
+ In-reply-to
header). Otherwise, your new topic will get
lost in the previous thread and go un-answered.
[Patch]
, [Proposal]
,
- [RT]
(Random Thought which quickly blossom into research
+ [RT]
(Random Thought, these quickly blossom into research
topics :-), [STATUS]
(development status of a certain
- facility).
+ feature).
The POI project was dreamed up back around April 2001, when Andy Oliver landed a short term contract to do Java-based reporting to Excel. He'd done this project a few times before and knew right were to look for the tools He needed. Ironically the API he used to use had skyrocketed from around $300 ($US) to around $10K ($US). He figured it would take two people around six months to write an Excel port so he recommended the client fork out the $10K. +
The POI project was dreamed up back around April 2001, when + Andy Oliver landed a short term contract to do Java-based + reporting to Excel. He'd done this project a few times before + and knew right where to look for the tools he needed. + Ironically, the API he used to use had skyrocketed from around + $300 ($US) to around $10K ($US). He figured it would take two + people around six months to write an Excel port so he + recommended the client fork out the $10K.
-Around July, he started thinking how great it would be to have an open source Java tool to do this and, while he had some spare time, he started on the project and learned about OLE 2 Compound Document Format. After hitting some real stumpers he realized he'd need help. He posted a message to his local Java User's Group (JUG) and asked if anyone else would be interested. He lucked out and the most talented Java programmer he'd ever met, Marc Johnson, joined the project. He ran rings around Andy at porting OLE 2 CDF and rewrote his skeletal code into a more sophisticated library. It took Marc a few iterations to get something they were happy with. +
Around June 2001, Andy started thinking how great it would + be to have an open source Java tool to do this and, while he + had some spare time, he started on the project and learned + about OLE 2 Compound Document Format. After hitting some real + stumpers he realized he'd need help. He posted a message to + his local Java User's Group (JUG) and asked if anyone else + would be interested. He lucked out and the most talented Java + programmer he'd ever met, Marc Johnson, joined the project. He + ran rings around Andy at porting OLE 2 CDF and rewrote his + skeletal code into a more sophisticated library. It took Marc + a few iterations to get something they were happy with.
-While Marc worked on that, Andy ported XLS to Java, based on Marc's library. Several users wrote in asking to read XLS (not just write as had originally been scoped) and one user had special requests for a different use for POIFS. Before long the project scope had tripled. POI 1.0 was released a month late, but with far more features. Marc quickly wrote the serializer framework and HSSF Serializer in record time and Andy banged out more documentation and worked on making people aware of the project +
While Marc worked on that, Andy ported XLS to Java, based + on Marc's library. Several users wrote in asking to read XLS + (not just write as had originally been planned) and one user + had special requests for a different use for POIFS. Before + long, the project scope had tripled. POI 1.0 was released a + month later than planned, but with far more features. Marc + quickly wrote the serializer framework and HSSF Serializer in + record time and Andy banged out more documentation and worked + on making people aware of the project
-- Shortly before the release POI was fortunate to come into contact with Nicola -Ken- Barrozzi who gave them samples -for the HSSF Serializer and help uncover its unfortunate bugs (which were promptly fixed). More recently Ken ported most of the -POI project documentation to XML from Andy's crappy HTML docs he wrote with Star Office :-p. +
Shortly before the release, POI was fortunate to come into + contact with Nicola -Ken- Barrozzi who gave them samples for + the HSSF Serializer and help uncover its unfortunate bugs + (which were promptly fixed). More recently, Ken ported most + of the POI project documentation to XML from Andy's crappy + HTML docs he wrote with Star Office.
-- Around the same time as the release, Glen Stampoultzis joined the project. Glen was ticked off at Andy's flippant -attitude towards adding graphing to HSSF. Glen got so ticked off he decided to gab a hammer and do it himself. Glen has -already become an integral part of the POI development community, his contributions to HSSF have already started making waves. +
Around the same time as the release, Glen Stampoultzis +joined the project. Glen was ticked off at Andy's flippant attitude +towards adding graphing to HSSF. Glen got so ticked off he decided to +grab a hammer and do it himself. Glen has already become an integral +part of the POI development community; his contributions to HSSF have +already started making waves.
-- Somewhere in there we decided to finally submit the project to - The Apache Cocoon Project only to discover the project had outgrown - fitting nicely into just Cocoon long ago. Furthermore, Andy started eyeing other projects he'd like to see POI - functionality added to. So it was decided to donate the Serializers and Generators to Cocoon, other POI integration - components to other projects, and the POI APIs would become part of Jakarta. It was a bumpy road but it looks like - everything turned out since you're reading this! +
Somewhere in there we decided to finally submit the project + to The Apache + Cocoon Project, only to discover the project had + outgrown fitting nicely into just Cocoon long ago. + Furthermore, Andy started eyeing other projects he'd like to + see POI functionality added to. So it was decided to donate + the Serializers and Generators to Cocoon, other POI + integration components to other projects, and the POI APIs + would become part of Jakarta. It was a bumpy road but it + looks like everything turned out since you're reading this!
First we'll tackle this from a project standpoint: Well, we made an offer to Microsoft and Actuate (tongue in cheek ... well mostly) that we'd quit the project and retire if they'd simply write us each a really large check. I've yet to get a phone call or email so I'm assuming they're not going to pay us to go away. +
First we'll tackle this from a project standpoint: Well, we + made an offer to Microsoft and Actuate (tongue in cheek + ... well mostly) that we'd quit the project and retire if + they'd simply write us each a really large check. I've yet to + get a phone call or email so I'm assuming they're not going to + pay us to go away.
-Next, we've got some work to do here at Jakarta to finish integrating POI into the community. Furthermore, we're +
Next, we've got some work to do here at Jakarta to finish + integrating POI into the community. Furthermore, we're still transitioning the Serializer to Cocoon.
-HSSF, during the 2.0 cycle, will undergo a few optimizations. We'll also be adding new features like a full implementation of Formulas and custom text formats. We're hoping to be able to generate smaller files by adding write-support for RK, MulRK and MulBlank records. I'm also going to work on a Cocoon 2 Generator. Currently, reading is not very efficient in HSSF. This is mainly because in order to write or modify, one needs to be able to update upstream pointers to downstream data. To do this you have to have everything between in memory. A Generator would allow SAX events to be processed instead. (This will be based on the low level structures). One of the great things about this is that, you'll not only have a more efficient way to read the file, you'll have a great way to use spreadsheets as XML data sources. +
HSSF, during the 2.0 cycle, will undergo a few + optimizations. We'll also be adding new features like a full + implementation of Formulas and custom text formats. We're + hoping to be able to generate smaller files by adding + write-support for RK, MulRK and MulBlank records. I'm also + going to work on a Cocoon 2 Generator. Currently, reading is + not very efficient in HSSF. This is mainly because in order to + write or modify, one needs to be able to update upstream + pointers to downstream data. To do this you have to have + everything between in memory. A Generator would allow SAX + events to be processed instead. (This will be based on the low + level structures). One of the great things about this is that, + you'll not only have a more efficient way to read the file, + you'll have a great way to use spreadsheets as XML data + sources.
-The HSSF Serializer, will further separate into a general framework for creating serializers for other formats and the HSSF Serializer specific implementation. (This is largely already true). We'll also be adding support for features already supported by HSSF (styles, fonts, text formats). We're hoping to add support for formulas during this cycle. +
The HSSF Serializer, will further separate into a general + framework for creating serializers for other formats and the + HSSF Serializer specific implementation. (This is largely + already true). We'll also be adding support for features + already supported by HSSF (styles, fonts, text formats). We're + hoping to add support for formulas during this cycle.
-We're beginning to expand our scope yet again. If we could do all of this for XLS files, what about Doc files or PPT files? We're thinking that our next component (HDF - Horrible Document Format) should follow the same pattern. We're hoping that new blood will join the team and allow us to tackle this even faster (in part because POIFS is already finished). But maybe what we need most is you! -
+We're beginning to expand our scope yet again. If we could + do all of this for XLS files, what about Doc files or PPT + files? We're thinking that our next component (HDF - Horrible + Document Format) should follow the same pattern. We're hoping + that new blood will join the team and allow us to tackle this + even faster (in part because POIFS is already finished). But + maybe what we need most is you!