On Mon, Jan 27, 2003 at 07:19:05PM +0100, Ugo Cei wrote: > Once upon a time there was a org.apache.cocoon.components.parser.Parser, > but now it's deprecated. OK, so I think I should use the Excalibur > parser component, which has recently been split into a SAX parser and a > DOM parser. > > Looking in excalibur-xmlutil-20030122.jar, I found this class: > org.apache.excalibur.xml.sax.Parser.
I guess you mean o.a.e.xml.sax.SAXParser (to complement o.a.e.xml.dom.DOMParser). > Maybe I can use that. This is my first try: > > org.apache.excalibur.xml.sax.Parser saxParser = null; > try { > saxParser = (org.apache.excalibur.xml.sax.Parser) > manager.lookup(org.apache.excalibur.xml.sax.Parser.ROLE); > } > finally { > if (saxParser != null) manager.release(saxParser); > } > > Unfortunately, it doesn't compile, because Parser does not implement > Component > > so I resolve the problem with a cast: > > if (saxParser != null) manager.release((Component) saxParser); (cripes.. I've been happily nulling it in my code.. I'd better go fix:) > I'm starting to feel a little bit confused, because I was not aware that > in Java you could get away with that at compile time. You should get back a JaxpParser instance, which is a Component, so the cast is valid. I'd imagine the compiler doesn't realise this at compile-time, and you'd get a ClassCastException if it wasn't a Component. > Maybe I should have a look at the JLS, but since I'm lazy and my code > runs, I figure I'd better ask cocoon-dev ;-). > > Is this the kosher way of obtaining an XML parser in Cocoon 2.1? > > To further complicate things, Eclipse does not like my little class > which implements org.apache.avalon.framework.component.Component, since > it insists that the type Component is deprecated, along with > ComponentManager. In order to play by the rules, I've removed > "Component" from the interfaces my class implements, but Cocoon (or is > it Excalibur?) barfs with a "ClassCastException" when I try to put it in > cocoon.xconf. Well, I just put back the "implements Component" > declaration and live with Eclipse's warnings, but I cannot help feeling > a little disoriented about all this ;-). Yes, those deprecation warnings are annoying and misleading, because Component is deprecated for Avalon, not Cocoon. Perhaps Cocoon should have a special avalon-framework-nodepr-4.1.3.jar , without the @deprecated? --Jeff > Ugo > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]