Nick,

You need to stop asking these types of questions, or I'm going to put everyone to sleep with my answers! :-)

Now this is simply my personal opinion on remembering the events as they took place, Assaf may have a slightly different recount, but I'll try to be as concise as possible.

Well, Castor was basically, as Assaf likes to say, born out of necessity. Keep in mind that Assaf and I were both working at Exoffice (now called Intalio, Inc.). Exoffice was founded under the premise that everything we developed we would open source. This was all good and well under the dot com boom, but in order to survive after the dot com bust, Exoffice had to change it's business approach, and Intalio was born. Everything that Exoffice had created as open source, remained open, but Intalio was no longer supporting it, such as Tyrex, OpenORB, Slide, and others. The only project that remained on exolab.org was Castor, thanks to my incessant whining about it. Most of the other projects ended up at SourceForge or Apache. OK, onto the story...


Assaf actually had been working on the initial stages of Tyrex (An open source transaction manager) and what is now known as "Castor JDO". It wasn't actually called Castor then, it really didn't have a name. I ended up giving Castor its name just before we released the first public version back in December 1999. Actually, I came up with a bunch of names, and then Assaf, Ismael Ghalimi, and I voted on Castor as the right name for the product/project.


Anyway, Assaf was working on Tyrex and Castor JDO in the comforts of his nice office in Burlingame, CA. I was working from a cubicle just outside of his office. One day he yelled out that he needed something to read an XML based configuration file and turn it into a set of Java "data objects" so that he could interact with the configuration data in Java and not deal with the W3C DOM or have to write a SAX DocumentHandler. He also wanted the ability to be able to persist the data objects again as XML if changes were made to the objects. So that's really how it all began. And since one of Exoffice's goals was to make everything open source, of course this little binding framework was going to be open source too.

After doing a little research into the subject, we found the first draft of Sun's JSR 31 (later to be named JAXB). An extremely rough document describing very basic XML data binding and all based on DTDs. There was no sample implementation, no code at all at the time I started doing my initial version of Castor XML. At the time, I was working on other XML technologies (such as XSLT (eg adaptx)) and was following the W3C effort on XML Schema. Assaf and I decided to base our implementation using XML Schema instead of DTDs since we wanted to be leading edge and had assumed that eventually XML Schema would be quite popular. Given that is was clearly much more expressive than DTDs, it was really a no brainer.

So I started writing an XML Schema object model, even though XML Schema was in an early working draft state and changing frequently. I wrote the first Castor source code generator and introspector. Assaf was working on JDO mapping files and the mapping framework that eventually became what you see today in the org.exolab.castor.mapping package and the jdo / persist packages. Assaf then later added the ldap support.

Castor XML originally didn't have a mapping file. It was only default introspection and source code generation. Castor JDO consisted of mapping files, and used Castor XML to read database config files and the mapping files.

We eventually decided that the two projects should merge together. We spent many afternoons drinking coffee at a little French Cafe in Burlingame, and eating french fries for lunch, discussing things like ClassDescriptors and FieldDescriptors, FieldHandlers, and Mapping files. Quite fun and very interesting.

Well, the rest you can probably piece together.

Unfortunately some of the early design of Castor still plagues Castor today. Once you release something publically, users get very angry if there isn't a simple upgrade path. So we've maintained a lot of legacy code in Castor. Some of that really needs to be rewritten. I've done my best to add new functionality while trying to maintain as much backward compatibility as possible. I've definately broke some backward compatibility over the years and plan on doing it again. We need to add more information to the descriptor interfaces and rewrite some of the mapping framework and marshalling framework to improve the framework so that it can support more of XML Schema, and more advanced mappings...basically what the users want.

If I had endless amounts of time, Castor XML would be far better than it is today.

I'm not sure how long Castor XML will remain viable though. Currently Sun and others are working on JAXB 2.0 and it aims to cover much of what Castor provides today and a lot more. I was actually an active member early on in the JAXB 2.0 working group, but haven't been able to participate in a long time, basically ever since Intalio reduced it's engineering force my plate has been too full to participate in any external working groups. I know they have some smart people though, like Joe Fialli and Sekhar Vajjhala of Sun, Dennis Sosnoski (a one time Castor user who wrote his own framework called JiBX), and a number of other smart and talented people working on the spec.

Once it comes out, I'll need to see what it'll take for Castor to support it, but Sun will have their reference implementation out long before Castor XML catches up. There's always room for competition, but competing with something that will eventually come with the JDK is a bit difficult to do.

We'll see. Well, I think I've answered your question and then some...too much elaboration on my part. Sorry for not being concise enough.

--Keith




Nick Stuart wrote:
Good stuff guys. Its great to hear the history behind the software.
Here's a question for you keith, why did you originally decide to make
castor? Was it for internal use only to begin with? Or where you set
out from the beginning to make something that would be used in who
knows what situations?

And about that history page...*nudge nudge*

Keep up the good work!!


On Fri, 05 Nov 2004 16:07:07 -0600, Keith Visco <[EMAIL PROTECTED]> wrote:

Nick Stuart wrote:

Speaking of which...who orignally started the castor project? I know
you (bruce) obvisouly had a large part in it, but who else was on the
team? Keith perhaps?


Assaf Arkin and myself are the original authors, but that's almost a moot point now as the project is really about all the people who contributed, and not who wrote the first lines of code. Since you asked, however, we started Castor back in 1999! Assaf started Castor JDO and I started Castor XML. We've had numerous contributions along the way (and thanks to all those who have contributed!).

Thomas Yip took over as the Castor JDO lead for a couple years, before
Bruce took over for Thomas back in 2002 after Thomas could no longer
contribute to the project on a regular basis. I think Bruce has now held
the JDO lead position longest and was really the first non-Intalio
person to step up and take charge of rescueing the Castor JDO project
when there was very little attention being paid to it.

Werner Guttmann has been simply amazing in his efforts to get Castor JDO
and the project in general back on track. I owe him a lot of personal
thanks for taking such an interest in the project and really becoming a
major driving force, especially as Bruce has been busy with writing his
book. Castor is very near and dear to my heart and I simply cannot thank
Werner and Bruce enough for their efforts.

Werner has really resurrected the team spirit on Castor...I've enjoyed
(and hope to continue to) seeing all the communication taking place in
the bug reports and mailing lists.

I've been the Castor XML lead since the beginning. Arnaud Blandin who
was an employee of mine for a couple years was a major contributor on
the XML side of the project for a couple years from about 2001-2003, but
really hasn't been able to contribute much since (due to professional
and personal time constraints, which I do understand since we work for
the same company). I know he'd love to get back at it, but right now it
doesn't look like it'll be happening any time soon. I keep bugging him
about it, we'll see though. We've had a number of contributors on the
XML side, such as Sebastien Gignoux, Andrew Fawcett, Remy Maucherat, and
really too many to list here. Just as a note, Andrew Fawcett is the
"father" of the "type-centric" approach to XML data binding. He was the
first one to suggest this approach to me and he contributed all the
initial code for it. This approach was later adopted by JAXB. Initially
Castor XML only supported element centric approach (though with a lot
more flexibility) as specified in the original JSR 31.

My thanks to all who have contributed since the project was started, and
I hope the project continues to grow as it has over the last couple of
months.

Cheers,

--Keith

-----------------------------------------------------------


If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-user





----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user





----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user

Reply via email to