[jdom-interest] JDom and Java5

Mattias Jiderhamn mj-lists at expertsystems.se
Sat Feb 23 00:50:35 PST 2008


Now I got the updated JAR and it works fine.

Although it seems return type List<?> requires an explicit cast whereas 
List just issues a warning when assigned to List<Element>. So if you 
want to minimize the code changes needed you should probably switch to 
just List.

 /Mattias


Rolf Lear wrote (2008-02-22 16:44):
> Hi Mattias.
>
> I have checked and things appear to be in order. I have calcualted an 
> MD5 sum on the jar:
>
> 2ce32b04f460bf457b3b2724ed5c71ba  jdom.jar
>
> I wonder if there is a cached file in a proxy somewhere..... I should 
> perhaps start versioning things..... I'll do that next time.
>
> Just in case, I have created a symbolic link, and this should avoid 
> proxy's for the moment:
>
> http://git.tuis.net/jdom/jdom.b2.jar
>
> md5 sum:
>
> http://git.tuis.net/jdom/jdom.jar.md5sum
>
> I have taken your example code and built a simple main() method that 
> tests it, and it works fine with the web-site's jar file in the 
> classpath.
>
> Rolf
>
>
>
> Mattias Jiderhamn wrote:
>> Is the JAR at http://git.tuis.net/jdom/jdom.jar really updated...? I 
>> get the same result for both cases.
>>
>> Regarding List<?> I believe that List = List<?> = List<? extends 
>> java.lang.Object>.
>>
>> Hopefully you should be able to use this code as the basis for a test 
>> case:
>>
>>      TransformerFactory transformerFactory = 
>> TransformerFactory.newInstance();
>>      StreamSource streamSource = new StreamSource(new StringReader(
>>          "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
>>          "<xsl:stylesheet version=\"1.0\" 
>> xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n" +
>>          "  <xsl:template match=\"/\">\n" +
>>          "    <foo>" +
>>          "<bar myAttribute=\"myValue\" />" +
>>          "<ns:bar xmlns:ns=\"http://foo/bar\" myAttribute=\"myValue\" 
>> ns:attribute2=\"prefixed\" />" +
>>          "</foo>\n" +
>>          "  </xsl:template>\n" +
>>          "</xsl:stylesheet>"));
>>      Transformer transformer = 
>> transformerFactory.newTransformer(streamSource);
>>
>>      JDOMSource source = new JDOMSource(new org.jdom.Document(new 
>> Element("foo")));
>>      JDOMResult result = new JDOMResult();
>>      transformer.transform(source, result);
>>
>>
>> /Mattias
>>
>>
>> Rolf Lear wrote (2008-02-22 15:28):
>>> Hi Mattias
>>>
>>> Thanks for the feedback.
>>>
>>> The XSLT issue is a bug I introduced with the port. Previously there 
>>> was a single inner class of JDOMSource that could deal with either 
>>> Document or Content Lists. With the port I created two inner 
>>> classes, one for Documents only, and the second for List<Content> 
>>> only. I introduced a bug in the process. Easy fix (just poor testing 
>>> - I should introduce a test in jdom-test for the XSLT stuff - can 
>>> you put together a simple test case of the bug?).
>>>
>>> The second issue is also cool. The XPath code is implemented by the 
>>> jaxen library which is not (yet) generified. As a consequence, I 
>>> hacked the calles to Jaxen to get List<Object>. By removing the 
>>> hacks and providing List<?> as output it is actually simpler. I am 
>>> not sure if you were anticipating just plain List as output instead 
>>> of List<?>, is there a difference?
>>>
>>> I have updated the code repo, jar, apidocs, and website, etc.
>>>
>>> Thanks
>>>
>>> Rolf
>>>
>>> Mattias Jiderhamn wrote:
>>>> This is good news!
>>>> At least a first step towards an official Java5 JDOM version.
>>>>
>>>> I downloaded your JAR and put it in my dev environment. Here are a 
>>>> few problems I ran into (which I haven't had time to analyze myself):
>>>>
>>>> When trying to do XSLT from a JDOMSource to a JDOMResult I got this
>>>> org.xml.sax.SAXNotSupportedException: Only JDOM Documents are 
>>>> supported as input
>>>>    at 
>>>> org.jdom.transform.JDOMSource$DocumentReader.parse(JDOMSource.java:580) 
>>>>
>>>>    at 
>>>> com.caucho.xsl.TransformerImpl.parseDocument(TransformerImpl.java:536)
>>>>    at 
>>>> com.caucho.xsl.TransformerImpl.transform(TransformerImpl.java:270)
>>>>    at 
>>>> se.exder.servlet.XslTransformer.transformToDocument(XslTransformer.java:159) 
>>>>
>>>>   ...
>>>>
>>>> XPath.selectNodes() now returns a List<Object> rather than an 
>>>> "untyped" List. I would be preferrable if it would still return a 
>>>> plain List which could be cast to a List<Element> if you know only 
>>>> Elements will be returned.
>>>>
>>>> /Mattias Jiderhamn
>>>>
>>>>
>>>> Rolf Lear wrote (2008-02-21 16:28):
>>>>> Hi All.
>>>>>
>>>
>>>
>>
>
>



More information about the jdom-interest mailing list