Carsten Ziegeler wrote: > Hi, > > I just started moving some components from Cocoon over to Excalibur. > Rather than moving all at once, I would like to discuss the some > moved components and then add some more as the current interfaces > might have influence on the following components. > > So, I added all the stuff to the xml and the source package of > scratchpad in excalibur. > > a) XMLConsumer, AbstractXMLConsumer, ContentHandlerWrapper > The XMLConsumer simply unifies LexicalHandler and ContentHandler. > The AbstractXMLConsumer is an abstract implementation of this > interface, simply doing nothing. And the ContentHandlerWrapper > implements the XMLConsumer to wrap a ContentHandler or > a ContentHandler and a LexicalHandler to an XMLConsumer. > I think these components do not need discussion.
They are pretty straight forward. > b) Parser, XercesParser, JaxpParser > The Parser interface defines an XML Parser which can either send > SAX events or create a DOM Document. XercesParser and JaxpParser > are two implementations. > I changed the Parser interface from the Cocoon version in order > to make the implementation ThreadSafe - if possible. This change > was already discussed on the Cocoon mailing list. There could be two policies: 1) new parser every time. 2) reuse parser until it emits an exception. Of course, this means that you will have a new wrapper class to intercept the exceptions--or perhaps an ErrorHandler for each parser registered with the component. > c) XMLizable and XMLFragment > These marker interfaces are used to convert an arbitrary object > to an DOM node or to send XML events. They are useful in application programming--and possibly our serialization framework for Components. If this is the case, these interfaces (or at least the XMLizable one) would live in Framework so that Configuration can extend it. > d) Source, SourceHandler, SourceFactory > Now this is more or less the source resolving component from Cocoon. > The Source interface describes any source which is resolved by the > SourceHandler. The SourceFactory describes pluggable protocols > which can be used by the SourceHandler to resolve the systemIds. > The other files in this package are implementation. > > We should discuss if you are all happy with those three interfaces. > The usual process is to get the SourceHandler and get using this > handler a Source object for a systemID. This Source object can > then be asked for an InputStream, an InputSource or if it is > XMLizable or XMLFragment for it's XML representation etc. > > These interfaces have been proved in Cocoon, but perhaps they can > still be enhanced. Is there any way we can merge the Source and Resource classes? That way, we can seemlessly take advantage of the Monitor package. > In addition we need a link to the monitor package. The simplest solution > might be to define a SourceResource in the monitor package which monitors > a Source object. Perhaps the Source object can extend the Resource or StreamResource objects? > So, let's start discussing this. I'm really interested in your opinion, > even if have to start over from scratch....(just a joke) What would be the barrier to using the Resource object directly? -- "Those who would trade liberty for temporary security deserve neither" - Benjamin Franklin -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>