svn commit: r833728 [3/5] - in /maven/archetype/trunk: ./ archetype-common/ archetype-common/src/main/java/org/apache/maven/archetype/common/ archetype-common/src/main/java/org/apache/maven/archetype/exception/ archetype-common/src/main/mdo/ archetype-...

View: New views
1 Messages — Rating Filter:   Alert me  

svn commit: r833728 [3/5] - in /maven/archetype/trunk: ./ archetype-common/ archetype-common/src/main/java/org/apache/maven/archetype/common/ archetype-common/src/main/java/org/apache/maven/archetype/exception/ archetype-common/src/main/mdo/ archetype-...

by bentmann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java?rev=833728&r1=833727&r2=833728&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java Sat Nov  7 18:28:39 2009
@@ -1,3193 +1,3193 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-
-/*
- * $Id$
- */
-
-package org.apache.maven.archetype.common;
-
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
-
-import org.apache.maven.archetype.common.util.Format;
-import org.apache.maven.archetype.common.util.XMLOutputter;
-import org.apache.maven.model.Activation;
-import org.apache.maven.model.ActivationFile;
-import org.apache.maven.model.ActivationOS;
-import org.apache.maven.model.ActivationProperty;
-import org.apache.maven.model.Build;
-import org.apache.maven.model.BuildBase;
-import org.apache.maven.model.CiManagement;
-import org.apache.maven.model.ConfigurationContainer;
-import org.apache.maven.model.Contributor;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.model.DependencyManagement;
-import org.apache.maven.model.DeploymentRepository;
-import org.apache.maven.model.Developer;
-import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.model.Exclusion;
-import org.apache.maven.model.Extension;
-import org.apache.maven.model.FileSet;
-import org.apache.maven.model.IssueManagement;
-import org.apache.maven.model.License;
-import org.apache.maven.model.MailingList;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.ModelBase;
-import org.apache.maven.model.Notifier;
-import org.apache.maven.model.Organization;
-import org.apache.maven.model.Parent;
-import org.apache.maven.model.PatternSet;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.PluginConfiguration;
-import org.apache.maven.model.PluginContainer;
-import org.apache.maven.model.PluginExecution;
-import org.apache.maven.model.PluginManagement;
-import org.apache.maven.model.Prerequisites;
-import org.apache.maven.model.Profile;
-import org.apache.maven.model.Relocation;
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.model.ReportSet;
-import org.apache.maven.model.Reporting;
-import org.apache.maven.model.Repository;
-import org.apache.maven.model.RepositoryBase;
-import org.apache.maven.model.RepositoryPolicy;
-import org.apache.maven.model.Resource;
-import org.apache.maven.model.Scm;
-import org.apache.maven.model.Site;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.jdom.Content;
-import org.jdom.DefaultJDOMFactory;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.Text;
-
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.ListIterator;
-import java.util.Map;
-
-/**
- * Class MavenJDOMWriter.
- *
- * @version $Revision$ $Date$
- */
-public class MavenJDOMWriter
-{
-    // --------------------------/
-    // - Class/Member Variables -/
-    // --------------------------/
-
-    /** Field factory. */
-    private DefaultJDOMFactory factory;
-
-    /** Field lineSeparator. */
-    private String lineSeparator;
-
-    // ----------------/
-    // - Constructors -/
-    // ----------------/
-
-    public MavenJDOMWriter()
-    {
-        factory = new DefaultJDOMFactory();
-        lineSeparator = "\n";
-    } // -- org.apache.maven.model.io.jdom.MavenJDOMWriter()
-
-    /**
-     * Method write.
-     *
-     * @param project
-     * @param stream
-     * @param document
-     * @deprecated
-     */
-    public void write( Model project,
-                       Document document,
-                       OutputStream stream )
-        throws
-        java.io.IOException
-    {
-        updateModel( project, "project", new Counter( 0 ), document.getRootElement() );
-
-        XMLOutputter outputter = new XMLOutputter();
-        outputter.setFormat(
-            Format.getPrettyFormat().setIndent( "    " ).setLineSeparator(
-                System.getProperty( "line.separator" )
-            )
-        );
-        outputter.output( document, stream );
-    } // -- void write(Model, Document, OutputStream)
-
-    /**
-     * Method write.
-     *
-     * @param project
-     * @param writer
-     * @param document
-     */
-    public void write( Model project,
-                       Document document,
-                       OutputStreamWriter writer )
-        throws
-        java.io.IOException
-    {
-        Format format =
-            Format.getRawFormat().setEncoding( writer.getEncoding() ).setLineSeparator(
-                System.getProperty( "line.separator" )
-            );
-        write( project, document, writer, format );
-    } // -- void write(Model, Document, OutputStreamWriter)
-
-    /**
-     * Method write.
-     *
-     * @param project
-     * @param jdomFormat
-     * @param writer
-     * @param document
-     */
-    public void write( Model project,
-                       Document document,
-                       Writer writer,
-                       Format jdomFormat )
-        throws
-        java.io.IOException
-    {
-        updateModel( project, "project", new Counter( 0 ), document.getRootElement() );
-
-        XMLOutputter outputter = new XMLOutputter();
-        outputter.setFormat( jdomFormat );
-        outputter.output( document, writer );
-    } // -- void write(Model, Document, Writer, Format)
-
-    // -----------/
-    // - Methods -/
-    // -----------/
-
-    /**
-     * Method findAndReplaceProperties.
-     *
-     * @param counter
-     * @param props
-     * @param name
-     * @param parent
-     */
-    protected Element findAndReplaceProperties(
-        Counter counter,
-        Element parent,
-        String name,
-        Map props
-    )
-    {
-        boolean shouldExist = ( props != null ) && !props.isEmpty();
-        Element element = updateElement( counter, parent, name, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = props.keySet().iterator();
-            Counter innerCounter = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                String key = (String) it.next();
-                findAndReplaceSimpleElement(
-                    innerCounter,
-                    element,
-                    key,
-                    (String) props.get( key ),
-                    null
-                );
-            }
-
-            ArrayList lst = new ArrayList( props.keySet() );
-            it = element.getChildren().iterator();
-            while ( it.hasNext() )
-            {
-                Element elem = (Element) it.next();
-                String key = elem.getName();
-                if ( !lst.contains( key ) )
-                {
-                    it.remove();
-                }
-            }
-        }
-        return element;
-    } // -- Element findAndReplaceProperties(Counter, Element, String, Map)
-
-    /**
-     * Method findAndReplaceSimpleElement.
-     *
-     * @param counter
-     * @param defaultValue
-     * @param text
-     * @param name
-     * @param parent
-     */
-    protected Element findAndReplaceSimpleElement(
-        Counter counter,
-        Element parent,
-        String name,
-        String text,
-        String defaultValue
-    )
-    {
-        if ( ( defaultValue != null ) && ( text != null ) && defaultValue.equals( text ) )
-        {
-            Element element = parent.getChild( name, parent.getNamespace() );
-            // if exist and is default value or if doesn't exist.. just keep the way it is..
-            if ( ( ( element != null ) && defaultValue.equals( element.getText() ) )
-                || ( element == null )
-                )
-            {
-                return element;
-            }
-        }
-
-        boolean shouldExist = ( text != null ) && ( text.trim().length() > 0 );
-        Element element = updateElement( counter, parent, name, shouldExist );
-        if ( shouldExist )
-        {
-            element.setText( text );
-        }
-        return element;
-    } // -- Element findAndReplaceSimpleElement(Counter, Element, String, String, String)
-
-    /**
-     * Method findAndReplaceSimpleLists.
-     *
-     * @param counter
-     * @param childName
-     * @param parentName
-     * @param list
-     * @param parent
-     */
-    protected Element findAndReplaceSimpleLists(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        String parentName,
-        String childName
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentName, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childName, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                String value = (String) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childName, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                el.setText( value );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-        return element;
-    } // -- Element findAndReplaceSimpleLists(Counter, Element, java.util.Collection, String,
-    // String)
-
-    /**
-     * Method findAndReplaceXpp3DOM.
-     *
-     * @param counter
-     * @param dom
-     * @param name
-     * @param parent
-     */
-    protected Element findAndReplaceXpp3DOM(
-        Counter counter,
-        Element parent,
-        String name,
-        Xpp3Dom dom
-    )
-    {
-        boolean shouldExist =
-            ( dom != null ) && ( ( dom.getChildCount() > 0 ) || ( dom.getValue() != null ) );
-        Element element = updateElement( counter, parent, name, shouldExist );
-        if ( shouldExist )
-        {
-            replaceXpp3DOM( element, dom, new Counter( counter.getDepth() + 1 ) );
-        }
-        return element;
-    } // -- Element findAndReplaceXpp3DOM(Counter, Element, String, Xpp3Dom)
-
-    /**
-     * Method insertAtPreferredLocation.
-     *
-     * @param parent
-     * @param counter
-     * @param child
-     */
-    protected void insertAtPreferredLocation( Element parent,
-                                              Element child,
-                                              Counter counter )
-    {
-        int contentIndex = 0;
-        int elementCounter = 0;
-        Iterator it = parent.getContent().iterator();
-        Text lastText = null;
-        int offset = 0;
-        while ( it.hasNext() && ( elementCounter <= counter.getCurrentIndex() ) )
-        {
-            Object next = it.next();
-            offset = offset + 1;
-            if ( next instanceof Element )
-            {
-                elementCounter = elementCounter + 1;
-                contentIndex = contentIndex + offset;
-                offset = 0;
-            }
-            if ( ( next instanceof Text ) && it.hasNext() )
-            {
-                lastText = (Text) next;
-            }
-        }
-        if ( ( lastText != null ) && ( lastText.getTextTrim().length() == 0 ) )
-        {
-            lastText = (Text) lastText.clone();
-        }
-        else
-        {
-            String starter = lineSeparator;
-            for ( int i = 0; i < counter.getDepth(); i++ )
-            {
-                starter = starter + "    "; // TODO make settable?
-            }
-            lastText = factory.text( starter );
-        }
-        if ( parent.getContentSize() == 0 )
-        {
-            Text finalText = (Text) lastText.clone();
-            finalText.setText(
-                finalText.getText().substring(
-                    0,
-                    finalText.getText().length() - "    ".length()
-                )
-            );
-            parent.addContent( contentIndex, finalText );
-        }
-        parent.addContent( contentIndex, child );
-        parent.addContent( contentIndex, lastText );
-    } // -- void insertAtPreferredLocation(Element, Element, Counter)
-
-    /**
-     * Method iterateContributor.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateContributor(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Contributor value = (Contributor) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateContributor( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateContributor(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateDependency.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateDependency(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Dependency value = (Dependency) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateDependency( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateDependency(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateDeveloper.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateDeveloper(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Developer value = (Developer) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateDeveloper( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateDeveloper(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateExclusion.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateExclusion(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Exclusion value = (Exclusion) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateExclusion( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateExclusion(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateExtension.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateExtension(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Extension value = (Extension) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateExtension( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateExtension(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateLicense.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateLicense(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                License value = (License) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateLicense( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateLicense(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateMailingList.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateMailingList(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                MailingList value = (MailingList) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateMailingList( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateMailingList(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateNotifier.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateNotifier(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Notifier value = (Notifier) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateNotifier( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateNotifier(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iteratePlugin.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iteratePlugin(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Plugin value = (Plugin) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updatePlugin( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iteratePlugin(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iteratePluginExecution.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iteratePluginExecution(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                PluginExecution value = (PluginExecution) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updatePluginExecution( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iteratePluginExecution(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateProfile.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateProfile(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Profile value = (Profile) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateProfile( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateProfile(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateReportPlugin.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateReportPlugin(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                ReportPlugin value = (ReportPlugin) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateReportPlugin( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateReportPlugin(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateReportSet.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateReportSet(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                ReportSet value = (ReportSet) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateReportSet( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateReportSet(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateRepository.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateRepository(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Repository value = (Repository) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateRepository( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateRepository(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method iterateResource.
-     *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
-     */
-    protected void iterateResource(
-        Counter counter,
-        Element parent,
-        java.util.Collection list,
-        java.lang.String parentTag,
-        java.lang.String childTag
-    )
-    {
-        boolean shouldExist = ( list != null ) && ( list.size() > 0 );
-        Element element = updateElement( counter, parent, parentTag, shouldExist );
-        if ( shouldExist )
-        {
-            Iterator it = list.iterator();
-            Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
-            if ( !elIt.hasNext() )
-            {
-                elIt = null;
-            }
-
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            while ( it.hasNext() )
-            {
-                Resource value = (Resource) it.next();
-                Element el;
-                if ( ( elIt != null ) && elIt.hasNext() )
-                {
-                    el = (Element) elIt.next();
-                    if ( !elIt.hasNext() )
-                    {
-                        elIt = null;
-                    }
-                }
-                else
-                {
-                    el = factory.element( childTag, element.getNamespace() );
-                    insertAtPreferredLocation( element, el, innerCount );
-                }
-                updateResource( value, childTag, innerCount, el );
-                innerCount.increaseCount();
-            }
-            if ( elIt != null )
-            {
-                while ( elIt.hasNext() )
-                {
-                    elIt.next();
-                    elIt.remove();
-                }
-            }
-        }
-    } // -- void iterateResource(Counter, Element, java.util.Collection, java.lang.String,
-    // java.lang.String)
-
-    /**
-     * Method replaceXpp3DOM.
-     *
-     * @param parent
-     * @param counter
-     * @param parentDom
-     */
-    protected void replaceXpp3DOM( Element parent,
-                                   Xpp3Dom parentDom,
-                                   Counter counter )
-    {
-        if ( parentDom.getChildCount() > 0 )
-        {
-            Xpp3Dom[] childs = parentDom.getChildren();
-            Collection domChilds = new ArrayList();
-            for ( int i = 0; i < childs.length; i++ )
-            {
-                domChilds.add( childs[i] );
-            }
-
-            int domIndex = 0;
-            ListIterator it = parent.getChildren().listIterator();
-            while ( it.hasNext() )
-            {
-                Element elem = (Element) it.next();
-                Iterator it2 = domChilds.iterator();
-                Xpp3Dom corrDom = null;
-                while ( it2.hasNext() )
-                {
-                    Xpp3Dom dm = (Xpp3Dom) it2.next();
-                    if ( dm.getName().equals( elem.getName() ) )
-                    {
-                        corrDom = dm;
-                        break;
-                    }
-                }
-                if ( corrDom != null )
-                {
-                    domChilds.remove( corrDom );
-                    replaceXpp3DOM( elem, corrDom, new Counter( counter.getDepth() + 1 ) );
-                    counter.increaseCount();
-                }
-                else
-                {
-                    parent.removeContent( elem );
-                }
-            }
-
-            Iterator it2 = domChilds.iterator();
-            while ( it2.hasNext() )
-            {
-                Xpp3Dom dm = (Xpp3Dom) it2.next();
-                Element elem = factory.element( dm.getName(), parent.getNamespace() );
-                insertAtPreferredLocation( parent, elem, counter );
-                counter.increaseCount();
-                replaceXpp3DOM( elem, dm, new Counter( counter.getDepth() + 1 ) );
-            }
-        }
-        else if ( parentDom.getValue() != null )
-        {
-            parent.setText( parentDom.getValue() );
-        }
-    } // -- void replaceXpp3DOM(Element, Xpp3Dom, Counter)
-
-    /**
-     * Method updateActivation.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateActivation(
-        Activation value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "activeByDefault",
-                ( value.isActiveByDefault() == false )
-                    ? null
-                    : String.valueOf( value.isActiveByDefault() ),
-                "false"
-            );
-            findAndReplaceSimpleElement( innerCount, root, "jdk", value.getJdk(), null );
-            updateActivationOS( value.getOs(), "os", innerCount, root );
-            updateActivationProperty( value.getProperty(), "property", innerCount, root );
-            updateActivationFile( value.getFile(), "file", innerCount, root );
-        }
-    } // -- void updateActivation(Activation, String, Counter, Element)
-
-    /**
-     * Method updateActivationFile.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateActivationFile(
-        ActivationFile value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement( innerCount, root, "missing", value.getMissing(), null );
-            findAndReplaceSimpleElement( innerCount, root, "exists", value.getExists(), null );
-        }
-    } // -- void updateActivationFile(ActivationFile, String, Counter, Element)
-
-    /**
-     * Method updateActivationOS.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateActivationOS(
-        ActivationOS value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-            findAndReplaceSimpleElement( innerCount, root, "family", value.getFamily(), null );
-            findAndReplaceSimpleElement( innerCount, root, "arch", value.getArch(), null );
-            findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
-        }
-    } // -- void updateActivationOS(ActivationOS, String, Counter, Element)
-
-    /**
-     * Method updateActivationProperty.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateActivationProperty(
-        ActivationProperty value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-            findAndReplaceSimpleElement( innerCount, root, "value", value.getValue(), null );
-        }
-    } // -- void updateActivationProperty(ActivationProperty, String, Counter, Element)
-
-    /**
-     * Method updateBuild.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateBuild( Build value,
-                                String xmlTag,
-                                Counter counter,
-                                Element element )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "sourceDirectory",
-                value.getSourceDirectory(),
-                null
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "scriptSourceDirectory",
-                value.getScriptSourceDirectory(),
-                null
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "testSourceDirectory",
-                value.getTestSourceDirectory(),
-                null
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "outputDirectory",
-                value.getOutputDirectory(),
-                null
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "testOutputDirectory",
-                value.getTestOutputDirectory(),
-                null
-            );
-            iterateExtension(
-                innerCount,
-                root,
-                value.getExtensions(),
-                "extensions",
-                "extension"
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "defaultGoal",
-                value.getDefaultGoal(),
-                null
-            );
-            iterateResource( innerCount, root, value.getResources(), "resources", "resource" );
-            iterateResource(
-                innerCount,
-                root,
-                value.getTestResources(),
-                "testResources",
-                "testResource"
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "directory",
-                value.getDirectory(),
-                null
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "finalName",
-                value.getFinalName(),
-                null
-            );
-            findAndReplaceSimpleLists(
-                innerCount,
-                root,
-                value.getFilters(),
-                "filters",
-                "filter"
-            );
-            updatePluginManagement(
-                value.getPluginManagement(),
-                "pluginManagement",
-                innerCount,
-                root
-            );
-            iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
-        } // end if
-    } // -- void updateBuild(Build, String, Counter, Element)
-
-    /**
-     * Method updateBuildBase.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateBuildBase(
-        BuildBase value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "defaultGoal",
-                value.getDefaultGoal(),
-                null
-            );
-            iterateResource( innerCount, root, value.getResources(), "resources", "resource" );
-            iterateResource(
-                innerCount,
-                root,
-                value.getTestResources(),
-                "testResources",
-                "testResource"
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "directory",
-                value.getDirectory(),
-                null
-            );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "finalName",
-                value.getFinalName(),
-                null
-            );
-            findAndReplaceSimpleLists(
-                innerCount,
-                root,
-                value.getFilters(),
-                "filters",
-                "filter"
-            );
-            updatePluginManagement(
-                value.getPluginManagement(),
-                "pluginManagement",
-                innerCount,
-                root
-            );
-            iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
-        }
-    } // -- void updateBuildBase(BuildBase, String, Counter, Element)
-
-    /**
-     * Method updateCiManagement.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateCiManagement(
-        CiManagement value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement( innerCount, root, "system", value.getSystem(), null );
-            findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-            iterateNotifier( innerCount, root, value.getNotifiers(), "notifiers", "notifier" );
-        }
-    } // -- void updateCiManagement(CiManagement, String, Counter, Element)
-
-    /**
-     * Method updateConfigurationContainer.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateConfigurationContainer(
-        ConfigurationContainer value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "inherited",
-                value.getInherited(),
-                null
-            );
-            findAndReplaceXpp3DOM(
-                innerCount,
-                root,
-                "configuration",
-                (Xpp3Dom) value.getConfiguration()
-            );
-        }
-    } // -- void updateConfigurationContainer(ConfigurationContainer, String, Counter, Element)
-
-    /**
-     * Method updateContributor.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateContributor(
-        Contributor value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-        findAndReplaceSimpleElement( innerCount, root, "email", value.getEmail(), null );
-        findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "organization",
-            value.getOrganization(),
-            null
-        );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "organizationUrl",
-            value.getOrganizationUrl(),
-            null
-        );
-        findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" );
-        findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null );
-        findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-    } // -- void updateContributor(Contributor, String, Counter, Element)
-
-    /**
-     * Method updateDependency.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateDependency(
-        Dependency value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "artifactId",
-            value.getArtifactId(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
-        findAndReplaceSimpleElement( innerCount, root, "type", value.getType(), "jar" );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "classifier",
-            value.getClassifier(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "scope", value.getScope(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "systemPath",
-            value.getSystemPath(),
-            null
-        );
-        iterateExclusion( innerCount, root, value.getExclusions(), "exclusions", "exclusion" );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "optional",
-            ( value.isOptional() == false ) ? null : String.valueOf( value.isOptional() ),
-            "false"
-        );
-    } // -- void updateDependency(Dependency, String, Counter, Element)
-
-    /**
-     * Method updateDependencyManagement.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateDependencyManagement(
-        DependencyManagement value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            iterateDependency(
-                innerCount,
-                root,
-                value.getDependencies(),
-                "dependencies",
-                "dependency"
-            );
-        }
-    } // -- void updateDependencyManagement(DependencyManagement, String, Counter, Element)
-
-    /**
-     * Method updateDeploymentRepository.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateDeploymentRepository(
-        DeploymentRepository value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "uniqueVersion",
-                ( value.isUniqueVersion() == true ) ? null
-                    : String.valueOf( value.isUniqueVersion() ),
-                "true"
-            );
-            findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null );
-            findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-            findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "layout",
-                value.getLayout(),
-                "default"
-            );
-        }
-    } // -- void updateDeploymentRepository(DeploymentRepository, String, Counter, Element)
-
-    /**
-     * Method updateDeveloper.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateDeveloper(
-        Developer value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null );
-        findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-        findAndReplaceSimpleElement( innerCount, root, "email", value.getEmail(), null );
-        findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "organization",
-            value.getOrganization(),
-            null
-        );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "organizationUrl",
-            value.getOrganizationUrl(),
-            null
-        );
-        findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" );
-        findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null );
-        findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-    } // -- void updateDeveloper(Developer, String, Counter, Element)
-
-    /**
-     * Method updateDistributionManagement.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateDistributionManagement(
-        DistributionManagement value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            updateDeploymentRepository( value.getRepository(), "repository", innerCount, root );
-            updateDeploymentRepository(
-                value.getSnapshotRepository(),
-                "snapshotRepository",
-                innerCount,
-                root
-            );
-            updateSite( value.getSite(), "site", innerCount, root );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "downloadUrl",
-                value.getDownloadUrl(),
-                null
-            );
-            updateRelocation( value.getRelocation(), "relocation", innerCount, root );
-            findAndReplaceSimpleElement( innerCount, root, "status", value.getStatus(), null );
-        }
-    } // -- void updateDistributionManagement(DistributionManagement, String, Counter, Element)
-
-    /**
-     * Method updateElement.
-     *
-     * @param counter
-     * @param shouldExist
-     * @param name
-     * @param parent
-     */
-    protected Element updateElement(
-        Counter counter,
-        Element parent,
-        String name,
-        boolean shouldExist
-    )
-    {
-        Element element = parent.getChild( name, parent.getNamespace() );
-        if ( ( element != null ) && shouldExist )
-        {
-            counter.increaseCount();
-        }
-        if ( ( element == null ) && shouldExist )
-        {
-            element = factory.element( name, parent.getNamespace() );
-            insertAtPreferredLocation( parent, element, counter );
-            counter.increaseCount();
-        }
-        if ( !shouldExist && ( element != null ) )
-        {
-            int index = parent.indexOf( element );
-            if ( index > 0 )
-            {
-                Content previous = parent.getContent( index - 1 );
-                if ( previous instanceof Text )
-                {
-                    Text txt = (Text) previous;
-                    if ( txt.getTextTrim().length() == 0 )
-                    {
-                        parent.removeContent( txt );
-                    }
-                }
-            }
-            parent.removeContent( element );
-        }
-        return element;
-    } // -- Element updateElement(Counter, Element, String, boolean)
-
-    /**
-     * Method updateExclusion.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateExclusion(
-        Exclusion value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "artifactId",
-            value.getArtifactId(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null );
-    } // -- void updateExclusion(Exclusion, String, Counter, Element)
-
-    /**
-     * Method updateExtension.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateExtension(
-        Extension value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "artifactId",
-            value.getArtifactId(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
-    } // -- void updateExtension(Extension, String, Counter, Element)
-
-    /**
-     * Method updateFileSet.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateFileSet( FileSet value,
-                                  String xmlTag,
-                                  Counter counter,
-                                  Element element )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "directory",
-                value.getDirectory(),
-                null
-            );
-            findAndReplaceSimpleLists(
-                innerCount,
-                root,
-                value.getIncludes(),
-                "includes",
-                "include"
-            );
-            findAndReplaceSimpleLists(
-                innerCount,
-                root,
-                value.getExcludes(),
-                "excludes",
-                "exclude"
-            );
-        }
-    } // -- void updateFileSet(FileSet, String, Counter, Element)
-
-    /**
-     * Method updateIssueManagement.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateIssueManagement(
-        IssueManagement value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement( innerCount, root, "system", value.getSystem(), null );
-            findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-        }
-    } // -- void updateIssueManagement(IssueManagement, String, Counter, Element)
-
-    /**
-     * Method updateLicense.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateLicense( License value,
-                                  String xmlTag,
-                                  Counter counter,
-                                  Element element )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-        findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "distribution",
-            value.getDistribution(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "comments", value.getComments(), null );
-    } // -- void updateLicense(License, String, Counter, Element)
-
-    /**
-     * Method updateMailingList.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateMailingList(
-        MailingList value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-        findAndReplaceSimpleElement( innerCount, root, "subscribe", value.getSubscribe(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "unsubscribe",
-            value.getUnsubscribe(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "post", value.getPost(), null );
-        findAndReplaceSimpleElement( innerCount, root, "archive", value.getArchive(), null );
-        findAndReplaceSimpleLists(
-            innerCount,
-            root,
-            value.getOtherArchives(),
-            "otherArchives",
-            "otherArchive"
-        );
-    } // -- void updateMailingList(MailingList, String, Counter, Element)
-
-    /**
-     * Method updateModel.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateModel( Model value,
-                                String xmlTag,
-                                Counter counter,
-                                Element element )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        updateParent( value.getParent(), "parent", innerCount, root );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "modelVersion",
-            value.getModelVersion(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "artifactId",
-            value.getArtifactId(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "packaging", value.getPackaging(), "jar" );
-        findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-        findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "description",
-            value.getDescription(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-        updatePrerequisites( value.getPrerequisites(), "prerequisites", innerCount, root );
-        updateIssueManagement( value.getIssueManagement(), "issueManagement", innerCount, root );
-        updateCiManagement( value.getCiManagement(), "ciManagement", innerCount, root );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "inceptionYear",
-            value.getInceptionYear(),
-            null
-        );
-        iterateMailingList(
-            innerCount,
-            root,
-            value.getMailingLists(),
-            "mailingLists",
-            "mailingList"
-        );
-        iterateDeveloper( innerCount, root, value.getDevelopers(), "developers", "developer" );
-        iterateContributor(
-            innerCount,
-            root,
-            value.getContributors(),
-            "contributors",
-            "contributor"
-        );
-        iterateLicense( innerCount, root, value.getLicenses(), "licenses", "license" );
-        updateScm( value.getScm(), "scm", innerCount, root );
-        updateOrganization( value.getOrganization(), "organization", innerCount, root );
-        updateBuild( value.getBuild(), "build", innerCount, root );
-        iterateProfile( innerCount, root, value.getProfiles(), "profiles", "profile" );
-        findAndReplaceSimpleLists( innerCount, root, value.getModules(), "modules", "module" );
-        iterateRepository(
-            innerCount,
-            root,
-            value.getRepositories(),
-            "repositories",
-            "repository"
-        );
-        iterateRepository(
-            innerCount,
-            root,
-            value.getPluginRepositories(),
-            "pluginRepositories",
-            "pluginRepository"
-        );
-        iterateDependency(
-            innerCount,
-            root,
-            value.getDependencies(),
-            "dependencies",
-            "dependency"
-        );
-        findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() );
-        updateReporting( value.getReporting(), "reporting", innerCount, root );
-        updateDependencyManagement(
-            value.getDependencyManagement(),
-            "dependencyManagement",
-            innerCount,
-            root
-        );
-        updateDistributionManagement(
-            value.getDistributionManagement(),
-            "distributionManagement",
-            innerCount,
-            root
-        );
-        findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-    } // -- void updateModel(Model, String, Counter, Element)
-
-    /**
-     * Method updateModelBase.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateModelBase(
-        ModelBase value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleLists(
-                innerCount,
-                root,
-                value.getModules(),
-                "modules",
-                "module"
-            );
-            iterateRepository(
-                innerCount,
-                root,
-                value.getRepositories(),
-                "repositories",
-                "repository"
-            );
-            iterateRepository(
-                innerCount,
-                root,
-                value.getPluginRepositories(),
-                "pluginRepositories",
-                "pluginRepository"
-            );
-            iterateDependency(
-                innerCount,
-                root,
-                value.getDependencies(),
-                "dependencies",
-                "dependency"
-            );
-            findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() );
-            updateReporting( value.getReporting(), "reporting", innerCount, root );
-            updateDependencyManagement(
-                value.getDependencyManagement(),
-                "dependencyManagement",
-                innerCount,
-                root
-            );
-            updateDistributionManagement(
-                value.getDistributionManagement(),
-                "distributionManagement",
-                innerCount,
-                root
-            );
-            findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-        }
-    } // -- void updateModelBase(ModelBase, String, Counter, Element)
-
-    /**
-     * Method updateNotifier.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateNotifier(
-        Notifier value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement( innerCount, root, "type", value.getType(), "mail" );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "sendOnError",
-            ( value.isSendOnError() == true ) ? null : String.valueOf( value.isSendOnError() ),
-            "true"
-        );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "sendOnFailure",
-            ( value.isSendOnFailure() == true ) ? null
-                : String.valueOf( value.isSendOnFailure() ),
-            "true"
-        );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "sendOnSuccess",
-            ( value.isSendOnSuccess() == true ) ? null
-                : String.valueOf( value.isSendOnSuccess() ),
-            "true"
-        );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "sendOnWarning",
-            ( value.isSendOnWarning() == true ) ? null
-                : String.valueOf( value.isSendOnWarning() ),
-            "true"
-        );
-        findAndReplaceSimpleElement( innerCount, root, "address", value.getAddress(), null );
-        findAndReplaceProperties( innerCount, root, "configuration", value.getConfiguration() );
-    } // -- void updateNotifier(Notifier, String, Counter, Element)
-
-    /**
-     * Method updateOrganization.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateOrganization(
-        Organization value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
-            findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
-        }
-    } // -- void updateOrganization(Organization, String, Counter, Element)
-
-    /**
-     * Method updateParent.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updateParent( Parent value,
-                                 String xmlTag,
-                                 Counter counter,
-                                 Element element )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "artifactId",
-                value.getArtifactId(),
-                null
-            );
-            findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null );
-            findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
-            findAndReplaceSimpleElement(
-                innerCount,
-                root,
-                "relativePath",
-                value.getRelativePath(),
-                "../pom.xml"
-            );
-        }
-    } // -- void updateParent(Parent, String, Counter, Element)
-
-    /**
-     * Method updatePatternSet.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updatePatternSet(
-        PatternSet value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            findAndReplaceSimpleLists(
-                innerCount,
-                root,
-                value.getIncludes(),
-                "includes",
-                "include"
-            );
-            findAndReplaceSimpleLists(
-                innerCount,
-                root,
-                value.getExcludes(),
-                "excludes",
-                "exclude"
-            );
-        }
-    } // -- void updatePatternSet(PatternSet, String, Counter, Element)
-
-    /**
-     * Method updatePlugin.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updatePlugin( Plugin value,
-                                 String xmlTag,
-                                 Counter counter,
-                                 Element element )
-    {
-        Element root = element;
-        Counter innerCount = new Counter( counter.getDepth() + 1 );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "groupId",
-            value.getGroupId(),
-            "org.apache.maven.plugins"
-        );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "artifactId",
-            value.getArtifactId(),
-            null
-        );
-        findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
-        findAndReplaceSimpleElement(
-            innerCount,
-            root,
-            "extensions",
-            ( value.isExtensions() == false ) ? null : String.valueOf( value.isExtensions() ),
-            "false"
-        );
-        iteratePluginExecution(
-            innerCount,
-            root,
-            value.getExecutions(),
-            "executions",
-            "execution"
-        );
-        iterateDependency(
-            innerCount,
-            root,
-            value.getDependencies(),
-            "dependencies",
-            "dependency"
-        );
-        findAndReplaceXpp3DOM( innerCount, root, "goals", (Xpp3Dom) value.getGoals() );
-        findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null );
-        findAndReplaceXpp3DOM(
-            innerCount,
-            root,
-            "configuration",
-            (Xpp3Dom) value.getConfiguration()
-        );
-    } // -- void updatePlugin(Plugin, String, Counter, Element)
-
-    /**
-     * Method updatePluginConfiguration.
-     *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
-     */
-    protected void updatePluginConfiguration(
-        PluginConfiguration value,
-        String xmlTag,
-        Counter counter,
-        Element element
-    )
-    {
-        boolean shouldExist = value != null;
-        Element root = updateElement( counter, element, xmlTag, shouldExist );
-        if ( shouldExist )
-        {
-            Counter innerCount = new Counter( counter.getDepth() + 1 );
-            updatePluginManagement(
-                value.getPluginManagement(),
-                "pluginManagement",
-                innerCount,
-                root

[... 3752 lines stripped ...]