[EMAIL PROTECTED] wrote:
> 
> Hi Edwin,
> 
> I've also been following the discussions on general on this topic.  While I
> think I agree with your proposal in principle, for the benefit of those who
> don't follow general all that closely perhaps we should give people a bit
> of time to consider the issues before rushing ahead to solve them.

Yes, I fully agree.

> To summarize:  xml.apache.org has a problem in that several projects
> contain common interfaces--DOM, SAX and JAXP.  Unfortunately, they're not
> necessarily all exactly the same version:  we have a couple of DOM l3
> methods in our org.w3c.dom, Xalan doesn't.  This creates some interesting
> issues for users of xml.apache.org projects relating to classpath ordering
> etc.
> 
> There's also the simple matter of space:  Why should exactly the same code
> be duplicated in many places when the xml-commons project was founded
> precisely to store common API code?
> 
> So Edwin proposed three solutions on general:
> 
> 1.  Do like we do now--every project has its own API source--but, wherever
> possible, get it from xml-commons.
> 
> 2.  Use the xml-apis.jar that can be built by the ant script in
> xml-commons.
> 
> 3.  Have many little API jarfiles:  a DOM2.jar, a DOM3.jar, a SAX.jar, etc.
> 
> The former option is the simplest for us developers, and eliminates the
> problem of long classpaths for users.  option 2 poses problems for projects
> like us which do our own thing to some degree with evolving API's.  #3
> risks confusing both users and developers in an alphabet soup of jarfiles.
> #1 seemed to get the most support.
> 
> Edwin, is that a decent summary?

Yes, that is a good summary.  BTW, I meant to post a summary on
general@xml, but have not done it yet.  In my numbering scheme, though,
solution #2 and #3 are swapped.

> 
> Anyway, I have some specific questions about your proposal:
> 
> 1.  Will the source package which our ant build generates contain the JAXP
> API?  I for one think it should, just as the binary package must contain
> the classes.

Yes.  The proposal is to eliminate duplicate copies of source code in
multiple trees (and branches) and instead obtain the source from
xml-commons.  Everything else would remain the same.  So creating the
binary distribution would reference source from xml-commons, but
creating the source distribution would copy the source from xml-commons.

> 
> 2.  How does the user specify where xml-commons has been checked out on his
> local file system?  Some folks use  "co -d" to override the default
> directory structure; how do we account for this?

I have not thought about this.  In my crimson prototype, the build.xml
file looks for a peer xml-commons tree.  If it does not find one, it
prints an error message to the user.

> 
> 3.  Related to 1. and 2. above, how does the build.xml that we ship in our
> source distribution know that it already has the JAXP files, whereas the
> build.xml file that we check out of CVS knows that it has to go and find
> them?

My prototype did not provide a way of building the source distribution
itself, but this seems desireable.  In effect you want two targets, A)
one that builds the files from a source distribution and B) another that
creates the source distribution itself.  Target B would have to know how
to reference souce files from xml-commons but target A uses the source
files from the source distribution itself.  One thought is that you
could combine the targets into C) which would do the equivalent of the
following in Ant:

  if (part of source distribution) then
      build from source already present in distribution
  else
      build from source from xml-commons
  endif

As a first step, I would get this working with the javax.xml.* source
code as the version that is in the xml-xerces repository now is quite
old and buggy.

-Edwin

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to