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

Bob Fields closed CORE-150.
---------------------------

       Resolution: Fixed
    Fix Version/s: 3.4-SNAPSHOT
         Assignee: Bob Fields  (was: Chad Brandon)

Also fixed the CartridgeTest maven plugin to be non-platform specific.

> 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: Bob Fields
>            Priority: Minor
>             Fix For: 3.4-SNAPSHOT
>
>         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

        

------------------------------------------------------------------------------
Fulfilling the Lean Software Promise
Lean software platforms are now widely adopted and the benefits have been 
demonstrated beyond question. Learn why your peers are replacing JEE 
containers with lightweight application servers - and what you can gain 
from the move. http://p.sf.net/sfu/vmware-sfemails

Reply via email to