[jdom-interest] jdom2 migration issue
Rolf Lear
jdom at tuis.net
Mon Aug 20 13:31:33 PDT 2012
Hi Chris.
Don't be too hard on yourself. It is an eclipse problem, and many people have wasted hours on this type of problem. I should update the migration page.
Pleased it is now working, and I hope it does not sour your JDOM2 experience.
Rolf
Craig Christophersen <craigch at synesis7.com> wrote:Took two cleans to get it all clean.
Changed back:
final org.jdom2.Document mydoc = builder.build(dmFile);
document = mydoc;
to:
document = builder.build(dmFile);
in that one class.
All now compiles.
Thank you much for your help……I guess this was more of an eclipse and developer not cleaning his project enough issue.
I look forward to running this application now, and learning more about the enhancements in jdom2.
Thank you again, Craig
From: Rolf Lear [mailto:jdom at tuis.net]
Sent: Monday, August 20, 2012 2:06 PM
To: craigch at synesis7.com
Cc: jdom-interest at jdom.org
Subject: RE: [jdom-interest] jdom2 migration issue
In eclipse do a 'clean' on your project...
Perhaps there are some 'vestiges' of a previous eclipse build.
Rolf
Craig Christophersen <craigch at synesis7.com> wrote:
This is very peculiar. That line now compiles.
But further down in the class is another method using "document" that will not(with the same type mismatch error).
The line " Element root = document.getRootElement();” errors.
Method:
public String getWPNum() throws JDOMException {
String wpNum = "";
Element root = document.getRootElement();
Element idstatus = (Element)root.getChild("idstatus");
Element status = (Element)idstatus.getChild("status");
Element remarks = (Element)status.getChild("remarks");
wpNum = remarks.getText();
if(wpNum.equals("")) {
wpNum = "0";
}
System.out.println("WPNum in Read DM: " + wpNum);
return wpNum;
}
-----Original Message-----
From: Rolf Lear [mailto:jdom at tuis.net]
Sent: Monday, August 20, 2012 1:02 PM
To: Craig Christophersen
Cc: Jdom interest
Subject: RE: [jdom-interest] jdom2 migration issue
Right, then the next thing to do is to worry about the protected variable 'document'.
In your code you have protected org.jdom2.Document document;
I had assumed that this was the same variable as the one in the line:
document = builder.build(dmFile);
But, now I am not so sure.... perhaps in this case the document in the build line is some other document variable with the same name from a super class or something.
So, what happens if you replace the build line:
document = builder.build(dmFile);
with:
final org.jdom2.Document mydoc = builder.build(dmFile);
document = mydoc;
Rolf
On Mon, 20 Aug 2012 12:51:33 -0600, "Craig Christophersen"
<craigch at synesis7.com> wrote:
> In the open type window it does show another project in eclipse with
> "org.jdom.Document". But it is another project that I will migrate
> also once I get it working in this project. The other project is not
referenced
> by the current project.
>
> There are 8 classes in the project that use jdom. Below is a typical
> import:
>
> import java.io.*;
> import java.util.*;
> import java.util.regex.Pattern;
>
> import org.jdom2.*;
> import org.jdom2.filter.ElementFilter; import
> org.jdom2.input.SAXBuilder;
>
> And another class imports:
>
> import java.io.*;
> import java.util.*;
> import java.io.File.*;
> import java.io.IOException;
> import java.util.concurrent.ConcurrentLinkedQueue;
>
> import javax.xml.parsers.DocumentBuilder;
> import javax.xml.parsers.DocumentBuilderFactory;
> import javax.xml.parsers.ParserConfigurationException;
>
> import org.jaxen.JaxenException;
>
> import org.jdom2.output.*;
> import org.jdom2.*;
> import org.jdom2.filter.ElementFilter; import
> org.jdom2.filter.ContentFilter; import org.jdom2.input.*; import
> org.jdom2.xpath.*;
>
> -----Original Message-----
> From: Rolf Lear [mailto:jdom at tuis.net]
> Sent: Monday, August 20, 2012 12:25 PM
> To: Craig Christophersen; Jdom interest
> Subject: RE: [jdom-interest] jdom2 migration issue
>
>
> In eclipse, edit your file, then type shift-ctrl-T Then type
> org.jdom.Document
>
> In the box below, you have all the locations of jdom 1.x Documents.
>
> As a double-check, can you copy/paste the entire import section in
> your class.... I am convinced there must be an import from org.jdom.*
> or something.
>
> P.S. when you reply, do a reply-all, and I will get your answer
> faster.....
>
> Rolf
>
>
> On Mon, 20 Aug 2012 12:18:29 -0600, "Craig Christophersen"
> <craigch at synesis7.com> wrote:
>> Hello Rolf; Thank you for your reply. I have again looked thru stuff
> and
>> found no old jdom. Are there known jars(I use several apache) that
> would
>> include jdom classes??? I am using eclipse.
>>
>>
>> -----Original Message-----
>> From: Rolf Lear [mailto:jdom at tuis.net]
>> Sent: Monday, August 20, 2012 11:35 AM
>> To: Craig Christophersen
>> Cc: jdom-interest at jdom.org
>> Subject: Re: [jdom-interest] jdom2 migration issue
>>
>>
>> Hi Craig.
>>
>> There must be some other imports from the org.jdom package (as well
>> as org.jdom2....).
>>
>> The error message you are getting would be impossible unless you have
>> those imports.
>>
>> Something is wrong in your imports.... and your build path must have
> some
>> old JDOM classes from places other than just the old JDOM jar.
>>
>> Finally, it is normal in GUI-type development tools, (eclipse,
IntelliJ,
>> etc) to exclude the package on field names.... i.e. the line:
>>
>> protected org.jdom2.Document document;
>>
>> would not normally be created by Eclipse/IntelliJ unless your class
>> was already using the org.jdom.Document version somewhere. You should
> probably
>> replace the line with:
>>
>> protected Document document;
>>
>> and ensure that you can import Document from org.jdom2 with
>>
>> import org.jdom2.Document;
>>
>> Bottom line is that you still have old JDOM classes in your build
>> path, and the copde you have shown us us using *both* Document
>> versions (org.jdom, as well as org.jdom2).
>>
>> Rolf
>>
>>
>>
>>
>>
>> On Mon, 20 Aug 2012 09:58:15 -0600, "Craig Christophersen"
>> <craigch at synesis7.com> wrote:
>>> Hello;
>>>
>>> I have been trying to migrate to Jdom2 in an application. I have
>> followed
>>> the migration guide but get a type mismatch error.
>>>
>>> Snippit below:
>>>
>>> protected org.jdom2.Document document;
>>>
>>>
>>>
>>> private String str = null;
>>>
>>> private String dmString = "";
>>>
>>> String f = "f";
>>>
>>> String t = "t";
>>>
>>> protected DocType dt;
>>>
>>> /**
>>>
>>> * Read the specified File and parse it to create a JDOM tree
>>>
>>> **/
>>>
>>> public ReadDmFile(File dmFile)// throws IOException,
>>> JDOMException
>>> {
>>>
>>> {
>>>
>>> System.out.println("File in ReadDm X: " + dmFile);
>>>
>>>
>>>
>>> try {
>>>
>>> SAXBuilder builder =
>>>
>>> new SAXBuilder(); //"org.apache.xerces.parsers.SAXParser"
>>>
>>>
>>>
>>> // Parse the specified file and convert it to a JDOM
>>> document
>>>
>>> builder.setIgnoringElementContentWhitespace(true);
>>>
>>> document = builder.build(dmFile);
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On last line I get "Type mismatch: cannot convert from
>> org.jdom2.Document
>>> to
>>> org.jdom.Document"
>>>
>>> The old jdom jar is removed from this project.
>>>
>>> Any help would be appreciated.
>>>
>>>
>>>
>>> Thanks,
>>>
>>>
>>>
>>>
>>>
>>> Craig Christophersen
>>>
>>> Software Developer
>>>
>>> Synesis7
>>>
>>> craigch at synesis7.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.jdom.org/pipermail/jdom-interest/attachments/20120820/d901cf61/attachment.html>
More information about the jdom-interest
mailing list