[ 
http://jira.andromda.org/browse/CORE-150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy flury updated CORE-150:
----------------------------

    Attachment: Merger.java.patch

> Mulit Line Merge Mappings not working
> -------------------------------------
>
>                 Key: CORE-150
>                 URL: http://jira.andromda.org/browse/CORE-150
>             Project: AndroMDA Core
>          Issue Type: Bug
>    Affects Versions: 3.4-SNAPSHOT
>         Environment: Windows 7
>            Reporter: Andy flury
>            Assignee: Chad Brandon
>            Priority: Minor
>         Attachments: Merger.java.patch
>
>   Original Estimate: 1 hour
>  Remaining Estimate: 1 hour
>
> There seams to be a problem with Multi Line Merge Mappings (Single Line Merge 
> Mappings work without a problem).
> Example: SpringMergeMapping.xml:
>     <?xml version="1.0" encoding="UTF-8"?>
>     <mappings>
>        <mapping>
>           <from><![CDATA[<property reference="driver"/>
>         <property reference="username"/>]]></from>
>           <to><![CDATA[<test/>]]></to>
>        </mapping>
> Unfortunately, the two lines (<property reference="driver"/> and <property 
> reference="username"/>) are not getting recognized by the 
> org.andromda.core.common.Merger.
> The problem seams to be in the org.andromda.core.common.XmlObjectFactory. The 
> method getObject() receives the mapping-file with the original CR & LF (\r 
> \n). The returned org.andromda.core.mapping.Mappings, which contains the 
> parsed mappings however replaced the \r \n by only \n.
> Now of course the String to be replaced cannot be found in the cartridge.xml, 
> and no replacement takes place.
> I can be fixed with the following workaround in 
> org.andromda.core.common.Merger.getMergedString():
> remove all line breaks from both "string" and "from".
>     for (String from : froms) {
>       from = StringUtils.trimToEmpty(from);
>       string = string.replaceAll("\\r|\\n", "");
>       from = string.replaceAll("\\r|\\n", "");
>       if (StringUtils.isNotBlank(from) && string.contains(from)) {
>         final String to = StringUtils.trimToEmpty(mapping.getTo());
>         string = StringUtils.replace(string, from, to);
>       }
>     }
> This should work on all plattforms. It would be nice, if this could be added 
> the 3.4-SNAPSHOT.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev

Reply via email to