alitokmen | 1 Feb 22:02

[cargo-dev] [cargo] r3229 - extensions/trunk/maven2/plugin/src/main/java/org/codehaus/cargo/maven2

Author: alitokmen
Date: 2012-02-01 15:02:47 -0600 (Wed, 01 Feb 2012)
New Revision: 3229

Modified:
   extensions/trunk/maven2/plugin/src/main/java/org/codehaus/cargo/maven2/AbstractCargoMojo.java
Log:
Change the message added in CARGO-975 from WARN to DEBUG

Modified: extensions/trunk/maven2/plugin/src/main/java/org/codehaus/cargo/maven2/AbstractCargoMojo.java
===================================================================
---
extensions/trunk/maven2/plugin/src/main/java/org/codehaus/cargo/maven2/AbstractCargoMojo.java	2012-01-28
17:23:45 UTC (rev 3228)
+++
extensions/trunk/maven2/plugin/src/main/java/org/codehaus/cargo/maven2/AbstractCargoMojo.java	2012-02-01
21:02:47 UTC (rev 3229)
@@ -635,7 +635,7 @@
             }
             catch (Exception e)
             {
-                createLogger().warn("Cannot resolve container artifact " + containerArtifact
+                createLogger().debug("Cannot resolve container artifact " + containerArtifact
                     + " for container " + containerId + ": " + e.toString(),
                     this.getClass().getName());
             }

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

(Continue reading)

Codehaus Bamboo | 2 Feb 16:57

[cargo-dev] [Bamboo] Cargo > CARGO trunks - Compile and test (JDK 7, Maven3) > #127 has FAILED (2 times).

.successful a, .successful a:visited, .successful a:link, .successful a:hover,.successful a:active {color:#393} .failed a, .failed a:visited, .failed a:link, .failed a:hover,.failed a:active {color:#d62829} td a, td a:link, td a:visited, td a:hover, td a:active {background:transparent;font-family: Arial, sans-serif;text-decoration:underline;} td a:link {color:#369;} td a:visited {color:#444;} td a:hover, td a:active {color:#036;} td a:hover {text-decoration:none;}
Cargo > CARGO trunks - Compile and test (JDK 7, Maven3) > #127 has failed 2 times.
This build occurred because it is a dependant of CARGO-TRUNKM2JDK15-1258.
2/735 tests failed.

This plan has been failing since CARGO-TRUNKM3JDK7-126 (Scheduled build, 4 hours before).

Failing Jobs
Default Job (Default Stage) Duration: 9 minutes Tests: 2 of 735 failed Logs | Artifacts

Code Changes View all 4 code changes
alitokmen
Add ScopeArtifactFilter(Artifact.SCOPE_COMPILE) to avoid resolving too much
(3227)
alitokmen
Change the message added in CARGO-975 from WARN to DEBUG
(3229)
alitokmen
Use JOnAS configurator 1.3.5 for compatibility with JOnAS 5.3.0 M6+
(3228)

1 more changes...

Tests See full test details
Existing Test Failures (2)
RunMojoTest : Cargo (Default Job)
RunMojoTest : Simple war jsp (Default Job)

Email generated by Atlassian Bamboo - if you wish to stop receiving these emails edit your user profile or notify your administrator
Actions
View Online
Add Comments
Link to JIRA issue

(CARGO-1078) Duplicate entries when merging <filter-mapping>

Savas Ali Tokmen created CARGO-1078:
---------------------------------------

             Summary: Duplicate entries when merging <filter-mapping>
                 Key: CARGO-1078
                 URL: https://jira.codehaus.org/browse/CARGO-1078
             Project: Cargo
          Issue Type: Bug
          Components: Core
            Reporter: Savas Ali Tokmen
            Priority: Minor

See: http://old.nabble.com/Duplicate-entries-when-merging-wars-to33241645.html

---

I'm trying to merge 2 wars with cargo-maven2-plugin 1.2.0.

Merging context-params works as expected, but for filter-mappings there are duplicate entries in the
resulting web.xml.

Each of the source web.xml contains an entry:

{noformat}
  <filter-mapping>
    <filter-name>Trinidad Filter</filter-name>
    <url-pattern>*.jsf</url-pattern>
  </filter-mapping>
{noformat}

In the resulting web.xml there are 2 entries for filter-mapping.

Note: For servlet and filter elements this is not the case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

(CARGO-1079) Add support for merging <mime-mapping>

Savas Ali Tokmen created CARGO-1079:
---------------------------------------

             Summary: Add support for merging <mime-mapping>
                 Key: CARGO-1079
                 URL: https://jira.codehaus.org/browse/CARGO-1079
             Project: Cargo
          Issue Type: Improvement
          Components: Core
    Affects Versions: 1.2.0
            Reporter: Savas Ali Tokmen
            Priority: Minor

See: http://old.nabble.com/Duplicate-entries-when-merging-wars-to33241645.html

---

I'm trying to merge 2 wars with cargo-maven2-plugin 1.2.0.

Merging context-params works as expected, but for mime-mappings there are duplicate entries in the
resulting web.xml.

Each of the source web.xml contains an entry

{noformat}
  <mime-mapping>
    <extension>js</extension>
    <mime-type>application/x-javascript</mime-type>
  </mime-mapping>
{noformat}

In the resulting web.xml there are 2 entries for mime-mapping.

Note: For servlet and filter elements this is not the case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

(CARGO-1078) Duplicate entries when merging <filter-mapping>


     [
https://jira.codehaus.org/browse/CARGO-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Savas Ali Tokmen updated CARGO-1078:
------------------------------------

    Affects Version/s: 1.2.0

> Duplicate entries when merging <filter-mapping>
> -----------------------------------------------
>
>                 Key: CARGO-1078
>                 URL: https://jira.codehaus.org/browse/CARGO-1078
>             Project: Cargo
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.0
>            Reporter: Savas Ali Tokmen
>            Priority: Minor
>
> See: http://old.nabble.com/Duplicate-entries-when-merging-wars-to33241645.html
> ---
> I'm trying to merge 2 wars with cargo-maven2-plugin 1.2.0.
> Merging context-params works as expected, but for filter-mappings there are duplicate entries in the
resulting web.xml.
> Each of the source web.xml contains an entry:
> {noformat}
>   <filter-mapping>
>     <filter-name>Trinidad Filter</filter-name>
>     <url-pattern>*.jsf</url-pattern>
>   </filter-mapping>
> {noformat}
> In the resulting web.xml there are 2 entries for filter-mapping.
> Note: For servlet and filter elements this is not the case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

alitokmen | 2 Feb 22:51

[cargo-dev] [cargo] r3230 - in core/trunk/api/module/src: main/java/org/codehaus/cargo/module/webapp main/java/org/codehaus/cargo/module/webapp/elements main/java/org/codehaus/cargo/module/webapp/merge test/java/org/codehaus/cargo/module/webapp/merge

Author: alitokmen
Date: 2012-02-02 15:51:01 -0600 (Thu, 02 Feb 2012)
New Revision: 3230

Added:
   core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java
Modified:
   core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java
   core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java
   core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java
   core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java
   core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java
   core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java
   core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java
   core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java
   core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java
   core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java
   core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java
   core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java
Log:
Fix: CARGO-1078 - Duplicate entries when merging <filter-mapping>
Fix: CARGO-1079 - Add support for merging <mime-mapping>

Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -28,6 +28,7  <at>  <at> 
 import org.codehaus.cargo.module.webapp.elements.FilterMapping;
 import org.codehaus.cargo.module.webapp.elements.InitParam;
 import org.codehaus.cargo.module.webapp.elements.Listener;
+import org.codehaus.cargo.module.webapp.elements.MimeMapping;
 import org.codehaus.cargo.module.webapp.elements.SecurityConstraint;
 import org.codehaus.cargo.module.webapp.elements.Servlet;
 
 <at>  <at>  -72,7 +73,7  <at>  <at> 
             new WebXmlTag(this, "servlet-mapping"),
             new WebXmlTag(this, "url-pattern"),
             new WebXmlTag(this, "session-config", false),
-            new WebXmlTag(this, "mime-mapping"),
+            new WebXmlTag(this, "mime-mapping", false, null, MimeMapping.class),
             new WebXmlTag(this, "welcome-file-list", false),
             new WebXmlTag(this, "error-page", true, new Identifier(
                     "concat(error-code,'>',exception-type)"), null), new WebXmlTag(this, "taglib"),

Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -33,6 +33,7  <at>  <at> 
 import org.codehaus.cargo.module.webapp.elements.FilterMapping;
 import org.codehaus.cargo.module.webapp.elements.InitParam;
 import org.codehaus.cargo.module.webapp.elements.Listener;
+import org.codehaus.cargo.module.webapp.elements.MimeMapping;
 import org.codehaus.cargo.module.webapp.elements.SecurityConstraint;
 import org.codehaus.cargo.module.webapp.elements.Servlet;
 
 <at>  <at>  -99,7 +100,7  <at>  <at> 
             new WebXmlTag(this, "servlet-mapping"),
             new WebXmlTag(this, "url-pattern"),
             new WebXmlTag(this, "session-config", false),
-            new WebXmlTag(this, "mime-mapping"),
+            new WebXmlTag(this, "mime-mapping", false, null, MimeMapping.class),
             new WebXmlTag(this, "welcome-file-list", false),
             new WebXmlTag(this, "error-page", true, new Identifier(
                         "concat(error-code,'>',exception-type)"), null),

Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -148,6 +148,16  <at>  <at> 
     public static final String MIME_MAPPING = "mime-mapping";
 
     /**
+     * Element name 'extension'.
+     */
+    public static final String EXTENSION = "extension";
+
+    /**
+     * Element name 'mime-type'.
+     */
+    public static final String MIME_TYPE = "mime-type";
+
+    /**
      * Element name 'welcome-file-list'.
      */
     public static final String WELCOME_FILE_LIST = "welcome-file-list";

Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -20,6 +20,7  <at>  <at> 
 package org.codehaus.cargo.module.webapp;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.codehaus.cargo.module.Descriptor;
 <at>  <at>  -857,39 +858,70  <at>  <at> 
             throw new IllegalStateException("Filter '" + filterName + "' not defined");
         }
 
-        FilterMapping filterMappingElement = (FilterMapping) webXml.getDescriptorType()
-                .getTagByName(WebXmlType.FILTER_MAPPING).create();
+        List<FilterMapping> mappings = WebXmlUtils.getFilterMappingElements(webXml,
+            filterName);
 
-        filterMappingElement.addContent(webXml.getDescriptorType().getTagByName(
-            WebXmlType.FILTER_NAME).create().setText(
-            filterName));
+        FilterMapping filterMappingElement = null;
+        for (FilterMapping mapping : mappings)
+        {
+            if (rhs.getUrlPattern() != null)
+            {
+                if (rhs.getUrlPattern().equals(mapping.getUrlPattern()))
+                {
+                    filterMappingElement = mapping;
+                    break;
+                }
+            }
+            else if (rhs.getServletName() != null)
+            {
+                if (rhs.getServletName().equals(mapping.getServletName()))
+                {
+                    filterMappingElement = mapping;
+                    break;
+                }
+            }
+        }
 
-        String urlPattern = rhs.getUrlPattern();
+        if (filterMappingElement == null)
+        {
+            filterMappingElement = (FilterMapping) webXml.getDescriptorType()
+                    .getTagByName(WebXmlType.FILTER_MAPPING).create();
 
-        if (urlPattern != null)
-        {
             filterMappingElement.addContent(webXml.getDescriptorType().getTagByName(
-                    WebXmlType.URL_PATTERN).create().setText(urlPattern));
-        }
-        else
-        {
-            // must be servlet name instead
-            String servletName = rhs.getServletName();
-            if (servletName == null)
+                WebXmlType.FILTER_NAME).create().setText(filterName));
+
+            String urlPattern = rhs.getUrlPattern();
+
+            if (urlPattern != null)
             {
-                throw new IllegalStateException("Filter '" + filterName
-                        + "' has neither a servlet-name nor a url-pattern.");
+                filterMappingElement.addContent(webXml.getDescriptorType().getTagByName(
+                        WebXmlType.URL_PATTERN).create().setText(urlPattern));
             }
-            filterMappingElement.setServletName(servletName);
+            else
+            {
+                // must be servlet name instead
+                String servletName = rhs.getServletName();
+                if (servletName == null)
+                {
+                    throw new IllegalStateException("Filter '" + filterName
+                            + "' has neither a servlet-name nor a url-pattern.");
+                }
+                filterMappingElement.setServletName(servletName);
+            }
         }
 
         String[] dispatchers = rhs.getDispatchers();
+        List<String> filterMappingElementDispatchers =
+            Arrays.asList(filterMappingElement.getDispatchers());
 
         if (dispatchers != null)
         {
             for (String dispatcher : dispatchers)
             {
-                filterMappingElement.addDispatcher(dispatcher);
+                if (!filterMappingElementDispatchers.contains(dispatcher))
+                {
+                    filterMappingElement.addDispatcher(dispatcher);
+                }
             }
         }
 
 <at>  <at>  -1006,7 +1038,6  <at>  <at> 
         }
 
         return initParam.getParamValue();
-
     }
 
     /**

Added: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java	                        (rev 0)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -0,0 +1,79  <at>  <at> 
+/*
+ * ========================================================================
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.elements;
+
+import org.codehaus.cargo.module.webapp.WebXmlTag;
+import org.codehaus.cargo.module.webapp.WebXmlType;
+import org.jdom.Element;
+
+/**
+ *  <at> version $Id$
+ */
+public class MimeMapping extends WebXmlElement
+{
+    /**
+     * Constructor.
+     *  <at> param tag Web Xml Tag definition
+     */
+    public MimeMapping(WebXmlTag tag)
+    {
+        super(tag);
+    }
+
+    /**
+     * Get the Extension.
+     *  <at> return Extension
+     */
+    public String getExtension()
+    {
+        Element e = getChild(WebXmlType.EXTENSION, this.getNamespace());
+        return e.getText();
+    }
+
+    /**
+     * Set the Extension.
+     *  <at> param extension The Extension
+     */
+    public void setExtension(String extension)
+    {
+        Element e = child(WebXmlType.EXTENSION);
+        e.setText(extension);
+    }
+
+    /**
+     * Get the mime type.
+     *  <at> return The mime type
+     */
+    public String getMimeType()
+    {
+        Element e = getChild(WebXmlType.MIME_TYPE, this.getNamespace());
+        return e.getText();
+    }
+
+    /**
+     * Set the mime type.
+     *  <at> param mimeType The mime type
+     */
+    public void setMimeType(String mimeType)
+    {
+        Element e = child(WebXmlType.MIME_TYPE);
+        e.setText(mimeType);
+    }
+}


Property changes on: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native

Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -35,7 +35,9  <at>  <at> 
 import org.codehaus.cargo.module.webapp.WebXmlUtils;
 import org.codehaus.cargo.module.webapp.WebXmlVersion;
 import org.codehaus.cargo.module.webapp.elements.FilterMapping;
+import org.codehaus.cargo.module.webapp.elements.MimeMapping;
 import org.codehaus.cargo.util.CargoException;
+import org.jdom.Element;
 
 /**
  * Helper class that can merge two web deployment descriptors.
 <at>  <at>  -70,6 +72,8  <at>  <at> 
             WebXmlType.FILTER_MAPPING, DescriptorMergerByTag.IGNORE);
         descriptorMergerByTag.setStrategy(
             WebXmlType.SERVLET, DescriptorMergerByTag.IGNORE);
+        descriptorMergerByTag.setStrategy(
+            WebXmlType.MIME_MAPPING, DescriptorMergerByTag.IGNORE);
 
         addMerger(descriptorMergerByTag);
     }
 <at>  <at>  -129,6 +133,7  <at>  <at> 
 
             mergeSecurityRoles(theMergeWebXml);
 
+            mergeMimeMappings(theMergeWebXml);
         }
         catch (Exception e)
         {
 <at>  <at>  -312,4 +317,53  <at>  <at> 
                 this.getClass().getName());
         }
     }
+
+    /**
+     * Merges the servlet definitions from the specified descriptor into the original descriptor.
+     * 
+     *  <at> param theWebXml The descriptor that contains the filter definitions that are to be merged
+     * into the original descriptor
+     */
+    protected final void mergeMimeMappings(WebXml theWebXml)
+    {
+        int count = 0;
+
+        List<Element> srcItems = webXml.getTags(WebXmlType.MIME_MAPPING);
+        List<Element> targetItems = theWebXml.getTags(WebXmlType.MIME_MAPPING);
+
+        for (Element targetItem : targetItems)
+        {
+            boolean foundItem = false;
+
+            MimeMapping targetMimeMapping = (MimeMapping) targetItem;
+
+            for (Element srcItem : srcItems)
+            {
+                MimeMapping srcMimeMapping = (MimeMapping) srcItem;
+
+                if (targetMimeMapping.getExtension().equals(srcMimeMapping.getExtension()))
+                {
+                    foundItem = true;
+                    break;
+                }
+            }
+
+            if (!foundItem)
+            {
+                MimeMapping mimeMappingElement = (MimeMapping) webXml.getDescriptorType().
+                    getTagByName(WebXmlType.MIME_MAPPING).create();
+
+                mimeMappingElement.setExtension(targetMimeMapping.getExtension());
+                mimeMappingElement.setMimeType(targetMimeMapping.getMimeType());
+
+                this.webXml.addElement(mimeMappingElement.getTag(), mimeMappingElement,
+                    this.webXml.getRootElement());
+                this.webXml.addTag(mimeMappingElement);
+            }
+        }
+
+        getLogger().debug("Merged " + count + " mime mapping definition"
+            + (count != 1 ? "s " : " ") + "into the descriptor",
+            this.getClass().getName());
+    }
 }

Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -1,421 +1,421  <at>  <at> 
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file 
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ========================================================================
- */
-package org.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.merge.DescriptorMergerByTag;
-import org.codehaus.cargo.module.merge.tagstrategy.NodeMergeStrategy;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlType;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger} with merge strategies.
- * 
- *  <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlContextParamMergeStrategyMergerTest extends AbstractDocumentBuilderTest
-{
-    /**
-     * Creates WebXml with given context parameter.
-     * 
-     *  <at> param name parameter name
-     *  <at> param value parameter value
-     *  <at> return corresponding WebXml object
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    private WebXml getWebXml(String name, String value) throws Exception
-    {
-        String xml = "<web-app>" 
-            + "  <context-param>" 
-            + "    <param-name>" + name + "</param-name>" 
-            + "    <param-value>" + value + "</param-value>" 
-            + "  </context-param>" 
-            + "</web-app>";
-        return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null);
-    }
-
-    /**
-     * Creates JDOM element with given context parameter.
-     * 
-     *  <at> param name parameter name
-     *  <at> param value parameter value
-     *  <at> return JDOM object
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    private Element getContextParamElement(String name, String value) throws Exception
-    {
-        String xml = "<context-param>" 
-            + "  <param-name>" + name + "</param-name>"
-            + "  <param-value>" + value + "</param-value>" 
-            + "</context-param>";
-        return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null)
-                .getRootElement();
-    }
-
-    /**
-     * Retrieves parameter value from "context-param" element.
-     * 
-     *  <at> param param element to inspect
-     *  <at> return parameter value, null for null input
-     */
-    private String getContextParamValue(Element param)
-    {
-        if (param == null)
-        {
-            return null;
-        }
-        return param.getChild(WebXmlType.PARAM_VALUE).getText();
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
-     * assumes that only initial descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInLeftWithPreserveStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("other", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
-     * assumes that only overlay descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInRightWithPreserveStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("other", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value2",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
-     * assumes that both descriptors have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithPreserveStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
-     * assumes that only initial descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInLeftWithOverwiteStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("other", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
-     * assumes that only overlay descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInRightWithOverwiteStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("other", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value2",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
-     * assumes that both descriptors have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithOverwiteStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value2",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
-     * assumes that only initial descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInLeftWithIgnoreStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("other", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
-     * assumes that only overlay descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInRightWithIgnoreStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("other", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
-        merger.merge(mergeWebXml);
-        assertFalse(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-    }
-
-    /**
-     * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
-     * assumes that both descriptors have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithIgnoreStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. This test assumes that only initial
-     * descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInLeftWithNodeMergeStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("other", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name",
-                "$left:param-value $right:param-value");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. This test assumes that only overlay
-     * descriptor have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInRightWithNodeMergeStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("other", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name",
-                "$left:param-value $right:param-value");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value2",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. This test assumes that both descriptors
-     * have the parameter under test.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithNodeMergeStrategy() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name",
-                "$left:param-value $right:param-value");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1 value2",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. In this test merge descriptor uses left
-     * value only.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithNodeMergeStrategyWithLeftValueOnly() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name", "$left:param-value");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. In this test merge descriptor uses right
-     * value only.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithNodeMergeStrategyWithRightValueOnly() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name", "$right:param-value");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value2",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. In this test merge descriptor contains
-     * static text in addition to dynamic values.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithNodeMergeStrategyWithMixedContent() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name",
-                "111 $left:param-value 222 $right:param-value 333");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("111 value1 222 value2 333",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. In this test one of the values to be
-     * replaced contains dollar sign.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithNodeMergeStrategyWithDollarSignInValue() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "${value2}");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name",
-                "$left:param-value $right:param-value");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1 ${value2}",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-    /**
-     * Tests NodeMerge merge strategy. In this test target pattern contains
-     * comma as a delimiter.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeInBothWithNodeMergeStrategyWithCommaInPattern() throws Exception
-    {
-        WebXml srcWebXml = getWebXml("param", "value1");
-        WebXml mergeWebXml = getWebXml("param", "value2");
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        Element format = getContextParamElement("$left:param-name",
-                "$left:param-value,$right:param-value");
-        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
-        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-        assertEquals("value1,value2",
-                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
-    }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file 
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.merge.DescriptorMergerByTag;
+import org.codehaus.cargo.module.merge.tagstrategy.NodeMergeStrategy;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlType;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger} with merge strategies.
+ * 
+ *  <at> version $Id$
+ */
+public final class WebXmlContextParamMergeStrategyMergerTest extends AbstractDocumentBuilderTest
+{
+    /**
+     * Creates WebXml with given context parameter.
+     * 
+     *  <at> param name parameter name
+     *  <at> param value parameter value
+     *  <at> return corresponding WebXml object
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    private WebXml getWebXml(String name, String value) throws Exception
+    {
+        String xml = "<web-app>" 
+            + "  <context-param>" 
+            + "    <param-name>" + name + "</param-name>" 
+            + "    <param-value>" + value + "</param-value>" 
+            + "  </context-param>" 
+            + "</web-app>";
+        return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null);
+    }
+
+    /**
+     * Creates JDOM element with given context parameter.
+     * 
+     *  <at> param name parameter name
+     *  <at> param value parameter value
+     *  <at> return JDOM object
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    private Element getContextParamElement(String name, String value) throws Exception
+    {
+        String xml = "<context-param>" 
+            + "  <param-name>" + name + "</param-name>"
+            + "  <param-value>" + value + "</param-value>" 
+            + "</context-param>";
+        return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null)
+                .getRootElement();
+    }
+
+    /**
+     * Retrieves parameter value from "context-param" element.
+     * 
+     *  <at> param param element to inspect
+     *  <at> return parameter value, null for null input
+     */
+    private String getContextParamValue(Element param)
+    {
+        if (param == null)
+        {
+            return null;
+        }
+        return param.getChild(WebXmlType.PARAM_VALUE).getText();
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
+     * assumes that only initial descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInLeftWithPreserveStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("other", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
+     * assumes that only overlay descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInRightWithPreserveStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("other", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value2",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
+     * assumes that both descriptors have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithPreserveStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
+     * assumes that only initial descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInLeftWithOverwiteStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("other", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
+     * assumes that only overlay descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInRightWithOverwiteStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("other", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value2",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
+     * assumes that both descriptors have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithOverwiteStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value2",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
+     * assumes that only initial descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInLeftWithIgnoreStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("other", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
+     * assumes that only overlay descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInRightWithIgnoreStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("other", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
+        merger.merge(mergeWebXml);
+        assertFalse(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+    }
+
+    /**
+     * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
+     * assumes that both descriptors have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithIgnoreStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. This test assumes that only initial
+     * descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInLeftWithNodeMergeStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("other", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name",
+                "$left:param-value $right:param-value");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. This test assumes that only overlay
+     * descriptor have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInRightWithNodeMergeStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("other", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name",
+                "$left:param-value $right:param-value");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value2",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. This test assumes that both descriptors
+     * have the parameter under test.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithNodeMergeStrategy() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name",
+                "$left:param-value $right:param-value");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1 value2",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. In this test merge descriptor uses left
+     * value only.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithNodeMergeStrategyWithLeftValueOnly() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name", "$left:param-value");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. In this test merge descriptor uses right
+     * value only.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithNodeMergeStrategyWithRightValueOnly() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name", "$right:param-value");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value2",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. In this test merge descriptor contains
+     * static text in addition to dynamic values.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithNodeMergeStrategyWithMixedContent() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name",
+                "111 $left:param-value 222 $right:param-value 333");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("111 value1 222 value2 333",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. In this test one of the values to be
+     * replaced contains dollar sign.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithNodeMergeStrategyWithDollarSignInValue() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "${value2}");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name",
+                "$left:param-value $right:param-value");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1 ${value2}",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+    /**
+     * Tests NodeMerge merge strategy. In this test target pattern contains
+     * comma as a delimiter.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeInBothWithNodeMergeStrategyWithCommaInPattern() throws Exception
+    {
+        WebXml srcWebXml = getWebXml("param", "value1");
+        WebXml mergeWebXml = getWebXml("param", "value2");
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        Element format = getContextParamElement("$left:param-name",
+                "$left:param-value,$right:param-value");
+        NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+        merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+        assertEquals("value1,value2",
+                getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+    }
+
+}


Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native

Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -1,116 +1,116  <at>  <at> 
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file 
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ========================================================================
- */
-package org.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- * 
- *  <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlContextParamMergerTest extends AbstractDocumentBuilderTest
-{
-    /**
-     * Tests whether a single context param is correctly merged into an empty descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneContextParamIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <context-param>"
-            + "    <param-name>param</param-name>"
-            + "    <param-value>value</param-value>"
-            + "  </context-param>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-    }
-
-    /**
-     * Tests whether a single context param is correctly merged into a descriptor that already
-     * contains another context param.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneContextParamIntoDocumentWithAnotherContextParam() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <context-param>"
-            + "    <param-name>param1</param-name>"
-            + "    <param-value>value1</param-value>"
-            + "  </context-param>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <context-param>"
-            + "    <param-name>param2</param-name>"
-            + "    <param-value>value2</param-value>"
-            + "  </context-param>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param1"));
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param2"));
-    }
-
-    /**
-     * Tests whether a single context param in the merge descriptor is ignored because a context
-     * param with the same name already exists in the source descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneContextParamIntoDocumentWithSameContextParam() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <context-param>"
-            + "    <param-name>param</param-name>"
-            + "    <param-value>value</param-value>"
-            + "  </context-param>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.merge(mergeWebXml);
-        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
-    }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file 
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ * 
+ *  <at> version $Id$
+ */
+public final class WebXmlContextParamMergerTest extends AbstractDocumentBuilderTest
+{
+    /**
+     * Tests whether a single context param is correctly merged into an empty descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneContextParamIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <context-param>"
+            + "    <param-name>param</param-name>"
+            + "    <param-value>value</param-value>"
+            + "  </context-param>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+    }
+
+    /**
+     * Tests whether a single context param is correctly merged into a descriptor that already
+     * contains another context param.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneContextParamIntoDocumentWithAnotherContextParam() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <context-param>"
+            + "    <param-name>param1</param-name>"
+            + "    <param-value>value1</param-value>"
+            + "  </context-param>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <context-param>"
+            + "    <param-name>param2</param-name>"
+            + "    <param-value>value2</param-value>"
+            + "  </context-param>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param1"));
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param2"));
+    }
+
+    /**
+     * Tests whether a single context param in the merge descriptor is ignored because a context
+     * param with the same name already exists in the source descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneContextParamIntoDocumentWithSameContextParam() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <context-param>"
+            + "    <param-name>param</param-name>"
+            + "    <param-value>value</param-value>"
+            + "  </context-param>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.merge(mergeWebXml);
+        assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+    }
+
+}


Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native

Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -1,68 +1,68  <at>  <at> 
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file 
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ========================================================================
- */
-package org.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlType;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- * 
- *  <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlEjbRefMergerTest extends AbstractDocumentBuilderTest
-{
-    /**
-     * Tests whether a single EJB reference is correctly inserted into an empty descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneEjbRefIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <ejb-ref>"
-            + "    <ejb-ref-name>ejbref1</ejb-ref-name>"
-            + "    <ejb-ref-type>ejbref1.type</ejb-ref-type>"
-            + "    <home>ejbref1.homeInterface</home>"
-            + "    <remote>ejbref1.remoteInterface</remote>"
-            + "  </ejb-ref>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.merge(mergeWebXml);
-        List<Element> ejbRefs = srcWebXml.getElements(WebXmlType.EJB_REF);
-        assertEquals(1, ejbRefs.size());
-    }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file 
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlType;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ * 
+ *  <at> version $Id$
+ */
+public final class WebXmlEjbRefMergerTest extends AbstractDocumentBuilderTest
+{
+    /**
+     * Tests whether a single EJB reference is correctly inserted into an empty descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneEjbRefIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <ejb-ref>"
+            + "    <ejb-ref-name>ejbref1</ejb-ref-name>"
+            + "    <ejb-ref-type>ejbref1.type</ejb-ref-type>"
+            + "    <home>ejbref1.homeInterface</home>"
+            + "    <remote>ejbref1.remoteInterface</remote>"
+            + "  </ejb-ref>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.merge(mergeWebXml);
+        List<Element> ejbRefs = srcWebXml.getElements(WebXmlType.EJB_REF);
+        assertEquals(1, ejbRefs.size());
+    }
+
+}


Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native

Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -1,302 +1,341  <at>  <at> 
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file 
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ========================================================================
- */
-package org.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- * 
- *  <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlFilterMergerTest extends AbstractDocumentBuilderTest
-{
-    /**
-     * Tests whether a single filter is correctly merged into an empty descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneFilterIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-
-        // WebXml mergeWebXml = new WebXml(mergeDoc);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
-    }
-
-    /**
-     * Tests whether a single filter is correctly merged into a descriptor that already contains
-     * another filter.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneFilterIntoDocumentWithAnotherFilter() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f2</filter-name>"
-            + "    <filter-class>fclass2</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
-        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f2"));
-    }
-
-    /**
-     * Tests whether a single filter in the merge descriptor is ignored because a filter with the
-     * same name already exists in the source descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneFilterIntoDocumentWithSameFilter() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        WebXml mergeWebXml = WebXmlIo
-            .parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
-    }
-
-    /**
-     * Tests whether a single filter is correctly merged into a descriptor that already contains
-     * multiple other filter definitions.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneFilterIntoDocumentWithMultipleFilters() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "  <filter>"
-            + "    <filter-name>f2</filter-name>"
-            + "    <filter-class>fclass2</filter-class>"
-            + "  </filter>"
-            + "  <filter>"
-            + "    <filter-name>f3</filter-name>"
-            + "    <filter-class>fclass3</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f4</filter-name>"
-            + "    <filter-class>fclass4</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
-        assertEquals(4, filterNames.size());
-        assertEquals("f1", filterNames.get(0));
-        assertEquals("f2", filterNames.get(1));
-        assertEquals("f3", filterNames.get(2));
-        assertEquals("f4", filterNames.get(3));
-    }
-
-    /**
-     * Tests whether multiple filters are correctly merged into an empty descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeMultipleFiltersIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "  <filter>"
-            + "    <filter-name>f2</filter-name>"
-            + "    <filter-class>fclass2</filter-class>"
-            + "  </filter>"
-            + "  <filter>"
-            + "    <filter-name>f3</filter-name>"
-            + "    <filter-class>fclass3</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
-        assertEquals(3, filterNames.size());
-        assertEquals("f1", filterNames.get(0));
-        assertEquals("f2", filterNames.get(1));
-        assertEquals("f3", filterNames.get(2));
-    }
-
-    /**
-     * Tests whether a filter with one mapping is correctly merged into an empty descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneFilterWithOneMappingIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "  <filter-mapping>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <url-pattern>/f1mapping1</url-pattern>"
-            + "  </filter-mapping>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
-        List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
-        assertEquals(1, filterMappings.size());
-        assertEquals("/f1mapping1", filterMappings.get(0));
-    }
-
-    /**
-     * Tests wether a single filter with multiple mappings is correctly merged into an empty
-     * descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneFilterWithMultipleMappingsIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "  <filter-mapping>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <url-pattern>/f1mapping1</url-pattern>"
-            + "  </filter-mapping>"
-            + "  <filter-mapping>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <url-pattern>/f1mapping2</url-pattern>"
-            + "  </filter-mapping>"
-            + "  <filter-mapping>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <url-pattern>/f1mapping3</url-pattern>"
-            + "  </filter-mapping>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
-        List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
-        assertEquals(3, filterMappings.size());
-        assertEquals("/f1mapping1", filterMappings.get(0));
-        assertEquals("/f1mapping2", filterMappings.get(1));
-        assertEquals("/f1mapping3", filterMappings.get(2));
-    }
-
-    /**
-     * Tests whether a filter initialization parameter is merged into the descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneFilterIntoDocumentWithSameFilterAndParam() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <filter>"
-            + "    <filter-name>f1</filter-name>"
-            + "    <filter-class>fclass1</filter-class>"
-            + "    <init-param>"
-            + "      <param-name>f1param1</param-name>"
-            + "      <param-value>f1param1value</param-value>"
-            + "    </init-param>"
-            + "  </filter>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeFilters(mergeWebXml);
-        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
-        List<String> initParams = WebXmlUtils.getFilterInitParamNames(srcWebXml, "f1");
-        assertEquals(1, initParams.size());
-        assertEquals("f1param1", initParams.get(0));
-    }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file 
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ * 
+ *  <at> version $Id$
+ */
+public final class WebXmlFilterMergerTest extends AbstractDocumentBuilderTest
+{
+    /**
+     * Tests whether a single filter is correctly merged into an empty descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneFilterIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+
+        // WebXml mergeWebXml = new WebXml(mergeDoc);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+    }
+
+    /**
+     * Tests whether a single filter is correctly merged into a descriptor that already contains
+     * another filter.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneFilterIntoDocumentWithAnotherFilter() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f2</filter-name>"
+            + "    <filter-class>fclass2</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f2"));
+    }
+
+    /**
+     * Tests whether a single filter in the merge descriptor is ignored because a filter with the
+     * same name already exists in the source descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneFilterIntoDocumentWithSameFilter() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        WebXml mergeWebXml = WebXmlIo
+            .parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+    }
+
+    /**
+     * Tests whether a single filter is correctly merged into a descriptor that already contains
+     * multiple other filter definitions.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneFilterIntoDocumentWithMultipleFilters() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "  <filter>"
+            + "    <filter-name>f2</filter-name>"
+            + "    <filter-class>fclass2</filter-class>"
+            + "  </filter>"
+            + "  <filter>"
+            + "    <filter-name>f3</filter-name>"
+            + "    <filter-class>fclass3</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f4</filter-name>"
+            + "    <filter-class>fclass4</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
+        assertEquals(4, filterNames.size());
+        assertEquals("f1", filterNames.get(0));
+        assertEquals("f2", filterNames.get(1));
+        assertEquals("f3", filterNames.get(2));
+        assertEquals("f4", filterNames.get(3));
+    }
+
+    /**
+     * Tests whether multiple filters are correctly merged into an empty descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeMultipleFiltersIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "  <filter>"
+            + "    <filter-name>f2</filter-name>"
+            + "    <filter-class>fclass2</filter-class>"
+            + "  </filter>"
+            + "  <filter>"
+            + "    <filter-name>f3</filter-name>"
+            + "    <filter-class>fclass3</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
+        assertEquals(3, filterNames.size());
+        assertEquals("f1", filterNames.get(0));
+        assertEquals("f2", filterNames.get(1));
+        assertEquals("f3", filterNames.get(2));
+    }
+
+    /**
+     * Tests whether a filter with one mapping is correctly merged into an empty descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneFilterWithOneMappingIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "  <filter-mapping>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <url-pattern>/f1mapping1</url-pattern>"
+            + "  </filter-mapping>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+        List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
+        assertEquals(1, filterMappings.size());
+        assertEquals("/f1mapping1", filterMappings.get(0));
+    }
+
+    /**
+     * Tests whether a single filter with multiple mappings is correctly merged into an empty
+     * descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneFilterWithMultipleMappingsIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "  <filter-mapping>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <url-pattern>/f1mapping1</url-pattern>"
+            + "  </filter-mapping>"
+            + "  <filter-mapping>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <url-pattern>/f1mapping2</url-pattern>"
+            + "  </filter-mapping>"
+            + "  <filter-mapping>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <url-pattern>/f1mapping3</url-pattern>"
+            + "  </filter-mapping>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+        List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
+        assertEquals(3, filterMappings.size());
+        assertEquals("/f1mapping1", filterMappings.get(0));
+        assertEquals("/f1mapping2", filterMappings.get(1));
+        assertEquals("/f1mapping3", filterMappings.get(2));
+    }
+
+    /**
+     * Tests whether the same filter in two different files is mapped correctly (i.e., once).
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeSameFilterInTwoDocuments() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "  <filter-mapping>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <url-pattern>/f1mapping1</url-pattern>"
+            + "  </filter-mapping>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "  <filter-mapping>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <url-pattern>/f1mapping1</url-pattern>"
+            + "  </filter-mapping>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+        List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
+        assertEquals(1, filterMappings.size());
+        assertEquals("/f1mapping1", filterMappings.get(0));
+    }
+
+    /**
+     * Tests whether a filter initialization parameter is merged into the descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneFilterIntoDocumentWithSameFilterAndParam() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <filter>"
+            + "    <filter-name>f1</filter-name>"
+            + "    <filter-class>fclass1</filter-class>"
+            + "    <init-param>"
+            + "      <param-name>f1param1</param-name>"
+            + "      <param-value>f1param1value</param-value>"
+            + "    </init-param>"
+            + "  </filter>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeFilters(mergeWebXml);
+        assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+        List<String> initParams = WebXmlUtils.getFilterInitParamNames(srcWebXml, "f1");
+        assertEquals(1, initParams.size());
+        assertEquals("f1param1", initParams.get(0));
+    }
+
+}


Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native

Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -1,110 +1,110  <at>  <at> 
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file 
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ========================================================================
- */
-package org.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.elements.Listener;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- * 
- *  <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlListenerMergerTest extends AbstractDocumentBuilderTest
-{
-    /**
-     * Test for CARGO-409 that merging listeners does not mess with the order.
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeListeners() throws Exception
-    {
-        String file1 = "<web-app>\r\n"
-            + "   <context-param>\r\n"
-            + "       <param-name>file1-c1</param-name>\r\n"
-            + "       <param-value>file1-v1</param-value>\r\n"
-            + "   </context-param>\r\n"
-            + "\r\n"
-            + "\r\n"
-            + "    <listener>\r\n"
-            + "      <listener-class>file1-lc1</listener-class>\r\n"
-            + "    </listener>\r\n"
-            + "\r\n"
-            + "    <listener>\r\n"
-            + "      <listener-class>file1-lc2</listener-class>\r\n"
-            + "    </listener>\r\n"
-            + "\r\n"
-            + "\r\n"
-            + "    <servlet>\r\n"
-            + "       <servlet-name>file1-S1</servlet-name>\r\n"
-            + "       <servlet-class>file1-C2</servlet-class>\r\n"
-            + "       <load-on-startup>file1-los</load-on-startup>\r\n"
-            + "   </servlet>\r\n"
-            + "</web-app>\r\n";
-
-        String file2 = "<web-app>\r\n"
-            + "   <context-param>\r\n"
-            + "       <param-name>file2-c1</param-name>\r\n"
-            + "       <param-value>file2-v1</param-value>\r\n"
-            + "   </context-param>\r\n"
-            + "\r\n"
-            + "\r\n"
-            + "    <listener>\r\n"
-            + "      <listener-class>file2-lc1</listener-class>\r\n"
-            + "    </listener>\r\n"
-            + "\r\n"
-            + "    <listener>\r\n"
-            + "      <listener-class>file2-lc2</listener-class>\r\n"
-            + "    </listener>\r\n"
-            + "\r\n"
-            + "\r\n"
-            + "    <servlet>\r\n"
-            + "       <servlet-name>file2-S1</servlet-name>\r\n"
-            + "       <servlet-class>file2-C2</servlet-class>\r\n"
-            + "       <load-on-startup>file2-los</load-on-startup>\r\n"
-            + "   </servlet>\r\n"
-            + "</web-app>\r\n"
-            + "";
-
-        WebXml file1WebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(file1.getBytes("UTF-8")), null);
-        WebXml file2WebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(file2.getBytes("UTF-8")), null);
-
-        WebXmlMerger merger = new WebXmlMerger(file1WebXml);
-        merger.merge(file2WebXml);
-
-        List<Element> ejbRefs = file1WebXml.getElements("listener");
-        assertEquals(4, ejbRefs.size());
-        assertEquals(((Listener) ejbRefs.get(0)).getListenerClass(), "file1-lc1");
-        assertEquals(((Listener) ejbRefs.get(1)).getListenerClass(), "file1-lc2");
-        assertEquals(((Listener) ejbRefs.get(2)).getListenerClass(), "file2-lc1");
-        assertEquals(((Listener) ejbRefs.get(3)).getListenerClass(), "file2-lc2");
-    }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file 
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.elements.Listener;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ * 
+ *  <at> version $Id$
+ */
+public final class WebXmlListenerMergerTest extends AbstractDocumentBuilderTest
+{
+    /**
+     * Test for CARGO-409 that merging listeners does not mess with the order.
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeListeners() throws Exception
+    {
+        String file1 = "<web-app>\r\n"
+            + "   <context-param>\r\n"
+            + "       <param-name>file1-c1</param-name>\r\n"
+            + "       <param-value>file1-v1</param-value>\r\n"
+            + "   </context-param>\r\n"
+            + "\r\n"
+            + "\r\n"
+            + "    <listener>\r\n"
+            + "      <listener-class>file1-lc1</listener-class>\r\n"
+            + "    </listener>\r\n"
+            + "\r\n"
+            + "    <listener>\r\n"
+            + "      <listener-class>file1-lc2</listener-class>\r\n"
+            + "    </listener>\r\n"
+            + "\r\n"
+            + "\r\n"
+            + "    <servlet>\r\n"
+            + "       <servlet-name>file1-S1</servlet-name>\r\n"
+            + "       <servlet-class>file1-C2</servlet-class>\r\n"
+            + "       <load-on-startup>file1-los</load-on-startup>\r\n"
+            + "   </servlet>\r\n"
+            + "</web-app>\r\n";
+
+        String file2 = "<web-app>\r\n"
+            + "   <context-param>\r\n"
+            + "       <param-name>file2-c1</param-name>\r\n"
+            + "       <param-value>file2-v1</param-value>\r\n"
+            + "   </context-param>\r\n"
+            + "\r\n"
+            + "\r\n"
+            + "    <listener>\r\n"
+            + "      <listener-class>file2-lc1</listener-class>\r\n"
+            + "    </listener>\r\n"
+            + "\r\n"
+            + "    <listener>\r\n"
+            + "      <listener-class>file2-lc2</listener-class>\r\n"
+            + "    </listener>\r\n"
+            + "\r\n"
+            + "\r\n"
+            + "    <servlet>\r\n"
+            + "       <servlet-name>file2-S1</servlet-name>\r\n"
+            + "       <servlet-class>file2-C2</servlet-class>\r\n"
+            + "       <load-on-startup>file2-los</load-on-startup>\r\n"
+            + "   </servlet>\r\n"
+            + "</web-app>\r\n"
+            + "";
+
+        WebXml file1WebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(file1.getBytes("UTF-8")), null);
+        WebXml file2WebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(file2.getBytes("UTF-8")), null);
+
+        WebXmlMerger merger = new WebXmlMerger(file1WebXml);
+        merger.merge(file2WebXml);
+
+        List<Element> ejbRefs = file1WebXml.getElements("listener");
+        assertEquals(4, ejbRefs.size());
+        assertEquals(((Listener) ejbRefs.get(0)).getListenerClass(), "file1-lc1");
+        assertEquals(((Listener) ejbRefs.get(1)).getListenerClass(), "file1-lc2");
+        assertEquals(((Listener) ejbRefs.get(2)).getListenerClass(), "file2-lc1");
+        assertEquals(((Listener) ejbRefs.get(3)).getListenerClass(), "file2-lc2");
+    }
+
+}


Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native

Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -1,94 +1,94  <at>  <at> 
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file 
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ========================================================================
- */
-package org.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- * 
- *  <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlSecurityRoleMergerTest extends AbstractDocumentBuilderTest
-{
-    /**
-     * Tests whether a single security role is correctly inserted into an empty descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeSecurityRoleIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <security-role>"
-            + "    <role-name>role1</role-name>"
-            + "  </security-role>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeSecurityRoles(mergeWebXml);
-        List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
-        assertEquals(1, securityRoleNames.size());
-        assertEquals("role1", securityRoleNames.get(0));
-    }
-
-    /**
-     * Tests whether a single security role is ignored when the source descriptor already contains a
-     * role with the same name.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeSecurityRoleIntoDocumentWithSameRole() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <security-role>"
-            + "    <description>A role</description>"
-            + "    <role-name>role1</role-name>"
-            + "  </security-role>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <security-role>"
-            + "    <role-name>role1</role-name>"
-            + "  </security-role>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeSecurityRoles(mergeWebXml);
-        List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
-        assertEquals(1, securityRoleNames.size());
-        assertEquals("role1", securityRoleNames.get(0));
-    }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file 
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ * 
+ *  <at> version $Id$
+ */
+public final class WebXmlSecurityRoleMergerTest extends AbstractDocumentBuilderTest
+{
+    /**
+     * Tests whether a single security role is correctly inserted into an empty descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeSecurityRoleIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <security-role>"
+            + "    <role-name>role1</role-name>"
+            + "  </security-role>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeSecurityRoles(mergeWebXml);
+        List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
+        assertEquals(1, securityRoleNames.size());
+        assertEquals("role1", securityRoleNames.get(0));
+    }
+
+    /**
+     * Tests whether a single security role is ignored when the source descriptor already contains a
+     * role with the same name.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeSecurityRoleIntoDocumentWithSameRole() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <security-role>"
+            + "    <description>A role</description>"
+            + "    <role-name>role1</role-name>"
+            + "  </security-role>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <security-role>"
+            + "    <role-name>role1</role-name>"
+            + "  </security-role>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeSecurityRoles(mergeWebXml);
+        List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
+        assertEquals(1, securityRoleNames.size());
+        assertEquals("role1", securityRoleNames.get(0));
+    }
+
+}


Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native

Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java	2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java	2012-02-02 21:51:01 UTC (rev 3230)
 <at>  <at>  -1,347 +1,347  <at>  <at> 
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file 
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ========================================================================
- */
-package org.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- * 
- *  <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlServletMergerTest extends AbstractDocumentBuilderTest
-{
-    /**
-     * Tests whether a single servlet is correctly merged into an empty descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneServletIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
-    }
-
-    /**
-     * Tests whether a single servlet is correctly merged into a descriptor that already contains
-     * the definition of an other servlet.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneServletIntoDocumentWithAnotherServlet() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s2</servlet-name>"
-            + "    <servlet-class>sclass2</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
-        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s2"));
-    }
-
-    /**
-     * Tests whether a single servlet is correctly merged into a descriptor that already contains
-     * the definition of a servlet with the same name.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneServletIntoDocumentWithSameServlet() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
-    }
-
-    /**
-     * Tets whether a servlet with an initialization parameter is correctly merged into a descriptor
-     * that contains the definition of a servlet with the same name.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneServletIntoDocumentWithSameServletAndParam() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "    <init-param>"
-            + "      <param-name>s1param1</param-name>"
-            + "      <param-value>s1param1value</param-value>"
-            + "    </init-param>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
-        List<String> initParams = WebXmlUtils.getServletInitParamNames(srcWebXml, "s1");
-        assertEquals(1, initParams.size());
-        assertEquals("s1param1", initParams.get(0));
-        assertEquals("s1param1value",
-            WebXmlUtils.getServletInitParam(srcWebXml, "s1", "s1param1"));
-    }
-
-    /**
-     * Tests whether a single servlet is correctly merged into a descriptor with multiple servlets.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneServletIntoDocumentWithMultipleServlets() throws Exception
-    {
-        String srcXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "  <servlet>"
-            + "    <servlet-name>s2</servlet-name>"
-            + "    <servlet-class>sclass2</servlet-class>"
-            + "  </servlet>"
-            + "  <servlet>"
-            + "    <servlet-name>s3</servlet-name>"
-            + "    <servlet-class>sclass3</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s4</servlet-name>"
-            + "    <servlet-class>sclass4</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
-        assertEquals(4, servletNames.size());
-        assertEquals("s1", servletNames.get(0));
-        assertEquals("s2", servletNames.get(1));
-        assertEquals("s3", servletNames.get(2));
-        assertEquals("s4", servletNames.get(3));
-    }
-
-    /**
-     * Verifies that servlet init parameters are added after the load-on-startup element of an
-     * already existing servlet definition.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergingServletWithInitParamsThatIsAlreadyDefined() throws Exception
-    {
-        String srcXml = "<web-app>".trim()
-            + "  <servlet>".trim()
-            + "    <servlet-name>s1</servlet-name>".trim()
-            + "    <servlet-class>sclass1</servlet-class>".trim()
-            + "    <load-on-startup>1</load-on-startup>".trim()
-            + "  </servlet>".trim()
-            + "</web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>".trim()
-            + "    <servlet-name>s1</servlet-name>".trim()
-            + "    <servlet-class>sclass1</servlet-class>".trim()
-            + "    <init-param>".trim()
-            + "      <param-name>s1param1</param-name>".trim()
-            + "      <param-value>s1param1value</param-value>".trim()
-            + "    </init-param>".trim()
-            + "  </servlet>".trim()
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        Element servletElement = WebXmlUtils.getServlet(srcWebXml, "s1");
-        assertEquals("load-on-startup",
-            ((Element) servletElement.getChildren().get(servletElement.getChildren().size() - 1))
-                .getName());
-    }
-
-    /**
-     * Tests whether multiple servlet in the merge file are correctly inserted into an empty
-     * descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeMultipleServletsIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "  <servlet>"
-            + "    <servlet-name>s2</servlet-name>"
-            + "    <servlet-class>sclass2</servlet-class>"
-            + "  </servlet>"
-            + "  <servlet>"
-            + "    <servlet-name>s3</servlet-name>"
-            + "    <servlet-class>sclass3</servlet-class>"
-            + "  </servlet>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
-        assertEquals(3, servletNames.size());
-        assertEquals("s1", servletNames.get(0));
-        assertEquals("s2", servletNames.get(1));
-        assertEquals("s3", servletNames.get(2));
-    }
-
-    /**
-     * Tests whether a single servlet with one mapping is correctly inserted into an empty
-     * descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneServletWithOneMappingIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "  <servlet-mapping>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <url-pattern>/s1mapping1</url-pattern>"
-            + "  </servlet-mapping>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
-        List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
-        assertEquals(1, servletMappings.size());
-        assertEquals("/s1mapping1", servletMappings.get(0));
-    }
-
-    /**
-     * Tests whether a single servlet with multiple mappings is correctly inserted into an empty
-     * descriptor.
-     * 
-     *  <at> throws Exception If an unexpected error occurs
-     */
-    public void testMergeOneServletWithMultipleMappingsIntoEmptyDocument() throws Exception
-    {
-        String srcXml = "<web-app></web-app>";
-        WebXml srcWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
-        String mergeXml = "<web-app>"
-            + "  <servlet>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <servlet-class>sclass1</servlet-class>"
-            + "  </servlet>"
-            + "  <servlet-mapping>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <url-pattern>/s1mapping1</url-pattern>"
-            + "  </servlet-mapping>"
-            + "  <servlet-mapping>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <url-pattern>/s1mapping2</url-pattern>"
-            + "  </servlet-mapping>"
-            + "  <servlet-mapping>"
-            + "    <servlet-name>s1</servlet-name>"
-            + "    <url-pattern>/s1mapping3</url-pattern>"
-            + "  </servlet-mapping>"
-            + "</web-app>";
-        WebXml mergeWebXml =
-            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
-        merger.mergeServlets(mergeWebXml);
-        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
-        List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
-        assertEquals(3, servletMappings.size());
-        assertEquals("/s1mapping1", servletMappings.get(0));
-        assertEquals("/s1mapping2", servletMappings.get(1));
-        assertEquals("/s1mapping3", servletMappings.get(2));
-    }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file 
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ========================================================================
+ */
+package org.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ * 
+ *  <at> version $Id$
+ */
+public final class WebXmlServletMergerTest extends AbstractDocumentBuilderTest
+{
+    /**
+     * Tests whether a single servlet is correctly merged into an empty descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneServletIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+    }
+
+    /**
+     * Tests whether a single servlet is correctly merged into a descriptor that already contains
+     * the definition of an other servlet.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneServletIntoDocumentWithAnotherServlet() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s2</servlet-name>"
+            + "    <servlet-class>sclass2</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s2"));
+    }
+
+    /**
+     * Tests whether a single servlet is correctly merged into a descriptor that already contains
+     * the definition of a servlet with the same name.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneServletIntoDocumentWithSameServlet() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+    }
+
+    /**
+     * Tets whether a servlet with an initialization parameter is correctly merged into a descriptor
+     * that contains the definition of a servlet with the same name.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneServletIntoDocumentWithSameServletAndParam() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "    <init-param>"
+            + "      <param-name>s1param1</param-name>"
+            + "      <param-value>s1param1value</param-value>"
+            + "    </init-param>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+        List<String> initParams = WebXmlUtils.getServletInitParamNames(srcWebXml, "s1");
+        assertEquals(1, initParams.size());
+        assertEquals("s1param1", initParams.get(0));
+        assertEquals("s1param1value",
+            WebXmlUtils.getServletInitParam(srcWebXml, "s1", "s1param1"));
+    }
+
+    /**
+     * Tests whether a single servlet is correctly merged into a descriptor with multiple servlets.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneServletIntoDocumentWithMultipleServlets() throws Exception
+    {
+        String srcXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "  <servlet>"
+            + "    <servlet-name>s2</servlet-name>"
+            + "    <servlet-class>sclass2</servlet-class>"
+            + "  </servlet>"
+            + "  <servlet>"
+            + "    <servlet-name>s3</servlet-name>"
+            + "    <servlet-class>sclass3</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s4</servlet-name>"
+            + "    <servlet-class>sclass4</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
+        assertEquals(4, servletNames.size());
+        assertEquals("s1", servletNames.get(0));
+        assertEquals("s2", servletNames.get(1));
+        assertEquals("s3", servletNames.get(2));
+        assertEquals("s4", servletNames.get(3));
+    }
+
+    /**
+     * Verifies that servlet init parameters are added after the load-on-startup element of an
+     * already existing servlet definition.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergingServletWithInitParamsThatIsAlreadyDefined() throws Exception
+    {
+        String srcXml = "<web-app>".trim()
+            + "  <servlet>".trim()
+            + "    <servlet-name>s1</servlet-name>".trim()
+            + "    <servlet-class>sclass1</servlet-class>".trim()
+            + "    <load-on-startup>1</load-on-startup>".trim()
+            + "  </servlet>".trim()
+            + "</web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>".trim()
+            + "    <servlet-name>s1</servlet-name>".trim()
+            + "    <servlet-class>sclass1</servlet-class>".trim()
+            + "    <init-param>".trim()
+            + "      <param-name>s1param1</param-name>".trim()
+            + "      <param-value>s1param1value</param-value>".trim()
+            + "    </init-param>".trim()
+            + "  </servlet>".trim()
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        Element servletElement = WebXmlUtils.getServlet(srcWebXml, "s1");
+        assertEquals("load-on-startup",
+            ((Element) servletElement.getChildren().get(servletElement.getChildren().size() - 1))
+                .getName());
+    }
+
+    /**
+     * Tests whether multiple servlet in the merge file are correctly inserted into an empty
+     * descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeMultipleServletsIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "  <servlet>"
+            + "    <servlet-name>s2</servlet-name>"
+            + "    <servlet-class>sclass2</servlet-class>"
+            + "  </servlet>"
+            + "  <servlet>"
+            + "    <servlet-name>s3</servlet-name>"
+            + "    <servlet-class>sclass3</servlet-class>"
+            + "  </servlet>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
+        assertEquals(3, servletNames.size());
+        assertEquals("s1", servletNames.get(0));
+        assertEquals("s2", servletNames.get(1));
+        assertEquals("s3", servletNames.get(2));
+    }
+
+    /**
+     * Tests whether a single servlet with one mapping is correctly inserted into an empty
+     * descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneServletWithOneMappingIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "  <servlet-mapping>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <url-pattern>/s1mapping1</url-pattern>"
+            + "  </servlet-mapping>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+        List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
+        assertEquals(1, servletMappings.size());
+        assertEquals("/s1mapping1", servletMappings.get(0));
+    }
+
+    /**
+     * Tests whether a single servlet with multiple mappings is correctly inserted into an empty
+     * descriptor.
+     * 
+     *  <at> throws Exception If an unexpected error occurs
+     */
+    public void testMergeOneServletWithMultipleMappingsIntoEmptyDocument() throws Exception
+    {
+        String srcXml = "<web-app></web-app>";
+        WebXml srcWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+        String mergeXml = "<web-app>"
+            + "  <servlet>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <servlet-class>sclass1</servlet-class>"
+            + "  </servlet>"
+            + "  <servlet-mapping>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <url-pattern>/s1mapping1</url-pattern>"
+            + "  </servlet-mapping>"
+            + "  <servlet-mapping>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <url-pattern>/s1mapping2</url-pattern>"
+            + "  </servlet-mapping>"
+            + "  <servlet-mapping>"
+            + "    <servlet-name>s1</servlet-name>"
+            + "    <url-pattern>/s1mapping3</url-pattern>"
+            + "  </servlet-mapping>"
+            + "</web-app>";
+        WebXml mergeWebXml =
+            WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+        WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+        merger.mergeServlets(mergeWebXml);
+        assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+        List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
+        assertEquals(3, servletMappings.size());
+        assertEquals("/s1mapping1", servletMappings.get(0));
+        assertEquals("/s1mapping2", servletMappings.get(1));
+        assertEquals("/s1mapping3", servletMappings.get(2));
+    }
+
+}


Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java
___________________________________________________________________
Added: svn:keywords
   + "Author Date Id Revision"
Added: svn:eol-style
   + native


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



(CARGO-1078) Duplicate entries when merging <filter-mapping>


     [
https://jira.codehaus.org/browse/CARGO-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Savas Ali Tokmen closed CARGO-1078.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.3.0
                   1.2.1
         Assignee: Savas Ali Tokmen

Committed revision 3230.

                
> Duplicate entries when merging <filter-mapping>
> -----------------------------------------------
>
>                 Key: CARGO-1078
>                 URL: https://jira.codehaus.org/browse/CARGO-1078
>             Project: Cargo
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.0
>            Reporter: Savas Ali Tokmen
>            Assignee: Savas Ali Tokmen
>            Priority: Minor
>             Fix For: 1.2.1, 1.3.0
>
>
> See: http://old.nabble.com/Duplicate-entries-when-merging-wars-to33241645.html
> ---
> I'm trying to merge 2 wars with cargo-maven2-plugin 1.2.0.
> Merging context-params works as expected, but for filter-mappings there are duplicate entries in the
resulting web.xml.
> Each of the source web.xml contains an entry:
> {noformat}
>   <filter-mapping>
>     <filter-name>Trinidad Filter</filter-name>
>     <url-pattern>*.jsf</url-pattern>
>   </filter-mapping>
> {noformat}
> In the resulting web.xml there are 2 entries for filter-mapping.
> Note: For servlet and filter elements this is not the case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

(CARGO-1079) Add support for merging <mime-mapping>


     [
https://jira.codehaus.org/browse/CARGO-1079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Savas Ali Tokmen closed CARGO-1079.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.3.0
                   1.2.1
         Assignee: Savas Ali Tokmen

Committed revision 3230.

                
> Add support for merging <mime-mapping>
> --------------------------------------
>
>                 Key: CARGO-1079
>                 URL: https://jira.codehaus.org/browse/CARGO-1079
>             Project: Cargo
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.2.0
>            Reporter: Savas Ali Tokmen
>            Assignee: Savas Ali Tokmen
>            Priority: Minor
>             Fix For: 1.2.1, 1.3.0
>
>
> See: http://old.nabble.com/Duplicate-entries-when-merging-wars-to33241645.html
> ---
> I'm trying to merge 2 wars with cargo-maven2-plugin 1.2.0.
> Merging context-params works as expected, but for mime-mappings there are duplicate entries in the
resulting web.xml.
> Each of the source web.xml contains an entry
> {noformat}
>   <mime-mapping>
>     <extension>js</extension>
>     <mime-type>application/x-javascript</mime-type>
>   </mime-mapping>
> {noformat}
> In the resulting web.xml there are 2 entries for mime-mapping.
> Note: For servlet and filter elements this is not the case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

Codehaus Bamboo | 2 Feb 23:12

[cargo-dev] [Bamboo] Cargo > CARGO trunks - Compile, test and deploy (JDK 6, Maven3) > #485 has FAILED. Change made by alitokmen.

.successful a, .successful a:visited, .successful a:link, .successful a:hover,.successful a:active {color:#393} .failed a, .failed a:visited, .failed a:link, .failed a:hover,.failed a:active {color:#d62829} .notexecuted a, .notexecuted a:visited, .notexecuted a:link, .notexecuted a:hover,.notexecuted a:active {color:#ffcc66} td a, td a:link, td a:visited, td a:hover, td a:active {background:transparent;font-family: Arial, sans-serif;text-decoration:underline;} td a:link {color:#369;} td a:visited {color:#444;} td a:hover, td a:active {color:#036;} td a:hover {text-decoration:none;}
Cargo > CARGO trunks - Compile, test and deploy (JDK 6, Maven3) > #485 has failed.
Code has been updated by alitokmen.
No failed tests found, a possible compilation error.

Failing Jobs
Default Job (Default Stage) Duration: 19 minutes Tests: 720 passed Logs | Artifacts

Code Changes See full change details
alitokmen
Fix: CARGO-1078 - Duplicate entries when merging <filter-mapping>
Fix: CARGO-1079 - Add support for merging <mime-mapping>
(3230)

Actions
View Online
Add Comments
Link to JIRA issue
Email generated by Atlassian Bamboo - if you wish to stop receiving these emails edit your user profile or notify your administrator
Codehaus Bamboo | 2 Feb 23:34

[cargo-dev] [Bamboo] Cargo > CARGO trunks - Compile, test and deploy (JDK 6, Maven3) > #486 was SUCCESSFUL (with 736 tests)

.successful a, .successful a:visited, .successful a:link, .successful a:hover,.successful a:active {color:#393} .failed a, .failed a:visited, .failed a:link, .failed a:hover,.failed a:active {color:#d62829} .notexecuted a, .notexecuted a:visited, .notexecuted a:link, .notexecuted a:hover,.notexecuted a:active {color:#ffcc66} td a, td a:link, td a:visited, td a:hover, td a:active {background:transparent;font-family: Arial, sans-serif;text-decoration:underline;} td a:link {color:#369;} td a:visited {color:#444;} td a:hover, td a:active {color:#036;} td a:hover {text-decoration:none;}
Cargo > CARGO trunks - Compile, test and deploy (JDK 6, Maven3) > #486 was successful.
This build was manually triggered by alitokmen.
736 tests in total.

Code Changes
This build does not have any commits.

Actions
View Online
Add Comments
Link to JIRA issue
Email generated by Atlassian Bamboo - if you wish to stop receiving these emails edit your user profile or notify your administrator

Gmane