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

Re: org/w3c/dom duplicates in lib-dom-java and lib-openxml-java,libxerces-java!



On Wednesday 30 May 2001 12:19, Toby Speight wrote:
> 0> In article <01053010282003.00794@catv6142>,
> 0> Egon Willighagen <URL:mailto:egonw@subdimension.com> ("Egon") wrote:
>
> Egon> working on dh_java i encountered this:
> Egon>
> Egon> Duplicate library path: org/w3c/dom in both lib-dom-java and
> Egon> lib-openxml-java,libxerces-java!
> Egon>
> Egon> In other words, the org.w3c.dom classes are given in three
> Egon> packages...  They probably have some version differences, but
> Egon> it seem not correct that this redundancy is available...
> Egon>
> Egon> More practical, when doing dh_java, it is not possible to
> Egon> determine which packages it relies on...
>
> Surely then the dependency will be on "( lib-dom-java | lib-openxml-java
> | libxerces-java )", since having any of those will satisfy the runtime?

This will indeed be the outcome of dh_java...

> Though if there are version differences, you could end up having to
> introspect them all to find which ones will link with your package.  :-(

Indeed. This is a problem that needs to be solved in the future...

> But I think the right way is to keep the interfaces package separate,
> and have it depend on a virtual implementation package that's provided
> by the actual implementations.
>
> If there are indeed different versions of the org.w3c.dom interfaces,
> then versioned dependencies/conflicts are probably appropriate for the
> implementation packages.

Stefan argued that interface and implementation should not be seperated:

  "The classes for interfaces might be identical for all containers but at
   least the exception classes will differ - so it is very difficult to put
   the common classes in another JAR/package ans share them between all
   implementations."

But it might indeed be "good" to place the interface classes in a seperate
jar/package... this would enforce that the implementation *does* implement
the actual interface, and not some look-a-like...

I am not sure, but i guess, throwing exception *is* part of the actual 
interface...

Egon



Reply to: