ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shikhar Bhushan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IVY-1457) XmlModuleDescriptorWritter doesn't support fully extra infos elements
Date Thu, 01 May 2014 21:08:15 GMT

    [ https://issues.apache.org/jira/browse/IVY-1457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13986996#comment-13986996
] 

Shikhar Bhushan commented on IVY-1457:
--------------------------------------

Hi Jean, any update? IVY-1467 seems to be same issue and has an isolated project for reproducing.
I can also try out any fix.

> XmlModuleDescriptorWritter doesn't support fully extra infos elements
> ---------------------------------------------------------------------
>
>                 Key: IVY-1457
>                 URL: https://issues.apache.org/jira/browse/IVY-1457
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.3.0
>            Reporter: Jean-Louis Boudart
>             Fix For: 2.4.0-RC1
>
>
> Ivy supports a way to add your own elements into extends tag. 
> Exemple :
> {code:xml}
> <info organisation="org.apache.easyant" module="standard-java-app" revision="0.1"
status="integration" >
>         <ea:build organisation="org.apache.easyant.buildtypes" module="build-std-java"
revision="0.9">
>             <ea:property name="run.main.classname" value="org.apache.easyant.example.Example"/>
>             <ea:plugin organisation="org.apache.easyant.plugins" module="run-java"
revision="0.9" />
>         </ea:build>
>     </info>
> {code}
> After invoking XmlModuleDescriptorWritter.write()
> We get the following :
> {code:xml}
> <info organisation="org.apache.easyant"
>                 module="standard-java-app"
>                 revision="0.1"
>                 status="integration"
>                 publication="20131231193827"
>         >
>               <ea:property>
>             </ea:property>
>         </info>
> {code}
> We can notice a few things :
>  * <ea:plugin> element is missing
>  * <ea:build> element is missing
>  *  wrong identation on ending <ea:property> (probably due to nested elements)
>  * attributes from <ea:property> gets wiped
> Here is the code form XmlModuleDescriptorParser.endElement() method :
> {code:java}
> else if (state == State.EXTRA_INFO) {
>                 getMd().addExtraInfo(qName, buffer == null ? "" : buffer.toString());
>                 buffer = null;
>                 state = State.INFO;
>             } 
> {code}
> Unfortunatly buffer doesn't contains attributes and doesn't seems to handle nested element.
> Here is the code writting extra infos elements from XmlModuleDescriptorWritter :
> {code:java}
>             for (Iterator it = md.getExtraInfo().entrySet().iterator(); it.hasNext();)
{
>                 Map.Entry extraDescr = (Map.Entry) it.next();
>                 if (extraDescr.getValue() == null 
>                         || ((String) extraDescr.getValue()).length() == 0) {
>                     continue;
>                 }
>                 out.print("\t\t<");
>                 out.print(extraDescr.getKey());
>                 out.print(">");
>                 out.print(XMLHelper.escape((String) extraDescr.getValue()));
>                 out.print("</");
>                 out.print(extraDescr.getKey());
>                 out.println(">");
>             }
> {code}
> Still no attributes support and all "contents" will be escaped.
> I don't know how much this feature is used by the community but fixing this bug could
break backward compatibility.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message