[maven-release-plugin]  copy for tag maven-scm-1.1

git-svn-id: https://svn.apache.org/repos/asf/maven/scm/tags/maven-scm-1.1@687981 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/LICENSE.txt b/LICENSE.txt
deleted file mode 100644
index 261eeb9..0000000
--- a/LICENSE.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/NOTICE.txt b/NOTICE.txt
deleted file mode 100644
index d575c7a..0000000
--- a/NOTICE.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Maven-SCM
-Copyright 2003-2006 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/maven-scm-api/pom.xml b/maven-scm-api/pom.xml
index f7f601d..1d04b0f 100644
--- a/maven-scm-api/pom.xml
+++ b/maven-scm-api/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,20 +20,23 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm</artifactId>
     <version>1.1</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
+
   <artifactId>maven-scm-api</artifactId>
+
   <name>Maven SCM API</name>
-  <version>1.1</version>
+  <description>The SCM API provides mechanisms to manage all SCM tools.</description>
+
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>3.8.2</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/AbstractScmVersion.java b/maven-scm-api/src/main/java/org/apache/maven/scm/AbstractScmVersion.java
index 9ddd8e3..87a1414 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/AbstractScmVersion.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/AbstractScmVersion.java
@@ -28,16 +28,21 @@
 {
     private String name;
 
+    /**
+     * @param name could be null
+     */
     public AbstractScmVersion( String name )
     {
         setName( name );
     }
 
+    /** {@inheritDoc} */
     public String getName()
     {
         return name;
     }
 
+    /** {@inheritDoc} */
     public void setName( String name )
     {
         if ( name != null )
@@ -47,9 +52,7 @@
         this.name = name;
     }
 
-    /**
-     * @return the version name
-     */
+    /** {@inheritDoc} */
     public String toString()
     {
         return getName();
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java
index e71766e..b8a4c2b 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java
@@ -374,9 +374,7 @@
         return TIME_FORMAT.format( getDate() );
     }
 
-    /**
-     * @return Returns string representation of the changeset
-     */
+    /** {@inheritDoc} */
     public String toString()
     {
         String result = author + "\n" + date + "\n";
@@ -442,9 +440,7 @@
         return buffer.toString();
     }
 
-    /**
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
+    /** {@inheritDoc} */
     public boolean equals( Object obj )
     {
         if ( obj instanceof ChangeSet )
@@ -460,6 +456,18 @@
         return false;
     }
 
+    /** {@inheritDoc} */
+    public int hashCode()
+    {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ( ( author == null ) ? 0 : author.hashCode() );
+        result = prime * result + ( ( comment == null ) ? 0 : comment.hashCode() );
+        result = prime * result + ( ( date == null ) ? 0 : date.hashCode() );
+        result = prime * result + ( ( files == null ) ? 0 : files.hashCode() );
+        return result;
+    }
+
     /**
      * remove a <code>]]></code> from comments (replace it with <code>] ] ></code>).
      *
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java
index 55c1ef7..4887ea5 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java
@@ -25,41 +25,41 @@
  */
 public class CommandParameter
 {
-    public final static CommandParameter BINARY = new CommandParameter( "binary" );
+    public static final CommandParameter BINARY = new CommandParameter( "binary" );
 
-    public final static CommandParameter RECURSIVE = new CommandParameter( "recursive" );
+    public static final CommandParameter RECURSIVE = new CommandParameter( "recursive" );
 
-    public final static CommandParameter MESSAGE = new CommandParameter( "message" );
+    public static final CommandParameter MESSAGE = new CommandParameter( "message" );
 
-    public final static CommandParameter BRANCH_NAME = new CommandParameter( "branchName" );
+    public static final CommandParameter BRANCH_NAME = new CommandParameter( "branchName" );
 
-    public final static CommandParameter START_DATE = new CommandParameter( "startDate" );
+    public static final CommandParameter START_DATE = new CommandParameter( "startDate" );
 
-    public final static CommandParameter END_DATE = new CommandParameter( "endDate" );
+    public static final CommandParameter END_DATE = new CommandParameter( "endDate" );
 
-    public final static CommandParameter NUM_DAYS = new CommandParameter( "numDays" );
+    public static final CommandParameter NUM_DAYS = new CommandParameter( "numDays" );
 
-    public final static CommandParameter BRANCH = new CommandParameter( "branch" );
+    public static final CommandParameter BRANCH = new CommandParameter( "branch" );
 
-    public final static CommandParameter START_SCM_VERSION = new CommandParameter( "startScmVersion" );
+    public static final CommandParameter START_SCM_VERSION = new CommandParameter( "startScmVersion" );
 
-    public final static CommandParameter END_SCM_VERSION = new CommandParameter( "endScmVersion" );
+    public static final CommandParameter END_SCM_VERSION = new CommandParameter( "endScmVersion" );
 
-    public final static CommandParameter CHANGELOG_DATE_PATTERN = new CommandParameter( "changelogDatePattern" );
+    public static final CommandParameter CHANGELOG_DATE_PATTERN = new CommandParameter( "changelogDatePattern" );
 
-    public final static CommandParameter SCM_VERSION = new CommandParameter( "scmVersion" );
+    public static final CommandParameter SCM_VERSION = new CommandParameter( "scmVersion" );
 
-    public final static CommandParameter TAG_NAME = new CommandParameter( "tagName" );
+    public static final CommandParameter TAG_NAME = new CommandParameter( "tagName" );
 
-    public final static CommandParameter FILE = new CommandParameter( "file" );
+    public static final CommandParameter FILE = new CommandParameter( "file" );
 
-    public final static CommandParameter FILES = new CommandParameter( "files" );
+    public static final CommandParameter FILES = new CommandParameter( "files" );
 
-    public final static CommandParameter OUTPUT_FILE = new CommandParameter( "outputFile" );
+    public static final CommandParameter OUTPUT_FILE = new CommandParameter( "outputFile" );
 
-    public final static CommandParameter OUTPUT_DIRECTORY = new CommandParameter( "outputDirectory" );
+    public static final CommandParameter OUTPUT_DIRECTORY = new CommandParameter( "outputDirectory" );
 
-    public final static CommandParameter RUN_CHANGELOG_WITH_UPDATE =
+    public static final CommandParameter RUN_CHANGELOG_WITH_UPDATE =
         new CommandParameter( "run_changelog_with_update" );
 
     /**
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java
index 2a16e5e..f715ddd 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java
@@ -112,6 +112,7 @@
      *
      * @param parameter The parameter
      * @return The parameter value as a int
+     * @param defaultValue The defaultValue
      * @throws ScmException if the value is in the wrong type
      */
     public int getInt( CommandParameter parameter, int defaultValue )
@@ -161,6 +162,7 @@
      * Return the parameter value as String or the default value if it doesn't exist.
      *
      * @param parameter The parameter
+     * @param defaultValue The defaultValue
      * @return The parameter value as a Date
      * @throws ScmException if the value is in the wrong type
      */
@@ -248,12 +250,24 @@
     // File[]
     // ----------------------------------------------------------------------
 
+    /**
+     * @param parameter not null
+     * @return an array of files
+     * @throws ScmException if any
+     */
     public File[] getFileArray( CommandParameter parameter )
         throws ScmException
     {
         return (File[]) getObject( File[].class, parameter );
     }
 
+    /**
+     *
+     * @param parameter not null
+     * @param defaultValue could be null
+     * @return an array of files
+     * @throws ScmException if any
+     */
     public File[] getFileArray( CommandParameter parameter, File[] defaultValue )
         throws ScmException
     {
@@ -290,6 +304,7 @@
      *
      * @param clazz     The type of the parameter value
      * @param parameter The parameter
+     * @param defaultValue The defaultValue
      * @return The parameter value
      * @throws ScmException if the defaultValue is in the wrong type
      */
@@ -305,8 +320,8 @@
 
         if ( clazz != null && !clazz.isAssignableFrom( object.getClass() ) )
         {
-            throw new ScmException( "Wrong parameter type for '" + parameter.getName() + ". " + "Expected: " +
-                clazz.getName() + ", got: " + object.getClass().getName() );
+            throw new ScmException( "Wrong parameter type for '" + parameter.getName() + ". " + "Expected: "
+                + clazz.getName() + ", got: " + object.getClass().getName() );
         }
 
         return object;
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/NoSuchCommandScmException.java b/maven-scm-api/src/main/java/org/apache/maven/scm/NoSuchCommandScmException.java
index b1f42e7..4906be3 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/NoSuchCommandScmException.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/NoSuchCommandScmException.java
@@ -26,6 +26,9 @@
 public class NoSuchCommandScmException
     extends ScmException
 {
+
+    static final long serialVersionUID = 5789657554664703221L;
+
     private String commandName;
 
     public NoSuchCommandScmException( String commandName )
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmBranch.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmBranch.java
index b50d93f..fea0dc5 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmBranch.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmBranch.java
@@ -26,11 +26,15 @@
 public class ScmBranch
     extends AbstractScmVersion
 {
+    /** {@inheritDoc} */
     public String getType()
     {
         return "Branch";
     }
 
+    /**
+     * @param name the branch name
+     */
     public ScmBranch( String name )
     {
         super( name );
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmException.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmException.java
index b3362ed..e95aafd 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmException.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmException.java
@@ -26,8 +26,10 @@
 public class ScmException
     extends Exception
 {
+    static final long serialVersionUID = 5041965569154385323L;
+
     /**
-     * @param message
+     * @param message the message could be null
      */
     public ScmException( String message )
     {
@@ -35,8 +37,8 @@
     }
 
     /**
-     * @param message
-     * @param cause
+     * @param message the message could be null
+     * @param cause the cause could be null
      */
     public ScmException( String message, Throwable cause )
     {
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFile.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFile.java
index 55ec2e3..0f48892 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFile.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFile.java
@@ -61,6 +61,7 @@
     // Comparable Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public int compareTo( Object other )
     {
         return ( (ScmFile) other ).getPath().compareTo( path );
@@ -70,6 +71,7 @@
     // Object overrides
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public boolean equals( Object other )
     {
         if ( !( other instanceof ScmFile ) )
@@ -80,11 +82,13 @@
         return ( (ScmFile) other ).getPath().equals( path );
     }
 
+    /** {@inheritDoc} */
     public int hashCode()
     {
         return path.hashCode();
     }
 
+    /** {@inheritDoc} */
     public String toString()
     {
         return "[" + path + ":" + status + "]";
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java
index 3f629b4..6f1190b 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileSet.java
@@ -74,7 +74,7 @@
      * @param includes Ant pattern for files to include
      * @param excludes Ant pattern for files to exclude,
      *                 if null DEFAULT_EXCLUDES is used, else DEFAULT_EXCLUDES is added.
-     * @throws IOException
+     * @throws IOException if any
      */
     public ScmFileSet( File basedir, String includes, String excludes )
         throws IOException
@@ -98,7 +98,7 @@
      *
      * @param basedir  directory files are relative to
      * @param includes Ant pattern for files to include
-     * @throws IOException
+     * @throws IOException if any
      * @since 1.0
      */
     public ScmFileSet( File basedir, String includes )
@@ -172,6 +172,7 @@
         return this.files;
     }
 
+    /** {@inheritDoc} */
     public String toString()
     {
         return "basedir = " + basedir + "; files = " + files;
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileStatus.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileStatus.java
index 12842a5..4deac6b 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileStatus.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmFileStatus.java
@@ -37,14 +37,14 @@
     /**
      * File is added to the working tree and does not yet exist in the repository
      */
-    public final static ScmFileStatus ADDED = new ScmFileStatus( "added" );
+    public static final ScmFileStatus ADDED = new ScmFileStatus( "added" );
 
     /**
      * File is removed from the working tree thus not revisioned anymore.<br>
      * The file is still present in the repository.<br>
      * The file could be deleted from the filesystem depending on the provider.
      */
-    public final static ScmFileStatus DELETED = new ScmFileStatus( "deleted" );
+    public static final ScmFileStatus DELETED = new ScmFileStatus( "deleted" );
 
     /**
      * The file has been modified in the working tree.
@@ -59,29 +59,29 @@
     /**
      * File from working tree is checked into the repository
      */
-    public final static ScmFileStatus CHECKED_IN = new ScmFileStatus( "checked-in" );
+    public static final ScmFileStatus CHECKED_IN = new ScmFileStatus( "checked-in" );
 
     /**
      * File is checked out from the repository and into the working tree
      */
-    public final static ScmFileStatus CHECKED_OUT = new ScmFileStatus( "checked-out" );
+    public static final ScmFileStatus CHECKED_OUT = new ScmFileStatus( "checked-out" );
 
     /**
      * The file in the working tree has differences to the one in repository that
      * conflicts ie. it cannot automatically be merged.
      */
-    public final static ScmFileStatus CONFLICT = new ScmFileStatus( "conflict" );
+    public static final ScmFileStatus CONFLICT = new ScmFileStatus( "conflict" );
 
     /**
      * The file in the working tree has been updated with changes from the repository.
      */
-    public final static ScmFileStatus PATCHED = new ScmFileStatus( "patched" );
+    public static final ScmFileStatus PATCHED = new ScmFileStatus( "patched" );
 
     /**
      * The file is added, removed or updated from the repository, thus its
      * up-to-date with the version in the repository. See also isUpdate()
      */
-    public final static ScmFileStatus UPDATED = new ScmFileStatus( "updated" );
+    public static final ScmFileStatus UPDATED = new ScmFileStatus( "updated" );
 
     /**
      * The file is part of a tag.
@@ -108,6 +108,7 @@
         this.name = name;
     }
 
+    /** {@inheritDoc} */
     public String toString()
     {
         return name;
@@ -148,6 +149,8 @@
      * that the working tree has changed.<br>
      * An update indicates the opposite, that the repository was changed compared to
      * the working tree and that it is now synchronized unless there are conflicts.
+     *
+     * @return true if the status is conflict, updated or patched.
      */
     public boolean isUpdate()
     {
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
index 06efd1f..5ec9aeb 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
@@ -38,6 +38,8 @@
      * <p/>
      * Typically used from derived classes when wrapping a ScmResult
      * into a specific type eg. AddScmResult
+     *
+     * @param scmResult not null
      */
     public ScmResult( ScmResult scmResult )
     {
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmRevision.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmRevision.java
index b429105..1d14aea 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmRevision.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmRevision.java
@@ -26,6 +26,7 @@
 public class ScmRevision
     extends AbstractScmVersion
 {
+    /** {@inheritDoc} */
     public String getType()
     {
         return "Revision";
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTag.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTag.java
index 6108e0a..10e5078 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTag.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTag.java
@@ -26,11 +26,15 @@
 public class ScmTag
     extends ScmBranch
 {
+    /** {@inheritDoc} */
     public String getType()
     {
         return "Tag";
     }
 
+    /**
+     * @param name not null
+     */
     public ScmTag( String name )
     {
         super( name );
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmVersion.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmVersion.java
index 947f0dd..47cb453 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmVersion.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmVersion.java
@@ -25,9 +25,18 @@
  */
 public interface ScmVersion
 {
+    /**
+     * @return the Version ttype like branch
+     */
     String getType();
 
+    /**
+     * @return the Version name
+     */
     String getName();
 
+    /**
+     * @param name new Version name could be null
+     */
     void setName( String name );
 }
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/AbstractCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/AbstractCommand.java
index b3936ad..62d0617 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/AbstractCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/AbstractCommand.java
@@ -40,6 +40,7 @@
                                                  CommandParameters parameters )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public final ScmResult execute( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -63,17 +64,13 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.command.Command#getLogger()
-     */
+    /** {@inheritDoc} */
     public final ScmLogger getLogger()
     {
         return logger;
     }
 
-    /**
-     * @see org.apache.maven.scm.command.Command#setLogger(org.apache.maven.scm.log.ScmLogger)
-     */
+    /** {@inheritDoc} */
     public final void setLogger( ScmLogger logger )
     {
         this.logger = logger;
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/Command.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/Command.java
index dd8f3c0..ede050b 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/Command.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/Command.java
@@ -33,12 +33,26 @@
  */
 public interface Command
 {
+    /** Plexus component key */
     String ROLE = Command.class.getName();
 
+    /**
+     * @param repository not null
+     * @param fileSet not null
+     * @param parameters could be null
+     * @return the result object
+     * @throws ScmException if any
+     */
     ScmResult execute( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException;
 
+    /**
+     * @param logger not null
+     */
     void setLogger( ScmLogger logger );
 
+    /**
+     * @return the current logger
+     */
     ScmLogger getLogger();
 }
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/add/AbstractAddCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/add/AbstractAddCommand.java
index 9798bc8..d633829 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/add/AbstractAddCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/add/AbstractAddCommand.java
@@ -38,6 +38,7 @@
                                                     String message, boolean binary )
         throws ScmException;
 
+    /** {@inheritDoc} */
     protected ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                         CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java
index c8fdf3c..1646c00 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/branch/AbstractBranchCommand.java
@@ -39,6 +39,7 @@
                                                        String branchName, String message )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java
index 384e715..c302d38 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java
@@ -53,6 +53,7 @@
         throw new ScmException( "Unsupported method for this provider." );
     }
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
@@ -89,9 +90,10 @@
 
             if ( numDays > 0 )
             {
-                startDate = new Date( System.currentTimeMillis() - (long) numDays * 24 * 60 * 60 * 1000 );
+                int day = 24 * 60 * 60 * 1000;
+                startDate = new Date( System.currentTimeMillis() - (long) numDays * day );
 
-                endDate = new Date( System.currentTimeMillis() + (long) 1 * 24 * 60 * 60 * 1000 );
+                endDate = new Date( System.currentTimeMillis() + (long) day );
             }
             else if ( endDate == null )
             {
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkin/AbstractCheckInCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkin/AbstractCheckInCommand.java
index d3de733..b222ec0 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkin/AbstractCheckInCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkin/AbstractCheckInCommand.java
@@ -36,7 +36,7 @@
 public abstract class AbstractCheckInCommand
     extends AbstractCommand
 {
-    public final static String NAME = "check-in";
+    public static final String NAME = "check-in";
 
     protected abstract CheckInScmResult executeCheckInCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                                                String message, ScmVersion scmVersion )
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/AbstractCheckOutCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/AbstractCheckOutCommand.java
index eef2b2c..87d7c88 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/AbstractCheckOutCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/AbstractCheckOutCommand.java
@@ -40,6 +40,7 @@
                                                                  ScmVersion scmVersion )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/diff/AbstractDiffCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/diff/AbstractDiffCommand.java
index 1465300..07db3f9 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/diff/AbstractDiffCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/diff/AbstractDiffCommand.java
@@ -45,6 +45,7 @@
                                                          ScmVersion startRevision, ScmVersion endRevision )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/AbstractEditCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/AbstractEditCommand.java
index 3c732a8..ccfcbeb 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/AbstractEditCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/AbstractEditCommand.java
@@ -27,11 +27,12 @@
 import org.apache.maven.scm.provider.ScmProviderRepository;
 
 /**
- *
+ * @version $Id$
  */
 public abstract class AbstractEditCommand
     extends AbstractCommand
 {
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/EditScmResult.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/EditScmResult.java
index c2c9046..b4a752a 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/EditScmResult.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/edit/EditScmResult.java
@@ -23,6 +23,9 @@
 
 import java.util.List;
 
+/**
+ * @version $Id$
+ */
 public class EditScmResult
     extends ScmResult
 {
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/export/AbstractExportCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/export/AbstractExportCommand.java
index 910c20d..02ab978 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/export/AbstractExportCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/export/AbstractExportCommand.java
@@ -39,6 +39,7 @@
                                                              ScmVersion scmVersion, String outputDirectory )
         throws ScmException;
 
+    /** {@inheritDoc} */
     protected ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                         CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java
index b6ff0ba..078c7db 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java
@@ -48,6 +48,7 @@
                                                          boolean recursive, ScmVersion scmVersion )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java
index 2857f76..1f16dba 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java
@@ -20,13 +20,13 @@
  */
 
 import org.apache.maven.scm.ScmResult;
-import org.apache.maven.scm.provider.ScmProvider;
 
 import java.util.ArrayList;
 import java.util.List;
 
 /**
- * Result of {@link ScmProvider#list} operation
+ * Result of {@link org.apache.maven.scm.provider.ScmProvider#list(org.apache.maven.scm.repository.ScmRepository,
+ * org.apache.maven.scm.ScmFileSet, boolean, org.apache.maven.scm.ScmVersion)} operation
  *
  * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
  * @version $Id$
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/login/AbstractLoginCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/login/AbstractLoginCommand.java
index e448d74..e17cee4 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/login/AbstractLoginCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/login/AbstractLoginCommand.java
@@ -37,9 +37,7 @@
                                                         CommandParameters parameters )
         throws ScmException;
 
-    /**
-     * @see org.apache.maven.scm.command.AbstractCommand#executeCommand(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     protected ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                         CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/remove/AbstractRemoveCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/remove/AbstractRemoveCommand.java
index 69d7b59..21243bb 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/remove/AbstractRemoveCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/remove/AbstractRemoveCommand.java
@@ -39,6 +39,7 @@
                                                        String message )
         throws ScmException;
 
+    /** {@inheritDoc} */
     protected ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                         CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/status/AbstractStatusCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/status/AbstractStatusCommand.java
index cd13b9a..f8b6bb4 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/status/AbstractStatusCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/status/AbstractStatusCommand.java
@@ -36,6 +36,7 @@
     protected abstract StatusScmResult executeStatusCommand( ScmProviderRepository repository, ScmFileSet fileSet )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/tag/AbstractTagCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/tag/AbstractTagCommand.java
index 5867159..b155162 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/tag/AbstractTagCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/tag/AbstractTagCommand.java
@@ -39,13 +39,14 @@
                                                     String tagName, String message )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
     {
         String tagName = parameters.getString( CommandParameter.TAG_NAME );
 
-        String message = parameters.getString( CommandParameter.MESSAGE, "[maven-scm] copy for tag " + tagName);
+        String message = parameters.getString( CommandParameter.MESSAGE, "[maven-scm] copy for tag " + tagName );
 
         return executeTagCommand( repository, fileSet, tagName, message );
     }
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/AbstractUnEditCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/AbstractUnEditCommand.java
index a2e1698..7d360bb 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/AbstractUnEditCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/AbstractUnEditCommand.java
@@ -27,11 +27,12 @@
 import org.apache.maven.scm.provider.ScmProviderRepository;
 
 /**
- *
+ * @version $Id$
  */
 public abstract class AbstractUnEditCommand
     extends AbstractCommand
 {
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/UnEditScmResult.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/UnEditScmResult.java
index 798ed11..6369405 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/UnEditScmResult.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/unedit/UnEditScmResult.java
@@ -23,6 +23,9 @@
 
 import java.util.List;
 
+/**
+ * @version $Id$
+ */
 public class UnEditScmResult
     extends ScmResult
 {
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java b/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java
index 86ec5af..d86e9df 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java
@@ -50,6 +50,7 @@
                                                              ScmVersion scmVersion )
         throws ScmException;
 
+    /** {@inheritDoc} */
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/log/DefaultLog.java b/maven-scm-api/src/main/java/org/apache/maven/scm/log/DefaultLog.java
index a6288b1..add126b 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/log/DefaultLog.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/log/DefaultLog.java
@@ -27,132 +27,99 @@
     implements ScmLogger
 {
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isDebugEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isDebugEnabled()
     {
         return false;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void debug( String content )
     {
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( String content, Throwable error )
     {
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( Throwable error )
     {
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isInfoEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isInfoEnabled()
     {
         return true;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void info( String content )
     {
         System.out.println( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( String content, Throwable error )
     {
         System.out.println( content );
         error.printStackTrace();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( Throwable error )
     {
         error.printStackTrace();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isWarnEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isWarnEnabled()
     {
         return true;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void warn( String content )
     {
         System.out.println( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( String content, Throwable error )
     {
         System.out.println( content );
         error.printStackTrace();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( Throwable error )
     {
         error.printStackTrace();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isErrorEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isErrorEnabled()
     {
         return true;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void error( String content )
     {
         System.out.print( "[ERROR] " + content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( String content, Throwable error )
     {
         System.out.println( "[ERROR] " + content );
         error.printStackTrace();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( Throwable error )
     {
         error.printStackTrace();
     }
-
 }
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/log/ScmLogDispatcher.java b/maven-scm-api/src/main/java/org/apache/maven/scm/log/ScmLogDispatcher.java
index 66c4100..d63a566 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/log/ScmLogDispatcher.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/log/ScmLogDispatcher.java
@@ -37,9 +37,7 @@
         listeners.add( logger );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( String content, Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -50,9 +48,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void debug( String content )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -63,9 +59,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -76,9 +70,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( String content, Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -89,9 +81,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void error( String content )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -102,9 +92,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -115,9 +103,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( String content, Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -128,9 +114,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void info( String content )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -141,9 +125,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -154,9 +136,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isDebugEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isDebugEnabled()
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -172,9 +152,7 @@
         return false;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isErrorEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isErrorEnabled()
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -190,9 +168,7 @@
         return false;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isInfoEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isInfoEnabled()
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -208,9 +184,7 @@
         return false;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isWarnEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isWarnEnabled()
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -226,9 +200,7 @@
         return false;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( String content, Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -239,9 +211,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void warn( String content )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -252,9 +222,7 @@
         }
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( Throwable error )
     {
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
@@ -264,5 +232,4 @@
             logger.warn( error );
         }
     }
-
 }
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java
index d31bfc8..c73e3c9 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java
@@ -99,6 +99,7 @@
     // ScmManager Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public ScmProvider getProviderByUrl( String scmUrl )
         throws ScmRepositoryException, NoSuchScmProviderException
     {
@@ -112,11 +113,13 @@
         return getProviderByType( providerType );
     }
 
+    /** {@inheritDoc} */
     public void setScmProviderImplementation( String providerType, String providerImplementation )
     {
         userProviderTypes.put( providerType, providerImplementation );
     }
 
+    /** {@inheritDoc} */
     public ScmProvider getProviderByType( String providerType )
         throws NoSuchScmProviderException
     {
@@ -158,6 +161,7 @@
         return scmProvider;
     }
 
+    /** {@inheritDoc} */
     public ScmProvider getProviderByRepository( ScmRepository repository )
         throws NoSuchScmProviderException
     {
@@ -168,6 +172,7 @@
     // Repository
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public ScmRepository makeScmRepository( String scmUrl )
         throws ScmRepositoryException, NoSuchScmProviderException
     {
@@ -246,6 +251,7 @@
         return scmUrl;
     }
 
+    /** {@inheritDoc} */
     public ScmRepository makeProviderScmRepository( String providerType, File path )
         throws ScmRepositoryException, UnknownRepositoryStructure, NoSuchScmProviderException
     {
@@ -261,6 +267,7 @@
         return new ScmRepository( providerType, providerRepository );
     }
 
+    /** {@inheritDoc} */
     public List validateScmRepository( String scmUrl )
     {
         List messages = new ArrayList();
@@ -297,45 +304,35 @@
         return messages;
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).add( repository, fileSet );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).add( repository, fileSet, message );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).branch( repository, fileSet, branchName );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).branch( repository, fileSet, branchName, message );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                          int numDays, ScmBranch branch )
         throws ScmException
@@ -344,9 +341,7 @@
                                                                      branch );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                          int numDays, ScmBranch branch, String datePattern )
         throws ScmException
@@ -355,9 +350,7 @@
                                                                      branch, datePattern );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
                                          ScmVersion endVersion )
         throws ScmException
@@ -365,9 +358,7 @@
         return this.getProviderByRepository( repository ).changeLog( repository, fileSet, startVersion, endVersion );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision,
                                          ScmVersion endRevision, String datePattern )
         throws ScmException
@@ -376,54 +367,42 @@
                                                                      datePattern );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).checkIn( repository, fileSet, message );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).checkIn( repository, fileSet, revision, message );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).checkOut( repository, fileSet );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).checkOut( repository, fileSet, version );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, boolean recursive )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).checkOut( repository, fileSet, recursive );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
                                        boolean recursive )
         throws ScmException
@@ -431,9 +410,7 @@
         return this.getProviderByRepository( repository ).checkOut( repository, fileSet, version, recursive );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
                                ScmVersion endVersion )
         throws ScmException
@@ -441,36 +418,28 @@
         return this.getProviderByRepository( repository ).diff( repository, fileSet, startVersion, endVersion );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public EditScmResult edit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).edit( repository, fileSet );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).export( repository, fileSet );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).export( repository, fileSet, version );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String outputDirectory )
         throws ScmException
     {
@@ -478,9 +447,7 @@
                                                                   outputDirectory );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
                                    String outputDirectory )
         throws ScmException
@@ -488,90 +455,70 @@
         return this.getProviderByRepository( repository ).export( repository, fileSet, version, outputDirectory );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).list( repository, fileSet, recursive, version );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).remove( repository, fileSet, message );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).status( repository, fileSet );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).tag( repository, fileSet, tagName );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName, String message )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).tag( repository, fileSet, tagName, message );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UnEditScmResult unedit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).unedit( repository, fileSet );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).update( repository, fileSet );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).update( repository, fileSet, version );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, boolean runChangelog )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).update( repository, fileSet, runChangelog );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
                                    boolean runChangelog )
         throws ScmException
@@ -579,18 +526,14 @@
         return this.getProviderByRepository( repository ).update( repository, fileSet, version, runChangelog );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String datePattern )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).update( repository, fileSet, (ScmVersion) null, datePattern );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
                                    String datePattern )
         throws ScmException
@@ -598,27 +541,21 @@
         return this.getProviderByRepository( repository ).update( repository, fileSet, version, datePattern );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, Date lastUpdate )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).update( repository, fileSet, (ScmVersion) null, lastUpdate );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate )
         throws ScmException
     {
         return this.getProviderByRepository( repository ).update( repository, fileSet, version, lastUpdate );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, Date lastUpdate, String datePattern )
         throws ScmException
     {
@@ -626,9 +563,7 @@
                                                                   datePattern );
     }
 
-    /**
-     *
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate,
                                    String datePattern )
         throws ScmException
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/BasicScmManager.java b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/BasicScmManager.java
index aa5dd16..ecc4d3c 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/BasicScmManager.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/BasicScmManager.java
@@ -29,6 +29,7 @@
 public class BasicScmManager
     extends AbstractScmManager
 {
+    /** {@inheritDoc} */
     protected ScmLogger getScmLogger()
     {
         return new DefaultLog();
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java
index 52d7cad..35ef7a4 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java
@@ -29,6 +29,8 @@
 public class NoSuchScmProviderException
     extends ScmException
 {
+    static final long serialVersionUID = 4770645185214496323L;
+
     private String providerName;
 
     public NoSuchScmProviderException( String providerName )
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java
index 77c7fe9..15c0e56 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java
@@ -113,7 +113,8 @@
      * Set the provider implementation
      *
      * @param providerType           The provider type, eg. <code>cvs</code>
-     * @param providerImplementation The provider implementation (the role-hint of the provider), eg. <code>cvs</code>, <code>cvs_native</code>
+     * @param providerImplementation The provider implementation (the role-hint of the provider),
+     * eg. <code>cvs</code>, <code>cvs_native</code>
      */
     void setScmProviderImplementation( String providerType, String providerImplementation );
 
@@ -136,7 +137,7 @@
      * @param fileSet    the files to be added
      * @param message    a string that is a comment on the new added file
      * @return an {@link AddScmResult} that contains the files that have been added
-     * @throws ScmException
+     * @throws ScmException if any
      */
     AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException;
@@ -149,7 +150,7 @@
      *                   from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
      * @param branchName the branch name to apply to the files
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
         throws ScmException;
@@ -163,7 +164,7 @@
      * @param branchName the branch name to apply to the files
      * @param message    the commit message used for the tag creation
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
         throws ScmException;
@@ -180,7 +181,7 @@
      * @param numDays    the number days before the current time if startdate and enddate are null
      * @param branch     the branch/tag
      * @return The SCM result of the changelog command
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                   int numDays, ScmBranch branch )
@@ -199,7 +200,7 @@
      * @param branch      the branch/tag
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return The SCM result of the changelog command
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                   int numDays, ScmBranch branch, String datePattern )
@@ -215,7 +216,7 @@
      * @param startVersion the start branch/tag/revision
      * @param endVersion   the end branch/tag/revision
      * @return The SCM result of the changelog command
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
                                   ScmVersion endVersion )
@@ -232,7 +233,7 @@
      * @param endRevision   the end revision
      * @param datePattern   the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision,
                                   ScmVersion endRevision, String datePattern )
@@ -250,7 +251,7 @@
      * @param fileSet    the files to check in (sometimes called commit)
      * @param message    a string that is a comment on the changes that where done
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException;
@@ -268,7 +269,7 @@
      * @param revision   branch/tag/revision
      * @param message    a string that is a comment on the changes that where done
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message )
         throws ScmException;
@@ -279,7 +280,7 @@
      * @param repository the source control system
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -291,7 +292,7 @@
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param version    get the version defined by the revision, branch or tag
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException;
@@ -303,7 +304,7 @@
      * @param scmFileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param recursive     whether to check out recursively
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive )
         throws ScmException;
@@ -316,7 +317,7 @@
      * @param version       get the version defined by the revision, branch or tag
      * @param recursive     whether to check out recursively
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version,
                                 boolean recursive )
@@ -330,7 +331,7 @@
      * @param startVersion  the start branch/tag/revision
      * @param endVersion    the end branch/tag/revision
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     DiffScmResult diff( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion,
                         ScmVersion endVersion )
@@ -344,7 +345,7 @@
      * @param repository the source control system
      * @param fileSet    the files to make editable
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     EditScmResult edit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -355,7 +356,7 @@
      * @param repository the source control system
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -367,7 +368,7 @@
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param version    get the version defined by the branch/tag/revision
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException;
@@ -379,7 +380,7 @@
      * @param fileSet         the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param outputDirectory the directory where the export will be stored
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String outputDirectory )
         throws ScmException;
@@ -392,7 +393,7 @@
      * @param version         get the version defined by the branch/tag/revision
      * @param outputDirectory the directory where the export will be stored
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory )
         throws ScmException;
@@ -416,7 +417,7 @@
      * @param fileSet    the files to be removed
      * @param message
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException;
@@ -429,7 +430,7 @@
      * @param fileSet    the files to know the status about. Implementations can also give the changes
      *                   from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -442,7 +443,7 @@
      *                   from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
      * @param tagName    the tag name to apply to the files
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName )
         throws ScmException;
@@ -456,19 +457,20 @@
      * @param tagName    the tag name to apply to the files
      * @param message    the commit message used for the tag creation
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName, String message )
         throws ScmException;
 
     /**
-     * Make a file no longer editable. This is the conterpart of {@link #edit(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)}.
+     * Make a file no longer editable. This is the conterpart of
+     * {@link #edit(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)}.
      * It makes the file read-only again.
      *
      * @param repository the source control system
      * @param fileSet    the files to make uneditable
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UnEditScmResult unedit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -479,7 +481,7 @@
      * @param repository the source control system
      * @param fileSet    location of your local copy
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -491,7 +493,7 @@
      * @param fileSet    location of your local copy
      * @param version    use the version defined by the branch/tag/revision
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException;
@@ -503,7 +505,7 @@
      * @param fileSet      location of your local copy
      * @param runChangelog Run the changelog command after the update
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, boolean runChangelog )
         throws ScmException;
@@ -516,7 +518,7 @@
      * @param version      use the version defined by the branch/tag/revision
      * @param runChangelog Run the changelog command after the update
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog )
         throws ScmException;
@@ -528,7 +530,7 @@
      * @param fileSet     location of your local copy
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String datePattern )
         throws ScmException;
@@ -541,7 +543,7 @@
      * @param version     use the version defined by the branch/tag/revision
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern )
         throws ScmException;
@@ -553,7 +555,7 @@
      * @param fileSet    location of your local copy
      * @param lastUpdate
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, Date lastUpdate )
         throws ScmException;
@@ -566,7 +568,7 @@
      * @param version    use the version defined by the branch/tag/revision
      * @param lastUpdate
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate )
         throws ScmException;
@@ -579,7 +581,7 @@
      * @param lastUpdate  Date of last update
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, Date lastUpdate, String datePattern )
         throws ScmException;
@@ -593,7 +595,7 @@
      * @param lastUpdate  Date of last update
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate,
                             String datePattern )
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
index 7cdbbaf..9b16cbd 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
@@ -68,29 +68,27 @@
     //
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public String getScmSpecificFilename()
     {
         return null;
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#sanitizeTagName(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public String sanitizeTagName( String tag )
     {
         /* by default, we assume all tags are valid. */
         return tag;
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#validateTagName(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public boolean validateTagName( String tag )
     {
         /* by default, we assume all tags are valid. */
         return true;
     }
 
+    /** {@inheritDoc} */
     public List validateScmUrl( String scmSpecificUrl, char delimiter )
     {
         List messages = new ArrayList();
@@ -107,6 +105,7 @@
         return messages;
     }
 
+    /** {@inheritDoc} */
     public boolean requiresEditMode()
     {
         return false;
@@ -116,19 +115,14 @@
     // Scm Implementation
     // ----------------------------------------------------------------------
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#add(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)
-     */
+    /** {@inheritDoc} */
     public AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return add( repository, fileSet, (String) null );
     }
 
-
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#add(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,String)
-     */
+    /** {@inheritDoc} */
     public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
@@ -151,18 +145,14 @@
         throw new NoSuchCommandScmException( "add" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#branch(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
         throws ScmException
     {
         return branch( repository, fileSet, branchName, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#branch(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
         throws ScmException
     {
@@ -187,8 +177,7 @@
         throw new NoSuchCommandScmException( "branch" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,java.lang.String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
@@ -199,7 +188,7 @@
     }
 
     /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,java.lang.String,java.lang.String)
+     * {@inheritDoc}
      * @deprecated
      */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
@@ -216,9 +205,7 @@
 
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,ScmBranch)
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                          int numDays, ScmBranch branch )
         throws ScmException
@@ -226,9 +213,7 @@
         return changeLog( repository, fileSet, startDate, endDate, numDays, branch, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,ScmBranch,String)
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                          int numDays, ScmBranch branch, String datePattern )
         throws ScmException
@@ -250,8 +235,8 @@
         return changelog( repository.getProviderRepository(), fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String)
+
+    /** {@inheritDoc}
      * @deprecated
      */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag )
@@ -260,8 +245,7 @@
         return changeLog( repository, fileSet, startTag, endTag, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String,java.lang.String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag,
@@ -284,9 +268,7 @@
         return changeLog( repository, fileSet, startRevision, endRevision, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,ScmVersion)
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
                                          ScmVersion endVersion )
         throws ScmException
@@ -294,9 +276,7 @@
         return changeLog( repository, fileSet, startVersion, endVersion, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,ScmVersion,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
                                          ScmVersion endVersion, String datePattern )
         throws ScmException
@@ -321,8 +301,8 @@
         throw new NoSuchCommandScmException( "changelog" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkIn(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String)
+
+    /** {@inheritDoc}
      * @deprecated
      */
     public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
@@ -338,18 +318,14 @@
         return checkIn( repository, fileSet, scmVersion, message );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkIn(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
         return checkIn( repository, fileSet, (ScmVersion) null, message );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkIn(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion,
                                      String message )
         throws ScmException
@@ -372,8 +348,8 @@
         throw new NoSuchCommandScmException( "checkin" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
+
+    /** {@inheritDoc}
      * @deprecated
      */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
@@ -382,8 +358,7 @@
         return checkOut( repository, fileSet, tag, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,boolean)
+    /** {@inheritDoc}
      * @deprecated
      */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag, boolean recursive )
@@ -399,36 +374,28 @@
         return checkOut( repository, fileSet, scmVersion, recursive );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)
-     */
+     /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return checkOut( repository, fileSet, (ScmVersion) null, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion)
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion )
         throws ScmException
     {
         return checkOut( repository, fileSet, scmVersion, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,boolean)
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, boolean recursive )
         throws ScmException
     {
         return checkOut( repository, fileSet, (ScmVersion) null, recursive );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,boolean)
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion,
                                        boolean recursive )
         throws ScmException
@@ -451,8 +418,7 @@
         throw new NoSuchCommandScmException( "checkout" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#diff(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision )
@@ -474,9 +440,7 @@
         return diff( repository, fileSet, startVersion, endVersion );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#diff(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,ScmVersion)
-     */
+    /** {@inheritDoc} */
     public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
                                ScmVersion endVersion )
         throws ScmException
@@ -498,9 +462,7 @@
         throw new NoSuchCommandScmException( "diff" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#edit(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)
-     */
+    /** {@inheritDoc} */
     public EditScmResult edit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
@@ -519,8 +481,7 @@
         return new EditScmResult( "", null, null, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag )
@@ -529,8 +490,7 @@
         return export( repository, fileSet, tag, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag, String outputDirectory )
@@ -546,27 +506,21 @@
         return export( repository, fileSet, scmVersion, outputDirectory );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)
-     */
+    /** {@inheritDoc} */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return export( repository, fileSet, (ScmVersion) null, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion)
-     */
+    /** {@inheritDoc} */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion )
         throws ScmException
     {
         return export( repository, fileSet, scmVersion, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,String)
-     */
+    /** {@inheritDoc} */
     public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion,
                                    String outputDirectory )
         throws ScmException
@@ -589,9 +543,7 @@
         throw new NoSuchCommandScmException( "export" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#list(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,boolean,String)
-     */
+    /** {@inheritDoc} */
     public ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag )
         throws ScmException
     {
@@ -605,9 +557,7 @@
         return list( repository, fileSet, recursive, scmVersion );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#list(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,boolean,org.apache.maven.scm.ScmVersion)
-     */
+    /** {@inheritDoc} */
     public ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion scmVersion )
         throws ScmException
     {
@@ -633,7 +583,7 @@
      * @param parameters
      * @return The list of files in the repository
      * @throws NoSuchCommandScmException unless overriden by subclass
-     * @throws ScmException
+     * @throws ScmException if any
      */
     protected ListScmResult list( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
@@ -658,9 +608,7 @@
         return new LoginScmResult( null, null, null, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#remove(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
@@ -680,9 +628,7 @@
         throw new NoSuchCommandScmException( "remove" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#status(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)
-     */
+    /** {@inheritDoc} */
     public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
@@ -700,18 +646,14 @@
         throw new NoSuchCommandScmException( "status" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#tag(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName )
         throws ScmException
     {
         return tag( repository, fileSet, tagName, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#tag(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName, String message )
         throws ScmException
     {
@@ -735,9 +677,7 @@
         throw new NoSuchCommandScmException( "tag" );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#unedit(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)
-     */
+    /** {@inheritDoc} */
     public UnEditScmResult unedit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
@@ -757,8 +697,7 @@
         return new UnEditScmResult( "", null, null, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
@@ -767,8 +706,7 @@
         return update( repository, fileSet, tag, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,boolean)
+    /** {@inheritDoc}
      * @deprecated
      */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, boolean runChangelog )
@@ -777,36 +715,28 @@
         return update( repository, fileSet, tag, "", runChangelog );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
         return update( repository, fileSet, (ScmVersion) null, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion )
         throws ScmException
     {
         return update( repository, fileSet, scmVersion, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,boolean)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, boolean runChangelog )
         throws ScmException
     {
         return update( repository, fileSet, (ScmVersion) null, "", runChangelog );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,boolean)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion,
                                    boolean runChangelog )
         throws ScmException
@@ -814,8 +744,7 @@
         return update( repository, fileSet, scmVersion, "", runChangelog );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.lang.String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern )
@@ -824,9 +753,7 @@
         return update( repository, fileSet, tag, datePattern, true );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion,
                                    String datePattern )
         throws ScmException
@@ -868,8 +795,7 @@
         return update( repository.getProviderRepository(), fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.util.Date)
+    /** {@inheritDoc}
      * @deprecated
      */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate )
@@ -878,18 +804,14 @@
         return update( repository, fileSet, tag, lastUpdate, null );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,java.util.Date)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion,
                                    Date lastUpdate )
         throws ScmException
     {
         return update( repository, fileSet, scmVersion, lastUpdate, null );
     }
-
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.lang.String,java.util.Date,java.lang.String)
+    /** {@inheritDoc}
      * @deprecated
      */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate,
@@ -906,9 +828,7 @@
         return update( repository, fileSet, scmBranch, lastUpdate, datePattern );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,ScmVersion,java.util.Date,java.lang.String)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, Date lastUpdate,
                                    String datePattern )
         throws ScmException
@@ -942,9 +862,7 @@
     //
     // ----------------------------------------------------------------------
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#addListener(org.apache.maven.scm.log.ScmLogger)
-     */
+    /** {@inheritDoc} */
     public void addListener( ScmLogger logger )
     {
         logDispatcher.addListener( logger );
@@ -955,9 +873,7 @@
         return logDispatcher;
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.ScmProvider#makeProviderScmRepository(java.io.File)
-     */
+    /** {@inheritDoc} */
     public ScmProviderRepository makeProviderScmRepository( File path )
         throws ScmRepositoryException, UnknownRepositoryStructure
     {
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
index d23caf9..d3ff546 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
@@ -109,7 +109,7 @@
      * @param repository the source control system
      * @param fileSet    the files to be added
      * @return an {@link AddScmResult} that contains the files that have been added
-     * @throws ScmException
+     * @throws ScmException if any
      */
     AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -121,7 +121,7 @@
      * @param fileSet    the files to be added
      * @param message    a string that is a comment on the new added file
      * @return an {@link AddScmResult} that contains the files that have been added
-     * @throws ScmException
+     * @throws ScmException if any
      */
     AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException;
@@ -134,7 +134,7 @@
      *                   from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
      * @param branchName the branch name to apply to the files
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
         throws ScmException;
@@ -148,7 +148,7 @@
      * @param branchName the branch name to apply to the files
      * @param message    the commit message used for the tag creation
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
         throws ScmException;
@@ -165,8 +165,9 @@
      * @param numDays    the number days before the current time if startdate and enddate are null
      * @param branch     the branch/tag name
      * @return The SCM result of the changelog command
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,org.apache.maven.scm.ScmBranch)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,org.apache.maven.scm.ScmBranch)}
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                   int numDays, String branch )
@@ -184,7 +185,7 @@
      * @param numDays    the number days before the current time if startdate and enddate are null
      * @param branch     the branch/tag
      * @return The SCM result of the changelog command
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                   int numDays, ScmBranch branch )
@@ -203,8 +204,9 @@
      * @param branch      the branch/tag name
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return The SCM result of the changelog command
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,org.apache.maven.scm.ScmBranch,String)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,java.util.Date,java.util.Date,int,org.apache.maven.scm.ScmBranch,String)}
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                   int numDays, String branch, String datePattern )
@@ -223,7 +225,7 @@
      * @param branch      the branch/tag
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return The SCM result of the changelog command
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
                                   int numDays, ScmBranch branch, String datePattern )
@@ -239,8 +241,9 @@
      * @param startTag   the start tag
      * @param endTag     the end tag
      * @return The SCM result of the changelog command
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion)}
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag )
         throws ScmException;
@@ -255,7 +258,7 @@
      * @param startVersion the start branch/tag/revision
      * @param endVersion   the end branch/tag/revision
      * @return The SCM result of the changelog command
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
                                   ScmVersion endVersion )
@@ -272,8 +275,9 @@
      * @param endTag      the end tag
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion,String)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion,String)}
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag,
                                   String datePattern )
@@ -290,7 +294,7 @@
      * @param endRevision   the end revision
      * @param datePattern   the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision,
                                   ScmVersion endRevision, String datePattern )
@@ -309,8 +313,9 @@
      * @param tag        tag or revision
      * @param message    a string that is a comment on the changes that where done
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#checkIn(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#checkIn(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)}
      */
     CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
         throws ScmException;
@@ -327,7 +332,7 @@
      * @param fileSet    the files to check in (sometimes called commit)
      * @param message    a string that is a comment on the changes that where done
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException;
@@ -345,7 +350,7 @@
      * @param revision   branch/tag/revision
      * @param message    a string that is a comment on the changes that where done
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message )
         throws ScmException;
@@ -357,8 +362,9 @@
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param tag        get the version defined by the tag
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion)}
      */
     CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
         throws ScmException;
@@ -369,7 +375,7 @@
      * @param repository the source control system
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -381,7 +387,7 @@
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param version    get the version defined by the revision, branch or tag
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException;
@@ -394,8 +400,9 @@
      * @param tag           tag or revision
      * @param recursive     whether to check out recursively
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,boolean)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,boolean)}
      */
     CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, String tag, boolean recursive )
         throws ScmException;
@@ -407,7 +414,7 @@
      * @param scmFileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param recursive     whether to check out recursively
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive )
         throws ScmException;
@@ -420,7 +427,7 @@
      * @param version       get the version defined by the revision, branch or tag
      * @param recursive     whether to check out recursively
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version,
                                 boolean recursive )
@@ -434,8 +441,9 @@
      * @param startRevision the start revision
      * @param endRevision   the end revision
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#diff(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#diff(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion)}
      */
     DiffScmResult diff( ScmRepository scmRepository, ScmFileSet scmFileSet, String startRevision, String endRevision )
         throws ScmException;
@@ -448,7 +456,7 @@
      * @param startVersion  the start branch/tag/revision
      * @param endVersion    the end branch/tag/revision
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     DiffScmResult diff( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion,
                         ScmVersion endVersion )
@@ -461,8 +469,9 @@
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param tag        get the version defined by the tag
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion)}
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag )
         throws ScmException;
@@ -473,7 +482,7 @@
      * @param repository the source control system
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -485,7 +494,7 @@
      * @param fileSet    the files are copied to the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} location
      * @param version    get the version defined by the branch/tag/revision
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException;
@@ -498,8 +507,9 @@
      * @param tag             get the version defined by the tag
      * @param outputDirectory the directory where the export will be stored
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#export(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)}
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag, String outputDirectory )
         throws ScmException;
@@ -512,7 +522,7 @@
      * @param version         get the version defined by the branch/tag/revision
      * @param outputDirectory the directory where the export will be stored
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory )
         throws ScmException;
@@ -524,7 +534,7 @@
      * @param fileSet    the files to be removed
      * @param message
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
         throws ScmException;
@@ -537,7 +547,7 @@
      * @param fileSet    the files to know the status about. Implementations can also give the changes
      *                   from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -550,7 +560,7 @@
      *                   from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
      * @param tagName    the tag name to apply to the files
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName )
         throws ScmException;
@@ -564,7 +574,7 @@
      * @param tagName    the tag name to apply to the files
      * @param message    the commit message used for the tag creation
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName, String message )
         throws ScmException;
@@ -575,7 +585,7 @@
      * @param repository the source control system
      * @param fileSet    location of your local copy
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -587,8 +597,9 @@
      * @param fileSet    location of your local copy
      * @param tag        use the version defined by the tag
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion)}
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
         throws ScmException;
@@ -600,7 +611,7 @@
      * @param fileSet    location of your local copy
      * @param version    use the version defined by the branch/tag/revision
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
         throws ScmException;
@@ -613,8 +624,9 @@
      * @param tag          use the version defined by the tag
      * @param runChangelog Run the changelog command after the update
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,boolean)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,boolean)}
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, boolean runChangelog )
         throws ScmException;
@@ -626,7 +638,7 @@
      * @param fileSet      location of your local copy
      * @param runChangelog Run the changelog command after the update
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, boolean runChangelog )
         throws ScmException;
@@ -639,7 +651,7 @@
      * @param version      use the version defined by the branch/tag/revision
      * @param runChangelog Run the changelog command after the update
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog )
         throws ScmException;
@@ -652,8 +664,9 @@
      * @param tag         use the version defined by the tag
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)}
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern )
         throws ScmException;
@@ -666,7 +679,7 @@
      * @param version     use the version defined by the branch/tag/revision
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern )
         throws ScmException;
@@ -679,8 +692,9 @@
      * @param tag        use the version defined by the tag
      * @param lastUpdate
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,java.util.Date)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,java.util.Date)}
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate )
         throws ScmException;
@@ -693,7 +707,7 @@
      * @param version    use the version defined by the branch/tag/revision
      * @param lastUpdate
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate )
         throws ScmException;
@@ -707,8 +721,9 @@
      * @param lastUpdate  Date of last update
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
-     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,java.util.Date,String)}
+     * @throws ScmException if any
+     * @deprecated you must use {@link ScmProvider#update(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,java.util.Date,String)}
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate,
                             String datePattern )
@@ -723,7 +738,7 @@
      * @param lastUpdate  Date of last update
      * @param datePattern the date pattern use in changelog output returned by scm tool
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate,
                             String datePattern )
@@ -737,19 +752,20 @@
      * @param repository the source control system
      * @param fileSet    the files to make editable
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     EditScmResult edit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
 
     /**
-     * Make a file no longer editable. This is the conterpart of {@link #edit(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)}.
+     * Make a file no longer editable. This is the conterpart of {@link #edit(
+     * org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)}.
      * It makes the file read-only again.
      *
      * @param repository the source control system
      * @param fileSet    the files to make uneditable
      * @return
-     * @throws ScmException
+     * @throws ScmException if any
      */
     UnEditScmResult unedit( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException;
@@ -762,7 +778,8 @@
      * @param recursive  descend recursively
      * @param tag        use the version defined by the tag
      * @return the list of files in the repository
-     * @deprecated you must use {@link ScmProvider#list(org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet,boolean,org.apache.maven.scm.ScmVersion)}
+     * @deprecated you must use {@link ScmProvider#list(org.apache.maven.scm.repository.ScmRepository,
+     * org.apache.maven.scm.ScmFileSet,boolean,org.apache.maven.scm.ScmVersion)}
      */
     ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag )
         throws ScmException;
@@ -775,6 +792,7 @@
      * @param recursive  descend recursively
      * @param version    use the version defined by the branch/tag/revision
      * @return the list of files in the repository
+     * @throws ScmException if any
      */
     ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version )
         throws ScmException;
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmUrlUtils.java b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmUrlUtils.java
index 4dbe506..056099f 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmUrlUtils.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmUrlUtils.java
@@ -36,8 +36,9 @@
  */
 public abstract class ScmUrlUtils
 {
-    private final static String ILLEGAL_SCM_URL = "The scm url must be on the form " +
-        "'scm:<scm provider><delimiter><provider specific part>' " + "where <delimiter> can be either ':' or '|'.";
+    private static final String ILLEGAL_SCM_URL =
+        "The scm url must be on the form 'scm:<scm provider><delimiter><provider specific part>' "
+            + "where <delimiter> can be either ':' or '|'.";
 
     /**
      * Get the delimiter used in the scm url.
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepository.java b/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepository.java
index e5a3174..682ca53 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepository.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepository.java
@@ -57,10 +57,10 @@
         return providerRepository;
     }
 
+    /** {@inheritDoc} */
     public String toString()
     {
         return provider.toString() + ":" + providerRepository.toString();
     }
-
 }
 
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepositoryException.java b/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepositoryException.java
index 5fa21cb..a42030e 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepositoryException.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/repository/ScmRepositoryException.java
@@ -31,6 +31,8 @@
 public class ScmRepositoryException
     extends ScmException
 {
+    static final long serialVersionUID = -2191549774722212492L;
+
     private List validationMessages = Collections.EMPTY_LIST;
 
     public ScmRepositoryException( String msg )
diff --git a/maven-scm-api/src/site/site.xml b/maven-scm-api/src/site/site.xml
new file mode 100644
index 0000000..10cb178
--- /dev/null
+++ b/maven-scm-api/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM API">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-client/install.sh b/maven-scm-client/install.sh
deleted file mode 100644
index 85dcf10..0000000
--- a/maven-scm-client/install.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-scripts=`ls src/main/bash/maven-scm-*`
-
-dest=$HOME/bin2
-
-echo "Installing scripts to '$dest'."
-
-if [ ! -x $dest ]
-then
-  echo "Destination directory '$dest' doesn't exist!" 1>&2
-
-  exit 1
-fi
-
-for script in $scripts
-do
-  cp $script $dest/$script
-  chmod +x $HOME/bin/$script
-done
-
-echo "Installation done."
diff --git a/maven-scm-client/pom.xml b/maven-scm-client/pom.xml
index 4bcc984..ab38c9c 100644
--- a/maven-scm-client/pom.xml
+++ b/maven-scm-client/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,27 +20,30 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm</artifactId>
     <version>1.1</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
+
   <artifactId>maven-scm-client</artifactId>
+
   <name>Maven SCM Client</name>
-  <version>1.1</version>
+  <description>SCM Client is a simple SCM command line tool.</description>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-manager-plexus</artifactId>
-      <version>1.1</version>
     </dependency>
-    
+
     <!-- providers declaration -->
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-accurev</artifactId>
-    </dependency>     
+    </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-bazaar</artifactId>
@@ -87,6 +92,50 @@
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-vss</artifactId>
     </dependency>
-    <!-- end providers declaration --> 
+    <!-- end providers declaration -->
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>merge</id>
+            <configuration>
+              <descriptors>
+                <descriptor>src/main/resources/META-INF/plexus/components.xml</descriptor>
+              </descriptors>
+            </configuration>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>merge-descriptors</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <version>2.2-beta-2</version>
+        <configuration>
+          <descriptorId>jar-with-dependencies</descriptorId>
+          <finalName>maven-scm-client-${project.version}</finalName>
+          <archive>
+            <manifestEntries>
+              <Main-Class>org.apache.maven.scm.client.cli.MavenScmCli</Main-Class>
+            </manifestEntries>
+          </archive>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java b/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java
index b90f9dd..70ba03f 100644
--- a/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java
+++ b/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java
@@ -108,7 +108,8 @@
             System.err.println(
                 "Usage: maven-scm-client <command> <working directory> <scm url> [<scmVersion> [<scmVersionType>]]" );
             System.err.println( "scmVersion is a branch name/tag name/revision number." );
-            System.err.println( "scmVersionType can be 'branch', 'tag', 'revision'. The default value is 'revision'." );
+            System.err.println( "scmVersionType can be 'branch', 'tag', 'revision'. "
+                + "The default value is 'revision'." );
 
             return;
         }
@@ -221,7 +222,8 @@
     {
         if ( workingDirectory.exists() )
         {
-            System.err.println( "The working directory already exist: '" + workingDirectory.getAbsolutePath() + "'." );
+            System.err.println( "The working directory already exist: '" + workingDirectory.getAbsolutePath()
+                + "'." );
 
             return;
         }
@@ -260,14 +262,16 @@
     {
         if ( !workingDirectory.exists() )
         {
-            System.err.println( "The working directory doesn't exist: '" + workingDirectory.getAbsolutePath() + "'." );
+            System.err.println( "The working directory doesn't exist: '" + workingDirectory.getAbsolutePath()
+                + "'." );
 
             return;
         }
 
         String message = "";
 
-        CheckInScmResult result = scmManager.checkIn( scmRepository, new ScmFileSet( workingDirectory ), version, message );
+        CheckInScmResult result =
+            scmManager.checkIn( scmRepository, new ScmFileSet( workingDirectory ), version, message );
 
         if ( !result.isSuccess() )
         {
@@ -293,7 +297,8 @@
     {
         if ( !workingDirectory.exists() )
         {
-            System.err.println( "The working directory doesn't exist: '" + workingDirectory.getAbsolutePath() + "'." );
+            System.err.println( "The working directory doesn't exist: '" + workingDirectory.getAbsolutePath()
+                + "'." );
 
             return;
         }
diff --git a/maven-scm-client/src/main/resources/META-INF/plexus/components.xml b/maven-scm-client/src/main/resources/META-INF/plexus/components.xml
new file mode 100644
index 0000000..21d910c
--- /dev/null
+++ b/maven-scm-client/src/main/resources/META-INF/plexus/components.xml
@@ -0,0 +1,103 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+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.
+-->
+
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.scm.manager.ScmManager</role>
+      <implementation>org.apache.maven.scm.manager.plexus.DefaultScmManager</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.scm.provider.ScmProvider</role>
+          <field-name>scmProviders</field-name>
+        </requirement>
+      </requirements>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>accurev</role-hint>
+      <implementation>org.apache.maven.scm.provider.accurev.AccuRevScmProvider</implementation>
+      <description>Implementation of Accurev integration with Maven SCM</description>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>bazaar</role-hint>
+      <implementation>org.apache.maven.scm.provider.bazaar.BazaarScmProvider</implementation>
+      <description>Bazaar NG http://bazaar-vcs.</description>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>clearcase</role-hint>
+      <implementation>org.apache.maven.scm.provider.clearcase.ClearCaseScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>hg</role-hint>
+      <implementation>org.apache.maven.scm.provider.hg.HgScmProvider</implementation>
+      <description>Mercurial (HG) is a decentralized revision control system.</description>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>local</role-hint>
+      <implementation>org.apache.maven.scm.provider.local.LocalScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>perforce</role-hint>
+      <implementation>org.apache.maven.scm.provider.perforce.PerforceScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>cvs_native</role-hint>
+      <implementation>org.apache.maven.scm.provider.cvslib.cvsexe.CvsExeScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>cvs</role-hint>
+      <implementation>org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>git</role-hint>
+      <implementation>org.apache.maven.scm.provider.git.gitexe.GitExeScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>svn</role-hint>
+      <implementation>org.apache.maven.scm.provider.svn.svnexe.SvnExeScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>starteam</role-hint>
+      <implementation>org.apache.maven.scm.provider.starteam.StarteamScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>synergy</role-hint>
+      <implementation>org.apache.maven.scm.provider.synergy.SynergyScmProvider</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>vss</role-hint>
+      <implementation>org.apache.maven.scm.provider.vss.VssScmProvider</implementation>
+    </component>
+  </components>
+</component-set>
diff --git a/maven-scm-client/src/site/apt/index.apt b/maven-scm-client/src/site/apt/index.apt
new file mode 100644
index 0000000..eb5a9c4
--- /dev/null
+++ b/maven-scm-client/src/site/apt/index.apt
@@ -0,0 +1,56 @@
+ ------
+ Introduction
+ ------
+ Vincent Siveton
+ ------
+ 2008-08-14
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
+Maven SCM Client
+
+ The Maven SCM client is a simple SCM command line tool.
+
+* Usage
+
++-----+
+# java -jar target\maven-scm-client-1.1-jar-with-dependencies.jar
+Usage: maven-scm-client <command> <working directory> <scm url> [<scmVersion> [<scmVersionType>]]
+scmVersion is a branch name/tag name/revision number.
+scmVersionType can be 'branch', 'tag', 'revision'. The default value is 'revision'.
++-----+
+
+* Example
+
++-----+
+# java -jar target\maven-scm-client-1.1-jar-with-dependencies.jar checkout c:\temp\maven-scm-client scm:svn:http://svn.apache.org/repos/asf/maven/scm/trunk/maven-scm-client
+[INFO] Executing: cmd.exe /X /C "svn --non-interactive checkout http://svn.apache.org/repos/asf/maven/scm/trunk/maven-scm-client maven-scm-client"
+[INFO] Working directory: c:\temp
+Checked out these files:
+ maven-scm-client\src\main\java\org\apache\maven\scm\client\cli\MavenScmCli.java
+ maven-scm-client\src\main\resources\META-INF\plexus\components.xml
+ maven-scm-client\src\main\bash\maven-scm-update
+ maven-scm-client\src\main\bash\maven-scm-checkin
+ maven-scm-client\src\main\bash\maven-scm-checkout
+ maven-scm-client\src\site\site.xml
+ maven-scm-client\pom.xml
++-----+
diff --git a/maven-scm-client/src/site/site.xml b/maven-scm-client/src/site/site.xml
new file mode 100644
index 0000000..2feb8b8
--- /dev/null
+++ b/maven-scm-client/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM Client">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-managers/maven-scm-manager-plexus/pom.xml b/maven-scm-managers/maven-scm-manager-plexus/pom.xml
index 9b3e99c..9347390 100644
--- a/maven-scm-managers/maven-scm-manager-plexus/pom.xml
+++ b/maven-scm-managers/maven-scm-manager-plexus/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,32 +20,35 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm-managers</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm-managers</artifactId>
     <version>1.1</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
+
   <artifactId>maven-scm-manager-plexus</artifactId>
+
   <name>Maven SCM Manager for Plexus</name>
-  <version>1.1</version>
+  <description>SCM Plexus component.</description>
+
   <dependencies>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-container-default</artifactId>
-      <version>1.0-alpha-9</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-api</artifactId>
-    </dependency>    
+    </dependency>
   </dependencies>
+
   <build>
     <plugins>
       <plugin>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-maven-plugin</artifactId>
-        <version>1.3.4</version>
         <executions>
           <execution>
             <goals>
diff --git a/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java b/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java
index c114f5c..bfaac5e 100644
--- a/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java
+++ b/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java
@@ -89,6 +89,7 @@
     // Component Lifecycle
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void initialize()
     {
         if ( scmProviders == null )
@@ -104,6 +105,7 @@
         setScmProviders( scmProviders );
     }
 
+    /** {@inheritDoc} */
     protected ScmLogger getScmLogger()
     {
         return new PlexusLogger( getLogger() );
diff --git a/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/PlexusLogger.java b/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/PlexusLogger.java
index 1635bef..1061fe9 100644
--- a/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/PlexusLogger.java
+++ b/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/PlexusLogger.java
@@ -36,132 +36,99 @@
         this.logger = logger;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isDebugEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isDebugEnabled()
     {
         return logger.isDebugEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void debug( String content )
     {
         logger.debug( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( String content, Throwable error )
     {
         logger.debug( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( Throwable error )
     {
         logger.debug( "", error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isInfoEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isInfoEnabled()
     {
         return logger.isInfoEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void info( String content )
     {
         logger.info( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( String content, Throwable error )
     {
         logger.info( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( Throwable error )
     {
         logger.info( "", error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isWarnEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isWarnEnabled()
     {
         return logger.isWarnEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void warn( String content )
     {
         logger.warn( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( String content, Throwable error )
     {
         logger.warn( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( Throwable error )
     {
         logger.warn( "", error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isErrorEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isErrorEnabled()
     {
         return logger.isErrorEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void error( String content )
     {
         logger.error( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( String content, Throwable error )
     {
         logger.error( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( Throwable error )
     {
         logger.error( "", error );
     }
-
 }
diff --git a/maven-scm-managers/maven-scm-manager-plexus/src/site/site.xml b/maven-scm-managers/maven-scm-manager-plexus/src/site/site.xml
new file mode 100644
index 0000000..a2b5daf
--- /dev/null
+++ b/maven-scm-managers/maven-scm-manager-plexus/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM Plexus Manager">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-managers/pom.xml b/maven-scm-managers/pom.xml
index 6759cc7..9110b44 100644
--- a/maven-scm-managers/pom.xml
+++ b/maven-scm-managers/pom.xml
@@ -18,26 +18,21 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
     <artifactId>maven-scm</artifactId>
     <groupId>org.apache.maven.scm</groupId>
     <version>1.1</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
+
   <artifactId>maven-scm-managers</artifactId>
   <packaging>pom</packaging>
+
   <name>Maven SCM Managers</name>
-  <version>1.1</version>
+  <description>Parent for SCM Managers.</description>
+
   <modules>
     <module>maven-scm-manager-plexus</module>
   </modules>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.maven.scm</groupId>
-        <artifactId>maven-scm-api</artifactId>
-        <version>1.1</version>
-      </dependency>
-    </dependencies>  
-  </dependencyManagement>
 </project>
diff --git a/maven-scm-managers/src/site/site.xml b/maven-scm-managers/src/site/site.xml
new file mode 100644
index 0000000..7858bc3
--- /dev/null
+++ b/maven-scm-managers/src/site/site.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM Managers">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="modules" />
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-plugin/pom.xml b/maven-scm-plugin/pom.xml
index c8f1a8e..e378282 100644
--- a/maven-scm-plugin/pom.xml
+++ b/maven-scm-plugin/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,47 +20,33 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <artifactId>maven-scm</artifactId>
-    <groupId>org.apache.maven.scm</groupId>
-    <version>1.1</version>
-  </parent>
   <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.plugins</groupId>
+    <artifactId>maven-plugins</artifactId>
+    <version>11</version>
+  </parent>
+
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-scm-plugin</artifactId>
-  <packaging>maven-plugin</packaging>
-  <name>Maven SCM Plugin</name>
-  <description>Maven Plugin that allows accessing different SCMs</description>
   <version>1.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven SCM Plugin</name>
+  <description>Maven Plugin that allows accessing different SCMs.</description>
+
   <prerequisites>
     <maven>2.0.6</maven>
   </prerequisites>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-plugin-plugin</artifactId>
-        <version>2.3</version>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-        <artifactId>wagon-ssh-external</artifactId>
-        <version>1.0-beta-2</version>
-      </extension>
-    </extensions>
-  </build>
+
+  <distributionManagement>
+    <site>
+      <id>apache.website</id>
+      <url>scp://people.apache.org/www/maven.apache.org/scm/maven-scm-plugin</url>
+    </site>
+  </distributionManagement>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -78,63 +66,42 @@
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-manager-plexus</artifactId>
+      <version>1.1</version>
     </dependency>
-    
+
     <!-- providers declaration -->
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-accurev</artifactId>
-    </dependency>     
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-bazaar</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-clearcase</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-cvsexe</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-cvsjava</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-gitexe</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-hg</artifactId>
+      <artifactId>maven-scm-providers-standard</artifactId>
+      <version>1.1</version>
+      <type>pom</type>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-local</artifactId>
+      <version>1.1</version>
     </dependency>
+    <!-- This is used directly by the mojo -->
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-perforce</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-starteam</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-svnexe</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-synergy</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.scm</groupId>
-      <artifactId>maven-scm-provider-vss</artifactId>
+      <artifactId>maven-scm-provider-svn-commons</artifactId>
+      <version>1.1</version>
     </dependency>
     <!-- end providers declaration -->
-    
+
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.5.6</version>
+    </dependency>
+
+    <!-- Test -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.2</version>
+      <scope>test</scope>
+    </dependency>   
     <dependency>
       <groupId>org.apache.maven.plugin-testing</groupId>
       <artifactId>maven-plugin-testing-harness</artifactId>
@@ -148,10 +115,249 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
-  <distributionManagement>
-    <site>
-      <id>apache.website</id>
-      <url>scpexe://people.apache.org/www/maven.apache.org/scm/plugins</url>
-    </site>
-  </distributionManagement>
+
+  <build>
+    <extensions>
+      <extension>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-ssh-external</artifactId>
+        <version>1.0-beta-2</version>
+      </extension>
+    </extensions>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>2.0-beta-7</version>
+          <configuration>
+            <tagBase>https://svn.apache.org/repos/asf/maven/scm/tags</tagBase>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>2.0-beta-7</version>
+          <configuration>
+            <stagingSiteURL>scp://people.apache.org/www/maven.apache.org/scm/maven-scm-plugin-${project.version}</stagingSiteURL>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+  
+  <profiles>
+    <profile>
+      <id>reporting</id>
+      <reporting>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-changes-plugin</artifactId>
+            <version>2.0</version>
+            <configuration>
+              <!-- For JIRA-report -->
+              <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+              <onlyCurrentVersion>true</onlyCurrentVersion>
+              <resolutionIds>Closed</resolutionIds>
+              <sortColumnNames>Type,Key</sortColumnNames>
+            </configuration>
+            <reportSets>
+              <reportSet>
+                <reports>
+                  <report>jira-report</report>
+                </reports>
+              </reportSet>
+            </reportSets>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>2.4.2</version>
+          </plugin>
+          <!-- TODO: remove when maven-plugins parent pom 12 is released -->
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <configuration>
+              <taglets>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecuteTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecutionStrategyTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoGoalTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInheritByDefaultTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInstantiationStrategyTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoParameterFieldTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoPhaseTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoReadOnlyFieldTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiredFieldTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDependencyResolutionTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDirectInvocationTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresOnLineTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresProjectTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresReportsTypeTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.apache.maven.plugin-tools</groupId>
+                    <artifactId>maven-plugin-tools-javadoc</artifactId>
+                    <version>2.4.2</version>
+                  </tagletArtifact>
+                </taglet>
+
+                <taglet>
+                  <tagletClass>org.codehaus.plexus.javadoc.PlexusComponentTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-javadoc</artifactId>
+                    <version>1.0</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.codehaus.plexus.javadoc.PlexusConfigurationTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-javadoc</artifactId>
+                    <version>1.0</version>
+                  </tagletArtifact>
+                </taglet>
+                <taglet>
+                  <tagletClass>org.codehaus.plexus.javadoc.PlexusRequirementTaglet</tagletClass>
+                  <tagletArtifact>
+                    <groupId>org.codehaus.plexus</groupId>
+                    <artifactId>plexus-javadoc</artifactId>
+                    <version>1.0</version>
+                  </tagletArtifact>
+                </taglet>
+              </taglets>
+            </configuration>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>2.4.2</version>
+          </plugin>
+        </plugins>
+      </reporting>
+    </profile>
+  </profiles>
+
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/scm/tags/maven-scm-1.1</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/scm/tags/maven-scm-1.1</developerConnection>
+    <url>http://svn.apache.org/viewcvs.cgi/maven/scm/tags/maven-scm-1.1</url>
+  </scm>
 </project>
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
index 739cadf..2e484f0 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
@@ -166,6 +166,7 @@
      */
     private Map providerImplementations;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
@@ -190,8 +191,9 @@
             {
                 String providerType = (String) i.next();
                 String providerImplementation = (String) providerImplementations.get( providerType );
-                getLog().info( "Change the default '" + providerType + "' provider implementation to '" +
-                    providerImplementation + "'." );
+                getLog().info(
+                               "Change the default '" + providerType + "' provider implementation to '"
+                                   + providerImplementation + "'." );
                 getScmManager().setScmProviderImplementation( providerType, providerImplementation );
             }
         }
@@ -340,7 +342,7 @@
     /**
      * Load username password from settings if user has not set them in JVM properties
      *
-     * @param repo
+     * @param repo not null
      */
     private void loadInfosFromSettings( ScmProviderRepositoryWithHost repo )
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java
index ed36ea9..aaa1d3b 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java
@@ -27,14 +27,17 @@
 import java.io.IOException;
 
 /**
+ * Add a file set to the project.
+ *
  * @author <a href="julien.henry@capgemini.com">Julien Henry</a>
+ * @version $Id$
  * @goal add
  * @aggregator
- * @description Add a files to the project
  */
 public class AddMojo
     extends AbstractScmMojo
 {
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java
index 682e808..5e01733 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java
@@ -27,11 +27,7 @@
 import org.codehaus.plexus.util.cli.DefaultConsumer;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.InputStreamReader;
-import java.util.Iterator;
-import java.util.Properties;
 
 /**
  * Pull the project source from the configured scm and execute the configured goals.
@@ -39,7 +35,6 @@
  * @author <a href="dantran@gmail.com">Dan T. Tran</a>
  * @version $Id$
  * @goal bootstrap
- * @description Boostrap a project
  * @requiresProject false
  */
 public class BootstrapMojo
@@ -71,6 +66,7 @@
      */
     private String goalsDirectory;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
@@ -78,32 +74,29 @@
 
         if ( this.getCheckoutResult() != null )
         {
-        	runGoals( this.getCheckoutResult().getRelativePathProjectDirectory() );
+            runGoals( this.getCheckoutResult().getRelativePathProjectDirectory() );
         }
     }
 
     /**
      * @param relativePathProjectDirectory the project directory's path relative to the checkout
      *                                     directory; or "" if they are the same
+     * @throws MojoExecutionException if any
      */
     private void runGoals( String relativePathProjectDirectory )
         throws MojoExecutionException
     {
         Commandline cl = new Commandline();
-
         try
         {
-            addSystemEnvironment( cl );
+            cl.addSystemEnvironment();
         }
         catch ( Exception e )
         {
             throw new MojoExecutionException( "Can't add system environment variables to mvn command line.", e );
         }
-
         cl.addEnvironment( "MAVEN_TERMINATE_CMD", "on" );
-
         cl.setExecutable( "mvn" );
-
         cl.setWorkingDirectory( determineWorkingDirectoryPath( this.getCheckoutDirectory(),
                                                                relativePathProjectDirectory, goalsDirectory ) );
 
@@ -113,13 +106,13 @@
 
             for ( int i = 0; i < tokens.length; ++i )
             {
-                cl.createArgument().setValue( tokens[i] );
+                cl.createArg().setValue( tokens[i] );
             }
         }
 
         if ( ! StringUtils.isEmpty( this.profiles ) )
         {
-            cl.createArgument().setValue( "-P" + this.profiles );
+            cl.createArg().setValue( "-P" + this.profiles );
         }
 
         StreamConsumer consumer = new DefaultConsumer();
@@ -140,9 +133,9 @@
     }
 
     /**
-     * Determines the path of the working directory. By default, this is the checkout directory. For some SCMs, the project root directory
-     * is not the checkout directory itself, but a SCM-specific subdirectory. The build can furthermore optionally be executed in a
-     * subdirectory of this project directory, in case
+     * Determines the path of the working directory. By default, this is the checkout directory. For some SCMs,
+     * the project root directory is not the checkout directory itself, but a SCM-specific subdirectory. The
+     * build can furthermore optionally be executed in a subdirectory of this project directory, in case.
      *
      * @param checkoutDirectory
      * @param relativePathProjectDirectory
@@ -166,73 +159,7 @@
         {
             return projectDirectory.getPath();
         }
-        else
-        {
-            return new File( projectDirectory, goalsDirectory ).getPath();
-        }
-    }
 
-    /**
-     * Add system environment variables
-     * Moved to plexus-utils 1.0.5
-     */
-    private void addSystemEnvironment( Commandline cl )
-        throws Exception
-    {
-        Properties envVars = getSystemEnvVars();
-
-        for ( Iterator i = envVars.keySet().iterator(); i.hasNext(); )
-        {
-            String key = (String) i.next();
-
-            cl.addEnvironment( key, envVars.getProperty( key ) );
-        }
-    }
-
-    private Properties getSystemEnvVars()
-        throws Exception
-    {
-        Process p = null;
-
-        Properties envVars = new Properties();
-
-        Runtime r = Runtime.getRuntime();
-
-        String os = System.getProperty( "os.name" ).toLowerCase();
-
-        //If this is windows set the shell to command.com or cmd.exe with correct arguments.
-        if ( os.indexOf( "windows" ) != -1 )
-        {
-            if ( os.indexOf( "95" ) != -1 || os.indexOf( "98" ) != -1 || os.indexOf( "Me" ) != -1 )
-            {
-                p = r.exec( "command.com /c set" );
-            }
-            else
-            {
-                p = r.exec( "cmd.exe /c set" );
-            }
-        }
-        else
-        {
-            p = r.exec( "env" );
-        }
-
-        BufferedReader br = new BufferedReader( new InputStreamReader( p.getInputStream() ) );
-
-        String line;
-
-        while ( ( line = br.readLine() ) != null )
-        {
-            int idx = line.indexOf( '=' );
-
-            String key = line.substring( 0, idx );
-
-            String value = line.substring( idx + 1 );
-
-            envVars.setProperty( key, value );
-            // System.out.println( key + " = " + value );
-        }
-
-        return envVars;
+        return new File( projectDirectory, goalsDirectory ).getPath();
     }
 }
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java
index baf5487..99fe1a6 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java
@@ -33,16 +33,16 @@
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  * @goal branch
- * @description Branch the project
  * @aggregator
  */
 public class BranchMojo
     extends AbstractScmMojo
 {
     /**
-     * Tag name.
+     * The branch name.
      *
      * @parameter expression="${branch}"
+     * @required
      */
     private String branch;
 
@@ -53,6 +53,7 @@
      */
     private String message;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
index 1686cf3..64f56eb 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
@@ -89,6 +89,7 @@
      */
     private String scmVersion;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
index a962bba..5c8f878 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
@@ -32,7 +32,6 @@
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  * @goal checkin
- * @description checkin the project
  * @aggregator
  */
 public class CheckinMojo
@@ -66,6 +65,7 @@
      */
     private String scmVersion;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
index 3692016..f2354e8 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
@@ -35,7 +35,6 @@
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  * @goal checkout
- * @description Check out a project
  * @requiresProject false
  */
 public class CheckoutMojo
@@ -73,7 +72,8 @@
      * allow extended mojo (ie BootStrap ) to see checkout result
      */
     private CheckOutScmResult checkoutResult;
-    
+
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
@@ -83,7 +83,7 @@
         checkoutResult = null;
         if ( !getCheckoutDirectory().isDirectory() || !this.skipCheckoutIfExists )
         {
-        	checkoutResult = checkout();
+            checkoutResult = checkout();
         }
     }
 
@@ -133,7 +133,7 @@
         }
     }
 
-    protected CheckOutScmResult getCheckoutResult() 
+    protected CheckOutScmResult getCheckoutResult()
     {
         return checkoutResult;
     }
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java
index c8ee66c..ad71438 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java
@@ -36,129 +36,97 @@
         this.logger = logger;
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isDebugEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isDebugEnabled()
     {
         return logger.isDebugEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void debug( String content )
     {
         logger.debug( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( String content, Throwable error )
     {
         logger.debug( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#debug(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void debug( Throwable error )
     {
         logger.debug( error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isInfoEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isInfoEnabled()
     {
         return logger.isInfoEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void info( String content )
     {
         logger.info( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( String content, Throwable error )
     {
         logger.info( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#info(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void info( Throwable error )
     {
         logger.info( error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isWarnEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isWarnEnabled()
     {
         return logger.isWarnEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void warn( String content )
     {
         logger.warn( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( String content, Throwable error )
     {
         logger.warn( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#warn(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void warn( Throwable error )
     {
         logger.warn( error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#isErrorEnabled()
-     */
+    /** {@inheritDoc} */
     public boolean isErrorEnabled()
     {
         return logger.isErrorEnabled();
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String)
-     */
+    /** {@inheritDoc} */
     public void error( String content )
     {
         logger.error( content );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.String,java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( String content, Throwable error )
     {
         logger.error( content, error );
     }
 
-    /**
-     * @see org.apache.maven.scm.log.ScmLogger#error(java.lang.Throwable)
-     */
+    /** {@inheritDoc} */
     public void error( Throwable error )
     {
         logger.error( error );
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
index bb1d5f7..3e50aa3 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
@@ -34,7 +34,6 @@
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  * @goal diff
- * @description Create a diff
  * @aggregator
  */
 public class DiffMojo
@@ -76,6 +75,7 @@
      */
     private File outputFile;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java
index 5fea54f..af47e34 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java
@@ -37,6 +37,7 @@
 public class EditMojo
     extends AbstractScmMojo
 {
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
index 6b6992a..a9c5cd7 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
@@ -36,7 +36,6 @@
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  * @goal export
- * @description Export a project
  * @requiresProject false
  */
 public class ExportMojo
@@ -64,6 +63,7 @@
      */
     private String exportDirectory;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
index 6f93beb..e470442 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
@@ -1,16 +1,5 @@
 package org.apache.maven.scm.plugin;
 
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.ScmFile;
-import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.command.list.ListScmResult;
-import org.apache.maven.scm.repository.ScmRepository;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -30,13 +19,23 @@
  * under the License.
  */
 
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.list.ListScmResult;
+import org.apache.maven.scm.repository.ScmRepository;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+
 /**
  * Get the list of project files.
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  * @goal list
- * @description List files in project
  * @aggregator
  */
 public class ListMojo
@@ -63,6 +62,7 @@
      */
     private boolean recursive = true;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
index dd08155..e629267 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
@@ -36,12 +36,12 @@
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  * @goal status
- * @description Project status
  * @aggregator
  */
 public class StatusMojo
     extends AbstractScmMojo
 {
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
@@ -71,8 +71,9 @@
                 ScmFile file = (ScmFile) iter.next();
 
                 // right align all of the statuses
-                getLog().info( StringUtils.leftPad( file.getStatus().toString(), maxLen ) + " status for " +
-                    getRelativePath( baseDir, file.getPath() ) );
+                getLog().info(
+                               StringUtils.leftPad( file.getStatus().toString(), maxLen ) + " status for "
+                                   + getRelativePath( baseDir, file.getPath() ) );
             }
         }
         catch ( IOException e )
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
index 099a0e6..c6746aa 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
@@ -37,15 +37,15 @@
  * @version $Id$
  * @goal tag
  * @aggregator
- * @description Tag the project
  */
 public class TagMojo
     extends AbstractScmMojo
 {
     /**
-     * Tag name.
+     * The tag name.
      *
      * @parameter expression="${tag}"
+     * @required
      */
     private String tag;
 
@@ -84,6 +84,7 @@
      */
     private String timestampPrefix;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java
index 4e478a8..da38425 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java
@@ -37,6 +37,7 @@
 public class UnEditMojo
     extends AbstractScmMojo
 {
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
index e69f33e..16596a9 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
@@ -35,7 +35,6 @@
  * @version $Id$
  * @goal update
  * @aggregator
- * @description Update the project
  */
 public class UpdateMojo
     extends AbstractScmMojo
@@ -77,6 +76,7 @@
      */
     private boolean runChangelog = false;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java
index 03b4d6a..f1844e0 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java
@@ -1,14 +1,5 @@
 package org.apache.maven.scm.plugin;
 
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.command.update.UpdateScmResult;
-import org.apache.maven.scm.command.update.UpdateScmResultWithRevision;
-import org.apache.maven.scm.repository.ScmRepository;
-
-import java.io.IOException;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -28,9 +19,21 @@
  * under the License.
  */
 
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.command.update.UpdateScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResultWithRevision;
+import org.apache.maven.scm.repository.ScmRepository;
+
+import java.io.IOException;
+
 /**
+ * Updates all projects in a multi project build. This is useful for users who have adopted the flat project structure
+ * where the aggregator project is a sibling of the sub projects rather than sitting in the parent directory.
+ *
  * @goal update-subprojects
- * @description Updates all projects in a multi project build. This is useful for users who have adopted the flat project structure where the aggregator project is a sibling of the sub projects rather than sitting in the parent directory.
+ * @version $Id$
  */
 public class UpdateSubprojectsMojo
     extends AbstractScmMojo
@@ -65,6 +68,7 @@
      */
     private MavenProject project;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java
index 65d7eec..430cbf9 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java
@@ -50,6 +50,7 @@
      */
     private String scmDeveloperConnection;
 
+    /** {@inheritDoc} */
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-scm-plugin/src/site/apt/examples/bootstrapping-with-pom.apt b/maven-scm-plugin/src/site/apt/examples/bootstrapping-with-pom.apt
index 3d45bb9..e02aea1 100644
--- a/maven-scm-plugin/src/site/apt/examples/bootstrapping-with-pom.apt
+++ b/maven-scm-plugin/src/site/apt/examples/bootstrapping-with-pom.apt
@@ -3,20 +3,40 @@
  ------
  Pete Marvin King
  ------
- 20 July 2006
+ 2008-08-13
  ------
- 
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
 Bootstrapping a Project Using a POM
 
  Using the <<<scm:bootstrap>>> a project can be build from a fresh copy of the source in the scm repository.
  This is a convenient way to distribute a project because the bootstrap pom can be given to a developer to generate
- the maven build environment for the project. 
- 
- The <<<pom.xml>>> should contain a scm configuration for the bootstrap to work. 
- 
+ the maven build environment for the project.
+
+ The <<<pom.xml>>> should contain a scm configuration for the bootstrap to work.
+
 +-----------+
 <project>
-  [...]
+  ...
   <packaging>jar</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>SCM Sample Project</name>
@@ -26,9 +46,9 @@
     <developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection>
     <url>http://somerepository.com/view.cvs</url>
   <scm>
-  [...]
+  ...
   <build>
-    [...]
+    ...
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -39,32 +59,33 @@
         </configuration>
       </plugin>
     </plugins>
-    [...]
+    ...
   </build>
-  [...]
+  ...
 </project>
-+-----------+  
++-----------+
 
- Assuming the scm configuration has been configured in the <<<pom.xml>>>, bootstrapping can be invoked by 
- 
+ Assuming the scm configuration has been configured in the <<<pom.xml>>>, bootstrapping can be invoked by
+
 +---------+
    mvn scm:bootstrap
-+---------+ 
++---------+
 
- By default the scm plugin will get the latest version from the trunk and generate it under <<<target/checkout>>> and execute 
- the configured goals in it. 
-  
+ By default the scm plugin will get the latest version from the trunk and generate it under <<<target/checkout>>> and execute
+ the configured goals in it.
+
 Configuring Authentication
 
  Most public repositories requires developers to authenticate first before they can pull the source from the repository.
  For repository requiring authentication, the scm plugin needs to be configured in the <<<pom.xml>>>
- 
- * specifying the username and password for svn and starteam 
- 
-+-----------+   
-  [...]
+
+ * specifying the username and password for svn and starteam
+
++-----------+
+<project>
+  ...
   <build>
-    [...]
+    ...
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -76,7 +97,8 @@
         </configuration>
       </plugin>
     </plugins>
-    [...]
+    ...
   </build>
-  [...]
-+-----------+  
+  ...
+</project>
++-----------+
diff --git a/maven-scm-plugin/src/site/apt/examples/scm-advance-features.apt b/maven-scm-plugin/src/site/apt/examples/scm-advance-features.apt
index 5a92160..7ea9c5a 100644
--- a/maven-scm-plugin/src/site/apt/examples/scm-advance-features.apt
+++ b/maven-scm-plugin/src/site/apt/examples/scm-advance-features.apt
@@ -3,15 +3,36 @@
  ------
  Pete Marvin King
  ------
- 20 July 2006
- ------ 
- 
+ 2008-08-13
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
 Other SCM Commands
 
  The scm plugin requires the scm to be configured in the <<<pom.xml>>>.
- 
+
 +---------+
-  [...]
+<project>
+  ...
   <packaging>jar</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>SCM Sample Project</name>
@@ -21,16 +42,18 @@
     <developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection>
     <url>http://somerepository.com/view.cvs</url>
   </scm>
-  [...]
+  ...
+</project>
 +---------+
 
  If you want to change the default scm provider implementation, for exemple you want to use the native cvs
  instead of the pure java implementation, you must configure your plugin like that:
 
 +-----------+
-  [...]
+<project>
+  ...
   <build>
-    [...]
+    ...
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -41,23 +64,25 @@
           </providerImplementations>
         </configuration>
       </plugin>
-      [...]
+      ...
     </plugins
-    [...]
+    ...
   </build>
-  [...]
-+-----------+  
+  ...
+</project>
++-----------+
 
  Once the scm has been configured, scm operations can be performed.
-  
+
 * changelog - displays the project commit changes for each revisions
 
     <<<pom.xml>>> configuration :
-    
+
 +-----------+
-  [...]
+<project>
+  ...
   <build>
-    [...]
+    ...
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -68,34 +93,36 @@
           <endDate>YYYY-MM-DD</endDate>
         </configuration>
       </plugin>
-      [...]
+      ...
     </plugins
-    [...]
+    ...
   </build>
-  [...]
-+-----------+  
-    
+  ...
+</project>
++-----------+
+
     Command :
-      
+
 +---------+
   mvn scm:changelog
-+---------+  
-    
++---------+
+
     or you can specify the startDate and endDate on the commandline
-    
+
 +---------+
   mvn -DstartDate=YYYY-MM-DD -DendDate=YYYY-MM-DD scm:changelog
-+---------+  
-      
-  
++---------+
+
+
 * diff
 
     <<<pom.xml>>> configuration :
-    
+
 +-----------+
-  [...]
+<project>
+  ...
   <build>
-    [...]
+    ...
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -103,52 +130,54 @@
         <version>1.0</version>
         <configuration>
           <startRevision>connection</startRevision>
-          <endRevision>connection</endRevision>                   
+          <endRevision>connection</endRevision>
         </configuration>
       </plugin>
-      [...]
+      ...
     </plugins
-    [...]
+    ...
   </build>
-  [...]
-+-----------+  
+  ...
+</project>
++-----------+
 
     Command :
-        
+
 +---------+
    mvn scm:diff
-+---------+  
-    
++---------+
+
     or you can specify the startRevision and endRevision in the command line
-    
+
 +---------+
    mvn -DstartRevision=<revision> -DendRevision=<revision> scm:diff
-+---------+  
-        
++---------+
+
 * edit - set the edit status of the file, locking the project sources if supported.
 
     Command :
-        
+
 +---------+
   mvn scm:edit
-+---------+  
-    
++---------+
+
 * status - displays the modified files in the project.
 
     Command :
-        
+
 +---------+
    mvn scm:status
-+---------+  
-    
++---------+
+
 * tag
 
     <<<pom.xml>>> configuration :
-    
+
 +-----------+
-  [...]
+<project>
+  ...
   <build>
-    [...]
+    ...
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -158,44 +187,45 @@
           <tag>tag name</tag>
         </configuration>
       </plugin>
-      [...]
+      ...
     </plugins
-    [...]
+    ...
   </build>
-  [...]
-+-----------+  
+  ...
+</project>
++-----------+
 
     Command :
-        
+
 +---------+
    mvn scm:tag
-+---------+    
++---------+
 
      or you can specify the tag name in the command line
-     
+
 +---------+
    mvn -Dtag="<tag name>" scm:tag
-+---------+    
-       
++---------+
+
 * unedit - unset the edit status of the project sources and unlocking it if supported.
 
     Command :
-        
+
 +---------+
    mvn scm:unedit
-+---------+    
-   
++---------+
+
 * validate - check if the scm urls configured in the <<<pom.xml>>> is valid.
 
     Command :
-       
+
 +---------+
    mvn scm:validate
-+---------+  
-  
++---------+
+
     or passing the scmConnection or/and the developerConnection in the command line
-    
+
 +---------+
    mvn -DscmConnection="<scm url>" -DscmDeveloperConnection="<scm url>" scm:validate
-+---------+  
-    
++---------+
+
diff --git a/maven-scm-plugin/src/site/apt/index.apt b/maven-scm-plugin/src/site/apt/index.apt
index 8962bbb..e21aee2 100644
--- a/maven-scm-plugin/src/site/apt/index.apt
+++ b/maven-scm-plugin/src/site/apt/index.apt
@@ -3,49 +3,83 @@
  ------
  Pete Marvin King
  ------
- 18 July 2006
+ 2008-08-13
  ------
- 
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
 Maven SCM Plugin
 
  The SCM Plugin offers vendor independent access to common scm commands by offering a set
  of command mappings for the configured scm. Each command is implemented as a goal.
- 
+
 * Goals Overview
 
- * {{{add-mojo.html}scm:add}} - command to add file 
- 
- * {{{bootstrap-mojo.html}scm:bootstrap}} - command to checkout and build a project 
+The SCM Plugin has 16 goals:
+
+ * {{{branch-mojo.html}scm:branch}} - branch the project
+
+ * {{{validate-mojo.html}scm:validate}} - validate the scm information in the pom
+
+ * {{{add-mojo.html}scm:add}} - command to add file
+
+ * {{{unedit-mojo.html}scm:unedit}} - command to stop editing the working copy
+
+ * {{{export-mojo.html}scm:export}} - command to get a fresh exported copy
+
+ * {{{bootstrap-mojo.html}scm:bootstrap}} - command to checkout and build a project
 
  * {{{changelog-mojo.html}scm:changelog}} - command to show the source code revisions
- 
+
+ * {{{list-mojo.html}scm:list}} - command for get the list of project files
+
  * {{{checkin-mojo.html}scm:checkin}} - command for commiting changes
- 
+
  * {{{checkout-mojo.html}scm:checkout}} - command for getting the source code
- 
- * {{{diff-mojo.html}scm:diff}} - command for showing the difference of the working copy with the remote one
- 
- * {{{edit-mojo.html}scm:edit}} - command for starting edit on the working copy
- 
+
  * {{{status-mojo.html}scm:status}} - command for showing the scm status of the working copy
- 
- * {{{tag-mojo.html}scm:tag}} - command for tagging a certain revision
- 
- * {{{unedit-mojo.html}scm:unedit}} - command to stop editing the working copy
- 
+
  * {{{update-mojo.html}scm:update}} - command for updating the working copy with the latest changes
- 
- * {{{validate-mojo.html}scm:validate}} - validates the scm information in the pom
- 
+
+ * {{{diff-mojo.html}scm:diff}} - command for showing the difference of the working copy with the remote one
+
+ * {{{update-subprojects-mojo.html}scm:update-subprojects}} - command for updating all projects in a multi project build
+
+ * {{{edit-mojo.html}scm:edit}} - command for starting edit on the working copy
+
+ * {{{tag-mojo.html}scm:tag}} - command for tagging a certain revision
+
+ []
+
 * Usage
 
-  Instructions on how to use the SCM Plugin can be found {{{usage.html}here}}. 
- 
+  Instructions on how to use the SCM Plugin can be found {{{usage.html}here}}.
+
 * Examples
 
   To provide you with better understanding on some usages of the Maven SCM Plugin,
   you can take a look into the following examples:
 
- {{{examples/bootstrapping-with-pom.html}Bootstrapping using a POM file}}
- 
- {{{examples/scm-advance-features.html}Other advanced scm commands}}
+ * {{{examples/bootstrapping-with-pom.html}Bootstrapping using a POM file}}
+
+ * {{{examples/scm-advance-features.html}Other advanced scm commands}}
+
+ []
diff --git a/maven-scm-plugin/src/site/apt/introduction.apt b/maven-scm-plugin/src/site/apt/introduction.apt
deleted file mode 100644
index e69de29..0000000
--- a/maven-scm-plugin/src/site/apt/introduction.apt
+++ /dev/null
diff --git a/maven-scm-plugin/src/site/apt/usage.apt b/maven-scm-plugin/src/site/apt/usage.apt
index f067fff..14494e7 100644
--- a/maven-scm-plugin/src/site/apt/usage.apt
+++ b/maven-scm-plugin/src/site/apt/usage.apt
@@ -3,28 +3,51 @@
  ------
  Pete Marvin King
  ------
- 18 July 2006
+ 2008-08-13
  ------
- 
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
 Usage
 
- The scm plugin maps a lot of commands to a variety of scm implementations. But there are only 2 frequently 
+ The scm plugin maps a lot of commands to a variety of scm implementations. But there are only 2 frequently
  used commands:
-  
-   * checkin - commit the changes to the remote repository ( scm server ).
-  
-   * update - updates the local working copy with the one from the remote repository ( scm server ).
-   
-Configuring SCM 
+
+  * checkin - commit the changes to the remote repository ( scm server ).
+
+  * update - updates the local working copy with the one from the remote repository ( scm server ).
+
+  []
+
+Configuring SCM
 
  Each scm has a different command line invocation to commit the modified sources. Using maven this process is
  simplified by providing a uniform way to do this by letting maven handle the command line translation to perform
  the scm task.
 
  To configure the scm support for maven you need the scm configuration in your <<<pom.xml>>>.
- 
+
 +---------+
-  [...]
+<project>
+  ...
   <packaging>jar</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>SCM Sample Project</name>
@@ -34,44 +57,46 @@
     <developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection>
     <url>http://somerepository.com/view.cvs</url>
   </scm>
-  [...]
+  ...
+</project>
 +---------+
- 
+
  Maven will use the information embedded in the scm configuration to determine the command mapping for the scm command.
  The scm configuration url is composed of different information that defines the mapping:
- 
+
 +------+
    scm:svn:http://somerepository.com/svn_repo/trunk
    <service name>:<scm implementation>:<repository url>
 +------+
- 
+
   Check the {{{http://maven.apache.org/scm/scms-overview.html}maven scm list}} for the list of supported SCMs.
-  
+
 Committing and updating changes through Maven
 
- Assuming that SCM has been configured in the <<<pom.xml>>> and the project directory is managed by a SCM, invoking 
+ Assuming that SCM has been configured in the <<<pom.xml>>> and the project directory is managed by a SCM, invoking
  the checkin goal in the scm will start the commit process for all configured sources in your <<<pom.xml>>>.
- 
+
  <<The files should be added beforehand by an external scm client.>>
- 
-+-----+ 
+
++-----+
   mvn -Dmessage="<commit_log_here>" scm:checkin
-+-----+      
- 
- for update 
- 
-+-----+ 
++-----+
+
+ for update
+
++-----+
   mvn scm:update
-+-----+      
++-----+
 
 Specifying the scm connection to use
 
  There two possible scm connections that can be used in the <<<pom.xml>>>, connection and developerConnection.
- 
+
  * connection configuration
- 
+
 +-----------+
-  [...]
+<project>
+  ...
   <build>
     [...]
     <plugins>
@@ -83,19 +108,21 @@
           <connectionType>connection</connectionType>
         </configuration>
       </plugin>
-      [...]
+      ...
     </plugins
-    [...]
+    ...
   </build>
-  [...]
-+-----------+  
+  ...
+</project>
++-----------+
 
  * developerConnection configuration
- 
+
 +-----------+
-  [...]
+<project>
+  ...
   <build>
-    [...]
+    ...
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -105,15 +132,16 @@
           <connectionType>developerConnection</connectionType>
         </configuration>
       </plugin>
-      [...]
+      ...
     </plugins
-    [...]
+    ...
   </build>
-  [...]
-+-----------+   
- 
- 
+  ...
+</project>
++-----------+
+
 Related Links
 
-   {{{http://docs.codehaus.org/display/SCM/SCM+Matrix}SCM Plugin Matrix}} 
- 
\ No newline at end of file
+  * {{{http://docs.codehaus.org/display/SCM/SCM+Matrix}SCM Plugin Matrix}}
+
+  []
diff --git a/maven-scm-plugin/src/site/site.xml b/maven-scm-plugin/src/site/site.xml
index 1f3984a..7886573 100644
--- a/maven-scm-plugin/src/site/site.xml
+++ b/maven-scm-plugin/src/site/site.xml
@@ -19,59 +19,23 @@
   -->
 
 <project>
-  <skin>
-    <groupId>org.apache.maven.skins</groupId>
-    <artifactId>maven-stylus-skin</artifactId>
-    <version>1.0.1</version>
-  </skin>
-  <bannerLeft>
-    <name>Maven</name>
-    <src>http://maven.apache.org/maven2/images/apache-maven-project-2.png</src>
-    <href>http://maven.apache.org/</href>
-  </bannerLeft>
-  <bannerRight>
-    <src>http://maven.apache.org/maven2/images/maven-logo-2.gif</src>
-  </bannerRight>
   <body>
-    <links>
-      <item name="Apache" href="http://www.apache.org/"/>
-      <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x"/>
-      <item name="Maven 2.x" href="http://maven.apache.org/"/>
-      <item name="SCM" href="http://maven.apache.org/scm"/>
-      <item name="Wagon" href="http://maven.apache.org/wagon"/>
-      <item name="JXR" href="http://maven.apache.org/jxr"/>
-      <item name="Doxia" href="http://maven.apache.org/doxia"/>
-    </links>
     <menu name="Overview">
       <item name="Introduction" href="index.html"/>
       <item name="Goals" href="plugin-info.html"/>
       <item name="Usage" href="usage.html"/>
       <!-- item name="FAQ" href="faq.html" / -->
+      <item name="Release Notes" href="jira-report.html"/>
     </menu>
+
     <menu name="Examples">
       <item name="Bootstrapping a Project Using a POM" href="examples/bootstrapping-with-pom.html"/>
       <item name="Other SCM Commands" href="examples/scm-advance-features.html"/>
     </menu>
+
     <menu name="Quick Links">
       <item name="Maven SCM Home" href="http://maven.apache.org/scm/"/>
-      <item name="Maven SCM Plugin" href="http://maven.apache.org/scm/plugins/index.html"/>
       <item name="SCM URL Format" href="http://maven.apache.org/scm/scm-url-format.html"/>
-      <item name="Supported SCMs" href="http://maven.apache.org/scm/scms-overview.html">
-        <item name="Bazaar" href="http://maven.apache.org/scm/bazaar.html"/>
-        <item name="Clearcase" href="http://maven.apache.org/scm/clearcase.html"/>
-        <item name="CM Synergy" href="http://maven.apache.org/scm/synergy.html"/>
-        <item name="CVS" href="http://maven.apache.org/scm/cvs.html"/>
-        <item name="Local" href="http://maven.apache.org/scm/local.html"/>
-        <item name="Perforce" href="http://maven.apache.org/scm/perforce.html"/>
-        <item name="StarTeam" href="http://maven.apache.org/scm/starteam.html"/>
-        <item name="Subversion" href="http://maven.apache.org/scm/subversion.html"/>
-        <item name="Visual Source Safe" href="http://maven.apache.org/scm/vss.html"/>
-      </item>
-      <item name="Guides" href="/guide/index.html" collapse="true">
-        <item name="How to use Maven-SCM in my application" href="http://maven.apache.org/scm/guide/usage.html"/>
-        <item name="How to write a new SCM provider" href="http://maven.apache.org/scm/guide/new_provider.html"/>
-      </item>
-      <item name="SCM providers Matrix" href="http://docs.codehaus.org/display/SCM/SCM+Matrix"/>
     </menu>
 
     <menu ref="reports"/>
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java
index 3fd563e..e4fb0bc 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -50,6 +51,13 @@
 
         FileUtils.forceDelete( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
+                + "' is not a system command. Ignored setUp." );
+            return;
+        }
+
         SvnScmTestUtils.initializeRepository( repository );
 
         CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
@@ -69,6 +77,13 @@
     public void testBranch()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         BranchMojo mojo =
             (BranchMojo) lookupMojo( "branch", getTestFile( "src/test/resources/mojos/branch/branch.xml" ) );
         mojo.setWorkingDirectory( checkoutDir );
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java
index e3f5b7c..a8f098d 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java
@@ -21,6 +21,7 @@
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -45,12 +46,26 @@
 
         FileUtils.forceDelete( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
+                + "' is not a system command. Ignored setUp." );
+            return;
+        }
+
         SvnScmTestUtils.initializeRepository( repository );
     }
 
     public void testChangeLog()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         ChangeLogMojo mojo = (ChangeLogMojo) lookupMojo( "changelog", getTestFile(
             "src/test/resources/mojos/changelog/changelog.xml" ) );
 
@@ -67,6 +82,13 @@
     public void testChangeLogWithParameters()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         ChangeLogMojo mojo = (ChangeLogMojo) lookupMojo( "changelog", getTestFile(
             "src/test/resources/mojos/changelog/changelogWithParameters.xml" ) );
 
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java
index 8473760..b09ee01 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java
@@ -21,6 +21,7 @@
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -68,6 +69,13 @@
     public void testSkipCheckoutWithConnectionUrl()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         SvnScmTestUtils.initializeRepository( repository );
 
         CheckoutMojo mojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java
index c1123f2..7e97f0a 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java
@@ -20,6 +20,8 @@
  */
 
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 
 import java.io.File;
 
@@ -33,6 +35,13 @@
     public void testStatusMojo()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         StatusMojo mojo =
             (StatusMojo) lookupMojo( "status", getTestFile( "src/test/resources/mojos/status/status.xml" ) );
 
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java
index 34c3801..80fdb9c 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -50,6 +51,13 @@
 
         FileUtils.forceDelete( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
+                + "' is not a system command. Ignored setUp." );
+            return;
+        }
+
         SvnScmTestUtils.initializeRepository( repository );
 
         CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
@@ -69,6 +77,13 @@
     public void testTag()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         TagMojo mojo = (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tag.xml" ) );
         mojo.setWorkingDirectory( checkoutDir );
 
@@ -79,6 +94,13 @@
 
         mojo.execute();
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         CheckoutMojo checkoutMojo =
             (CheckoutMojo) lookupMojo( "checkout", getTestFile( "src/test/resources/mojos/tag/checkout.xml" ) );
         checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
@@ -103,6 +125,13 @@
     public void testTagWithTimestamp()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         TagMojo mojo =
             (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tagWithTimestamp.xml" ) );
         mojo.setWorkingDirectory( checkoutDir );
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java
index cf4fce8..25ca583 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -52,6 +53,13 @@
     public void testSkipCheckoutWithConnectionUrl()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
+                + "' is not a system command. Ignored " + getName() + "." );
+            return;
+        }
+
         SvnScmTestUtils.initializeRepository( repository );
 
         CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
diff --git a/maven-scm-providers/maven-scm-provider-accurev/pom.xml b/maven-scm-providers/maven-scm-provider-accurev/pom.xml
index 90bebcb..7e82c17 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/pom.xml
+++ b/maven-scm-providers/maven-scm-provider-accurev/pom.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements.  See the NOTICE file
@@ -17,43 +18,54 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
+
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm-providers</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm-providers</artifactId>
     <version>1.1</version>
   </parent>
+
   <artifactId>maven-scm-provider-accurev</artifactId>
+
   <name>Maven SCM AccuRev Provider</name>
-  <version>1.1</version>
-  
+  <description>SCM Provider implementation for AccuRev (http://www.accurev.com/).</description>
+
+  <properties>
+    <test.accurev.username>test</test.accurev.username>
+    <test.accurev.password />
+    <test.accurev.host>localhost</test.accurev.host>
+    <test.accurev.port>5050</test.accurev.port>
+    <test.accurev.depot>TestDepot</test.accurev.depot>
+    <test.accurev.stream>TestStream</test.accurev.stream>
+  </properties>
+
   <dependencies>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-api</artifactId>
-      <version>1.1</version>
+    </dependency>
+
+    <!-- Test -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-test</artifactId>
-      <version>1.1</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
-  
+
   <build>
     <plugins>
       <plugin>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-maven-plugin</artifactId>
-        <version>1.3.4</version>
         <executions>
           <execution>
             <goals>
@@ -73,16 +85,7 @@
       </plugin>
     </plugins>
   </build>
-  
-  <properties>
-    <test.accurev.username>test</test.accurev.username>
-    <test.accurev.password />
-    <test.accurev.host>localhost</test.accurev.host>
-    <test.accurev.port>5050</test.accurev.port>
-    <test.accurev.depot>TestDepot</test.accurev.depot>
-    <test.accurev.stream>TestStream</test.accurev.stream>
-  </properties>   
-  
+
   <profiles>
     <profile>
       <id>TckTests</id>
@@ -131,6 +134,5 @@
         </plugins>
       </build>
     </profile>
-  </profiles>  
-    
+  </profiles>
 </project>
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProvider.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProvider.java
index ce35aa2..d8d7257 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProvider.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProvider.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import org.apache.maven.scm.CommandParameters;
@@ -38,284 +41,329 @@
 /**
  * Implementation of Accurev integration with Maven SCM
  *
+ * @version $Id$
  * @plexus.component role="org.apache.maven.scm.provider.ScmProvider" role-hint="accurev"
  */
-public class AccuRevScmProvider extends AbstractScmProvider {
-	private final String accurevExecutable;
+public class AccuRevScmProvider
+    extends AbstractScmProvider
+{
+    private final String accurevExecutable;
 
-	private AccuRevAddCommand addCommand;
-	private AccuRevLoginCommand loginCommand;
-	private BaseAccuRevCheckOutCommand[] checkOutCommands;
-	
-	private static final String CHECKOUT_METHOD_PARAM_NAME = "checkoutMethod";
-	private static final String CHECKOUT_METHOD_SYS_PROPERTY = "accurev.checkout.method";
+    private AccuRevAddCommand addCommand;
 
-	public AccuRevScmProvider() {
-		boolean isWindows = System.getProperty("os.name").toLowerCase()
-				.indexOf("windows") != -1;
-		this.accurevExecutable = resolveAccurevExecutable(isWindows);
-	}
+    private AccuRevLoginCommand loginCommand;
 
-	/**
-	 * @see AbstractScmProvider#getScmType()
-	 */
-	public String getScmType() {
-		return "accurev";
-	}
+    private BaseAccuRevCheckOutCommand[] checkOutCommands;
 
-	protected String getAccurevExecutable() {
-		return this.accurevExecutable;
-	}
+    private static final String CHECKOUT_METHOD_PARAM_NAME = "checkoutMethod";
 
-	/**
-	 * @see AbstractScmProvider#makeProviderScmRepository(String, char)
-	 */
-	public ScmProviderRepository makeProviderScmRepository(String scmSpecificUrl, char delimiter)
-			throws ScmRepositoryException {
-		AccuRevScmProviderRepository rep = new AccuRevScmProviderRepository();
+    private static final String CHECKOUT_METHOD_SYS_PROPERTY = "accurev.checkout.method";
 
-		int atSignIdx = scmSpecificUrl.indexOf('@');
-		if (atSignIdx != -1) {
-			//User, password, host and port are specified
-			String beforeAt = scmSpecificUrl.substring(0, atSignIdx);
-			String afterAt = scmSpecificUrl.substring(atSignIdx + 1);
+    public AccuRevScmProvider()
+    {
+        boolean isWindows = System.getProperty( "os.name" ).toLowerCase().indexOf( "windows" ) != -1;
+        this.accurevExecutable = resolveAccurevExecutable( isWindows );
+    }
 
-			LinkedList parts = splitString(beforeAt, delimiter, true);
-			if (parts.isEmpty()) {
-				throw new ScmRepositoryException("Username is required");
-			}
-			rep.setUser((String) parts.removeFirst());
-			if (!parts.isEmpty()) {
-				rep.setPassword((String) parts.removeFirst());
-			}
-			int hostEndIdx = afterAt.indexOf(delimiter);
-			if (hostEndIdx == -1) {
-				throw new ScmRepositoryException("Invalid SCM URL");
-			}
-			String host = afterAt.substring(0, hostEndIdx);
-			rep.setHost(host);
+    /** {@inheritDoc} */
+    public String getScmType()
+    {
+        return "accurev";
+    }
 
-			int idx = afterAt.indexOf(delimiter, hostEndIdx + 1);
-			if (idx == -1) {
-				throw new ScmRepositoryException("Invalid SCM URL");
-			}
-			String eitherPortOrNextToken = afterAt.substring(hostEndIdx + 1, idx);
-			try {
-				rep.setPort(Integer.parseInt(eitherPortOrNextToken));
-			} catch (NumberFormatException e) {
-				idx = hostEndIdx;
-			}
-			scmSpecificUrl = afterAt.substring(idx + 1);
-		}
-		int paramStartIdx = scmSpecificUrl.indexOf('?');
-		if (paramStartIdx != -1) {
-			String params = scmSpecificUrl.substring(paramStartIdx + 1);
-			scmSpecificUrl = scmSpecificUrl.substring(0, paramStartIdx);
-			processParams(params, rep);
+    protected String getAccurevExecutable()
+    {
+        return this.accurevExecutable;
+    }
 
-		}
-		processDepotStreamAndWorkspace(scmSpecificUrl, delimiter, rep);
+    /** {@inheritDoc} */
+    public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
+        throws ScmRepositoryException
+    {
+        AccuRevScmProviderRepository rep = new AccuRevScmProviderRepository();
 
-		String checkoutMethodParam = (String) rep.getParams().get(CHECKOUT_METHOD_PARAM_NAME);
-		if (StringUtils.isNotEmpty(checkoutMethodParam)) {
-			//Set checkout method from the SCM URL parameter
-			rep.setCheckoutMethod(checkoutMethodParam.trim());
-		}
-		if (rep.getCheckoutMethod() == null) {
-			//Get from system property or use "pop" by default
-			rep.setCheckoutMethod(System.getProperty(CHECKOUT_METHOD_SYS_PROPERTY, "pop"));
-		}
-		if (getLogger().isDebugEnabled()) {
-			getLogger().debug("Repository created: " + rep.toString());
-		}
-		return rep;
-	}
+        int atSignIdx = scmSpecificUrl.indexOf( '@' );
+        if ( atSignIdx != -1 )
+        {
+            //User, password, host and port are specified
+            String beforeAt = scmSpecificUrl.substring( 0, atSignIdx );
+            String afterAt = scmSpecificUrl.substring( atSignIdx + 1 );
 
-	private void processParams(String params, AccuRevScmProviderRepository rep) {
-		//Parse params
-		String[] paramKeyValuePairs = StringUtils.split(params, "&");
-		for (int i = 0; i < paramKeyValuePairs.length; i++) {
-			String keyValuePair = paramKeyValuePairs[i];
-			int delimiterIdx = keyValuePair.indexOf('=');
-			if (delimiterIdx == -1) {
-				getLogger().warn("Invalid parameter \"" + keyValuePair + "\" at position " + i);
-				continue;
-			}
-			String key = keyValuePair.substring(0, delimiterIdx);
-			String value = keyValuePair.substring(delimiterIdx + 1);
-			//Store parameter
-			rep.getParams().put(key, value);
-		}
-	}
+            LinkedList parts = splitString( beforeAt, delimiter, true );
+            if ( parts.isEmpty() )
+            {
+                throw new ScmRepositoryException( "Username is required" );
+            }
+            rep.setUser( (String) parts.removeFirst() );
+            if ( !parts.isEmpty() )
+            {
+                rep.setPassword( (String) parts.removeFirst() );
+            }
+            int hostEndIdx = afterAt.indexOf( delimiter );
+            if ( hostEndIdx == -1 )
+            {
+                throw new ScmRepositoryException( "Invalid SCM URL" );
+            }
+            String host = afterAt.substring( 0, hostEndIdx );
+            rep.setHost( host );
 
+            int idx = afterAt.indexOf( delimiter, hostEndIdx + 1 );
+            if ( idx == -1 )
+            {
+                throw new ScmRepositoryException( "Invalid SCM URL" );
+            }
+            String eitherPortOrNextToken = afterAt.substring( hostEndIdx + 1, idx );
+            try
+            {
+                rep.setPort( Integer.parseInt( eitherPortOrNextToken ) );
+            }
+            catch ( NumberFormatException e )
+            {
+                idx = hostEndIdx;
+            }
+            scmSpecificUrl = afterAt.substring( idx + 1 );
+        }
+        int paramStartIdx = scmSpecificUrl.indexOf( '?' );
+        if ( paramStartIdx != -1 )
+        {
+            String params = scmSpecificUrl.substring( paramStartIdx + 1 );
+            scmSpecificUrl = scmSpecificUrl.substring( 0, paramStartIdx );
+            processParams( params, rep );
 
-	/**
-	 * @see AbstractScmProvider#login(ScmProviderRepository, ScmFileSet, CommandParameters)
-	 */
-	protected LoginScmResult login(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)
-			throws ScmException {
-		if (null == this.loginCommand) { //Lazy command instantiation
-			this.loginCommand = new AccuRevLoginCommand(this.accurevExecutable);
-			this.loginCommand.setLogger(getLogger());
-		}
-		return (LoginScmResult) this.loginCommand.execute(repository, fileSet, parameters);
-	}
+        }
+        processDepotStreamAndWorkspace( scmSpecificUrl, delimiter, rep );
 
-	/**
-	 * @see AbstractScmProvider#checkout(ScmProviderRepository, ScmFileSet, CommandParameters)
-	 */
-	protected CheckOutScmResult checkout(ScmProviderRepository repository, ScmFileSet fileSet,
-										 CommandParameters parameters) throws ScmException {
+        String checkoutMethodParam = (String) rep.getParams().get( CHECKOUT_METHOD_PARAM_NAME );
+        if ( StringUtils.isNotEmpty( checkoutMethodParam ) )
+        {
+            //Set checkout method from the SCM URL parameter
+            rep.setCheckoutMethod( checkoutMethodParam.trim() );
+        }
+        if ( rep.getCheckoutMethod() == null )
+        {
+            //Get from system property or use "pop" by default
+            rep.setCheckoutMethod( System.getProperty( CHECKOUT_METHOD_SYS_PROPERTY, "pop" ) );
+        }
+        if ( getLogger().isDebugEnabled() )
+        {
+            getLogger().debug( "Repository created: " + rep.toString() );
+        }
+        return rep;
+    }
 
-		AccuRevScmProviderRepository rep = (AccuRevScmProviderRepository) repository;
-		getLogger().debug("accurev.checkout.method = " + rep.getCheckoutMethod());
-		BaseAccuRevCheckOutCommand[] checkOutCmds = getCheckoutCommands();
-		//Find check-out command that supports specified method
-		for (int i = 0; i < checkOutCmds.length; i++) {
-			BaseAccuRevCheckOutCommand checkOutCommand = checkOutCmds[i];
-			if (checkOutCommand.getMethodName().equalsIgnoreCase(rep.getCheckoutMethod())) {
-				return (CheckOutScmResult) checkOutCommand.execute(repository, fileSet, parameters);
-			}
-		}
-		throw new ScmRepositoryException("accurev.checkout.method=" + rep.getCheckoutMethod() + " is not supported");
-	}
+    private void processParams( String params, AccuRevScmProviderRepository rep )
+    {
+        //Parse params
+        String[] paramKeyValuePairs = StringUtils.split( params, "&" );
+        for ( int i = 0; i < paramKeyValuePairs.length; i++ )
+        {
+            String keyValuePair = paramKeyValuePairs[i];
+            int delimiterIdx = keyValuePair.indexOf( '=' );
+            if ( delimiterIdx == -1 )
+            {
+                getLogger().warn( "Invalid parameter \"" + keyValuePair + "\" at position " + i );
+                continue;
+            }
+            String key = keyValuePair.substring( 0, delimiterIdx );
+            String value = keyValuePair.substring( delimiterIdx + 1 );
+            //Store parameter
+            rep.getParams().put( key, value );
+        }
+    }
 
-	protected AddScmResult add(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters) throws ScmException {
-		//Lazy command creation
-		if (null == addCommand) {
-			addCommand = new AccuRevAddCommand(this.accurevExecutable);
-			addCommand.setLogger(getLogger());
-		}
-		return (AddScmResult) addCommand.execute(repository, fileSet, parameters);
-	}
+    /** {@inheritDoc} */
+    protected LoginScmResult login( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        if ( null == this.loginCommand )
+        { //Lazy command instantiation
+            this.loginCommand = new AccuRevLoginCommand( this.accurevExecutable );
+            this.loginCommand.setLogger( getLogger() );
+        }
+        return (LoginScmResult) this.loginCommand.execute( repository, fileSet, parameters );
+    }
 
-	private BaseAccuRevCheckOutCommand[] getCheckoutCommands() {
-		if (null == this.checkOutCommands) { //Lazy command instantiation
-			this.checkOutCommands = buildCheckOutCommands();
-		}
-		return this.checkOutCommands;
-	}
+    /** {@inheritDoc} */
+    protected CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet,
+                                          CommandParameters parameters )
+        throws ScmException
+    {
 
-	protected BaseAccuRevCheckOutCommand[] buildCheckOutCommands() {
-		BaseAccuRevCheckOutCommand[] commands = {
-				new AccuRevCheckOutUsingPopCommand(this.accurevExecutable),
-				new AccuRevCheckOutWorkspaceCommand(this.accurevExecutable)
-		};
-		for (int i = 0; i < commands.length; i++) {
-			BaseAccuRevCheckOutCommand command = commands[i];
-			command.setLogger(getLogger());
-		}
-		return commands;
-	}
+        AccuRevScmProviderRepository rep = (AccuRevScmProviderRepository) repository;
+        getLogger().debug( "accurev.checkout.method = " + rep.getCheckoutMethod() );
+        BaseAccuRevCheckOutCommand[] checkOutCmds = getCheckoutCommands();
+        //Find check-out command that supports specified method
+        for ( int i = 0; i < checkOutCmds.length; i++ )
+        {
+            BaseAccuRevCheckOutCommand checkOutCommand = checkOutCmds[i];
+            if ( checkOutCommand.getMethodName().equalsIgnoreCase( rep.getCheckoutMethod() ) )
+            {
+                return (CheckOutScmResult) checkOutCommand.execute( repository, fileSet, parameters );
+            }
+        }
+        throw new ScmRepositoryException( "accurev.checkout.method=" + rep.getCheckoutMethod() + " is not supported" );
+    }
 
-	/**
-	 * Append host (-H) parameter to the params list if the repository has this information
-	 *
-	 * @param repository AccuRevScmProviderRepository
-	 * @param params	 Parameters
-	 */
-	public static void appendHostToParamsIfNeeded(AccuRevScmProviderRepository repository, List params) {
-		if (repository.getHost() != null) {
-			params.add("-H");
-			params.add(repository.getHost() + ":" + String.valueOf(repository.getPort()));
-		}
-	}
+    /** {@inheritDoc} */
+    protected AddScmResult add( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        //Lazy command creation
+        if ( null == addCommand )
+        {
+            addCommand = new AccuRevAddCommand( this.accurevExecutable );
+            addCommand.setLogger( getLogger() );
+        }
+        return (AddScmResult) addCommand.execute( repository, fileSet, parameters );
+    }
 
-	/**
-	 * Resolves accurev executable
-	 *
-	 * @param windows Is OS is windows
-	 * @return AccuRev executable
-	 * @throws IllegalStateException If the executable cannot be resolved
-	 */
-	private static String resolveAccurevExecutable(boolean windows) {
-		String executable = "accurev";
-		//Append ".exe" suffix if the OS is Windows
-		if (windows) {
-			executable += ".exe";
-		}
-		//Grab exeucutable from system variable if specified
-		String accurevExecutable = System.getProperty("accurevExecutable");
-		if (accurevExecutable != null) {
-			executable = accurevExecutable;
-		}
-		return executable;
-	}
+    private BaseAccuRevCheckOutCommand[] getCheckoutCommands()
+    {
+        if ( null == this.checkOutCommands )
+        { //Lazy command instantiation
+            this.checkOutCommands = buildCheckOutCommands();
+        }
+        return this.checkOutCommands;
+    }
 
-	/**
-	 * Split the given string with separator char
-	 *
-	 * @param string		String to be splitted
-	 * @param separatorChar separator char
-	 * @param blankIsNull   If the parameter is true then if the substring is blank then it will be considered as null
-	 * @return Linked list which contains strings
-	 */
-	private static LinkedList splitString(String string, char separatorChar, boolean blankIsNull) {
-		LinkedList parts = new LinkedList();
-		int fromIdx = 0;
-		for (int idx; (idx = string.indexOf(separatorChar, fromIdx)) != -1; fromIdx = ++idx) {
-			parts.add(getSubstring(string, fromIdx, idx, blankIsNull));
-		}
-		//Add last token
-		parts.add(getSubstring(string, fromIdx, string.length(), blankIsNull));
-		return parts;
-	}
+    protected BaseAccuRevCheckOutCommand[] buildCheckOutCommands()
+    {
+        BaseAccuRevCheckOutCommand[] commands = {
+            new AccuRevCheckOutUsingPopCommand( this.accurevExecutable ),
+            new AccuRevCheckOutWorkspaceCommand( this.accurevExecutable ) };
+        for ( int i = 0; i < commands.length; i++ )
+        {
+            BaseAccuRevCheckOutCommand command = commands[i];
+            command.setLogger( getLogger() );
+        }
+        return commands;
+    }
 
-	/**
-	 * Get substring from string
-	 *
-	 * @param string	  source string
-	 * @param fromIdx	 from index
-	 * @param toIdx	   to index
-	 * @param blankIsNull If the parameter is true then if the substring is blank then null will be returned
-	 * @return Substring or the null if the substring is empty and the blankIsNull parameter is true
-	 * @see String#substring(int,int)
-	 * @see StringUtils#isBlank(String)
-	 */
-	private static String getSubstring(String string, int fromIdx, int toIdx, boolean blankIsNull) {
-		String substring = string.substring(fromIdx, toIdx);
-		return (blankIsNull && StringUtils.isEmpty(substring)) ? null : substring;
-	}
+    /**
+     * Append host (-H) parameter to the params list if the repository has this information
+     *
+     * @param repository AccuRevScmProviderRepository
+     * @param params     Parameters
+     */
+    public static void appendHostToParamsIfNeeded( AccuRevScmProviderRepository repository, List params )
+    {
+        if ( repository.getHost() != null )
+        {
+            params.add( "-H" );
+            params.add( repository.getHost() + ":" + String.valueOf( repository.getPort() ) );
+        }
+    }
 
-	/**
-	 * Process depot, stream and workspace from the given string
-	 *
-	 * @param depotStreamWorkspace String that contains depot, stream and workspace name information
-	 * @param delimeter			Delimeter char
-	 * @param repRef			   AccuRevScmProviderRepository reference where the information will be stored
-	 * @throws ScmRepositoryException If there was a validation error while processing the URL
-	 */
-	private void processDepotStreamAndWorkspace(final String depotStreamWorkspace,
-												final char delimeter,
-												final AccuRevScmProviderRepository repRef)
-			throws ScmRepositoryException {
-		LinkedList parts = splitString(depotStreamWorkspace, delimeter, true);
-		if (parts.size() < 2) {
-			throw new ScmRepositoryException("Invalid scmUrl. Depot and stream names are required");
-		}
-		//Set depot
-		String depot = (String) parts.removeFirst();
-		if (null == depot) throw new ScmRepositoryException("Depot name is missing");
-		repRef.setDepot(depot);
+    /**
+     * Resolves accurev executable
+     *
+     * @param windows Is OS is windows
+     * @return AccuRev executable
+     * @throws IllegalStateException If the executable cannot be resolved
+     */
+    private static String resolveAccurevExecutable( boolean windows )
+    {
+        String executable = "accurev";
+        //Append ".exe" suffix if the OS is Windows
+        if ( windows )
+        {
+            executable += ".exe";
+        }
+        //Grab exeucutable from system variable if specified
+        String accurevExecutable = System.getProperty( "accurevExecutable" );
+        if ( accurevExecutable != null )
+        {
+            executable = accurevExecutable;
+        }
+        return executable;
+    }
 
-		//Set stream
-		String streamName = (String) parts.removeFirst();
-		if (null == streamName) throw new ScmRepositoryException("Stream name is missing");
-		repRef.setStreamName(streamName);
+    /**
+     * Split the given string with separator char
+     *
+     * @param string        String to be splitted
+     * @param separatorChar separator char
+     * @param blankIsNull   If the parameter is true then if the substring is blank then it will be considered as null
+     * @return Linked list which contains strings
+     */
+    private static LinkedList splitString( String string, char separatorChar, boolean blankIsNull )
+    {
+        LinkedList parts = new LinkedList();
+        int fromIdx = 0;
+        for ( int idx; ( idx = string.indexOf( separatorChar, fromIdx ) ) != -1; fromIdx = ++idx )
+        {
+            parts.add( getSubstring( string, fromIdx, idx, blankIsNull ) );
+        }
+        //Add last token
+        parts.add( getSubstring( string, fromIdx, string.length(), blankIsNull ) );
+        return parts;
+    }
 
-		//Set workspace if specified
-		if (!parts.isEmpty()) {
-			repRef.setWorkspaceName((String) parts.removeFirst());
-		}
+    /**
+     * Get substring from string
+     *
+     * @param string      source string
+     * @param fromIdx     from index
+     * @param toIdx       to index
+     * @param blankIsNull If the parameter is true then if the substring is blank then null will be returned
+     * @return Substring or the null if the substring is empty and the blankIsNull parameter is true
+     * @see String#substring(int,int)
+     * @see StringUtils#isBlank(String)
+     */
+    private static String getSubstring( String string, int fromIdx, int toIdx, boolean blankIsNull )
+    {
+        String substring = string.substring( fromIdx, toIdx );
+        return ( blankIsNull && StringUtils.isEmpty( substring ) ) ? null : substring;
+    }
 
-		if (!parts.isEmpty()) {
-			throw new ScmRepositoryException("Invalid workspace assosiation path: " +
-					depotStreamWorkspace + ". Should be in format \"<depot>" + delimeter +
-					"<stream>" + delimeter + "<workspace>\"");
-		}
-		if (repRef.getWorkspaceName() == null) {
-			//TODO Use 'accurev show wspaces' to resolve the workspace name by the workspace path
-		}
-	}
+    /**
+     * Process depot, stream and workspace from the given string
+     *
+     * @param depotStreamWorkspace String that contains depot, stream and workspace name information
+     * @param delimeter            Delimeter char
+     * @param repRef               AccuRevScmProviderRepository reference where the information will be stored
+     * @throws ScmRepositoryException If there was a validation error while processing the URL
+     */
+    private void processDepotStreamAndWorkspace( final String depotStreamWorkspace, final char delimeter,
+                                                 final AccuRevScmProviderRepository repRef )
+        throws ScmRepositoryException
+    {
+        LinkedList parts = splitString( depotStreamWorkspace, delimeter, true );
+        if ( parts.size() < 2 )
+        {
+            throw new ScmRepositoryException( "Invalid scmUrl. Depot and stream names are required" );
+        }
+        //Set depot
+        String depot = (String) parts.removeFirst();
+        if ( null == depot )
+        {
+            throw new ScmRepositoryException( "Depot name is missing" );
+        }
+        repRef.setDepot( depot );
+
+        //Set stream
+        String streamName = (String) parts.removeFirst();
+        if ( null == streamName )
+        {
+            throw new ScmRepositoryException( "Stream name is missing" );
+        }
+        repRef.setStreamName( streamName );
+
+        //Set workspace if specified
+        if ( !parts.isEmpty() )
+        {
+            repRef.setWorkspaceName( (String) parts.removeFirst() );
+        }
+
+        if ( !parts.isEmpty() )
+        {
+            throw new ScmRepositoryException( "Invalid workspace assosiation path: " + depotStreamWorkspace
+                + ". Should be in format \"<depot>" + delimeter + "<stream>" + delimeter + "<workspace>\"" );
+        }
+        if ( repRef.getWorkspaceName() == null )
+        {
+            //TODO Use 'accurev show wspaces' to resolve the workspace name by the workspace path
+        }
+    }
 
 }
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepository.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepository.java
index d565be9..081d39b 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepository.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepository.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import org.apache.maven.scm.provider.ScmProviderRepository;
@@ -21,88 +24,104 @@
 import java.util.Map;
 import java.util.HashMap;
 
-public class AccuRevScmProviderRepository extends ScmProviderRepository {
-	public static final int DEFAULT_PORT = 5050;
+/**
+ * @version $Id$
+ */
+public class AccuRevScmProviderRepository
+    extends ScmProviderRepository
+{
+    public static final int DEFAULT_PORT = 5050;
 
-	private String depot;
+    private String depot;
 
-	private String streamName;
+    private String streamName;
 
-	private String workspaceName;
+    private String workspaceName;
 
-	private String host;
+    private String host;
 
-	private int port = DEFAULT_PORT;
+    private int port = DEFAULT_PORT;
 
-	private String checkoutMethod;
+    private String checkoutMethod;
 
-	private Map params = new HashMap();
+    private Map params = new HashMap();
 
-	public String getDepot() {
-		return depot;
-	}
+    public String getDepot()
+    {
+        return depot;
+    }
 
-	public void setDepot(String depot) {
-		this.depot = depot;
-	}
+    public void setDepot( String depot )
+    {
+        this.depot = depot;
+    }
 
-	public String getStreamName() {
-		return streamName;
-	}
+    public String getStreamName()
+    {
+        return streamName;
+    }
 
-	public void setStreamName(String streamName) {
-		this.streamName = streamName;
-	}
+    public void setStreamName( String streamName )
+    {
+        this.streamName = streamName;
+    }
 
-	public String getWorkspaceName() {
-		return workspaceName;
-	}
+    public String getWorkspaceName()
+    {
+        return workspaceName;
+    }
 
-	public void setWorkspaceName(String workspaceName) {
-		this.workspaceName = workspaceName;
-	}
+    public void setWorkspaceName( String workspaceName )
+    {
+        this.workspaceName = workspaceName;
+    }
 
-	public String getHost() {
-		return host;
-	}
+    public String getHost()
+    {
+        return host;
+    }
 
-	public void setHost(String host) {
-		this.host = host;
-	}
+    public void setHost( String host )
+    {
+        this.host = host;
+    }
 
-	public int getPort() {
-		return port;
-	}
+    public int getPort()
+    {
+        return port;
+    }
 
-	public void setPort(int port) {
-		this.port = port;
-	}
+    public void setPort( int port )
+    {
+        this.port = port;
+    }
 
-	public String getCheckoutMethod() {
-		return checkoutMethod;
-	}
+    public String getCheckoutMethod()
+    {
+        return checkoutMethod;
+    }
 
-	public void setCheckoutMethod(String checkoutMethod) {
-		this.checkoutMethod = checkoutMethod;
-	}
+    public void setCheckoutMethod( String checkoutMethod )
+    {
+        this.checkoutMethod = checkoutMethod;
+    }
 
-	public Map getParams() {
-		return params;
-	}
+    public Map getParams()
+    {
+        return params;
+    }
 
-	public void setParams(Map params) {
-		this.params = params;
-	}
+    public void setParams( Map params )
+    {
+        this.params = params;
+    }
 
-	public String toString() {
-		return new StringBuffer()
-				.append("host:").append(this.host)
-				.append(", port:").append(this.port)
-				.append(", depot:").append(this.depot)
-				.append(", streamName:").append(this.streamName)
-				.append(", workspaceName:").append(this.workspaceName)
-				.append(", checkoutMethod:").append(this.checkoutMethod)
-				.append(", params:").append(this.params)
-				.toString();
-	}
+    /** {@inheritDoc} */
+    public String toString()
+    {
+        return new StringBuffer().append( "host:" ).append( this.host ).append( ", port:" ).append( this.port )
+            .append( ", depot:" ).append( this.depot ).append( ", streamName:" ).append( this.streamName )
+            .append( ", workspaceName:" ).append( this.workspaceName ).append( ", checkoutMethod:" )
+            .append( this.checkoutMethod ).append( ", params:" ).append( this.params ).toString();
+    }
 }
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AccuRevAddCommand.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AccuRevAddCommand.java
index fad52d9..c573688 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AccuRevAddCommand.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AccuRevAddCommand.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev.commands.add;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import org.apache.maven.scm.command.add.AbstractAddCommand;
@@ -33,20 +36,24 @@
 import java.util.List;
 import java.io.File;
 
+/**
+ * @version $Id$
+ */
 public class AccuRevAddCommand extends AbstractAddCommand
 {
-    private final String _accurevExecutable;
+    private final String accurevExecutable;
 
-    public AccuRevAddCommand( String accurevExecutable )
+    public AccuRevAddCommand( String accurevExec )
     {
-        _accurevExecutable = accurevExecutable;
+        accurevExecutable = accurevExec;
     }
 
+    /** {@inheritDoc} */
     protected ScmResult executeAddCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                            String message, boolean binary ) throws ScmException
     {
         Commandline cl = new Commandline();
-        cl.setExecutable( _accurevExecutable );
+        cl.setExecutable( accurevExecutable );
         cl.setWorkingDirectory( fileSet.getBasedir().getPath() );
         cl.addArguments( new String[]{"add"} );
         ArrayList params = new ArrayList();
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AddCommandStreamConsumer.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AddCommandStreamConsumer.java
index d41fed5..e568cc7 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AddCommandStreamConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/add/AddCommandStreamConsumer.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev.commands.add;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import org.codehaus.plexus.util.cli.StreamConsumer;
@@ -22,12 +25,18 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-/** Stream consumer for collecting files that were added with the add command */
-class AddCommandStreamConsumer implements StreamConsumer
+/**
+ * Stream consumer for collecting files that were added with the add command
+ *
+ * @version $Id$
+ */
+class AddCommandStreamConsumer
+    implements StreamConsumer
 {
-    private final static Pattern pattern = Pattern.compile( "Added and kept element\\s*(.*)" );
+    private static final Pattern PATTERN = Pattern.compile( "Added and kept element\\s*(.*)" );
 
     private final StreamConsumer stdout;
+
     private final List filesAdded;
 
     /**
@@ -40,15 +49,16 @@
         this.filesAdded = filesAdded;
     }
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         stdout.consumeLine( line );
 
-        Matcher m = pattern.matcher( line );
+        Matcher m = PATTERN.matcher( line );
         if ( m.matches() )
         {
             String element = m.group( 1 );
             this.filesAdded.add( element );
         }
-	}
+    }
 }
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutUsingPopCommand.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutUsingPopCommand.java
index a08d180..6989618 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutUsingPopCommand.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutUsingPopCommand.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev.commands.checkout;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import org.apache.maven.scm.ScmException;
@@ -36,7 +39,12 @@
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 
-public class AccuRevCheckOutUsingPopCommand extends AbstractCheckOutCommand implements BaseAccuRevCheckOutCommand
+/**
+ * @version $Id$
+ */
+public class AccuRevCheckOutUsingPopCommand
+    extends AbstractCheckOutCommand
+    implements BaseAccuRevCheckOutCommand
 {
     private String accuRevExecutable;
 
@@ -45,13 +53,16 @@
         this.accuRevExecutable = executable;
     }
 
+    /** {@inheritDoc} */
     public String getMethodName()
     {
         return "pop";
     }
 
+    /** {@inheritDoc} */
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repository, ScmFileSet fileSet,
-                                                        ScmVersion version ) throws ScmException
+                                                        ScmVersion version )
+        throws ScmException
     {
         try
         {
@@ -87,13 +98,14 @@
             //Check if the update command successeed
             if ( exitCode != 0 )
             {
-                return new CheckOutScmResult( popCommandline.toString(),
-                    "The AccuRev command failed", stdout.getOutput(), false );
+                return new CheckOutScmResult( popCommandline.toString(), "The AccuRev command failed", stdout
+                    .getOutput(), false );
             }
             if ( getLogger().isInfoEnabled() )
             {
-                getLogger().info( "Checked out stream \"" + accurevRepository.getStreamName() +
-                    "\" contents to folder " + fileSet.getBasedir() );
+                getLogger().info(
+                                  "Checked out stream \"" + accurevRepository.getStreamName()
+                                      + "\" contents to folder " + fileSet.getBasedir() );
                 //TODO notify user that the checked files are not in workspace and no changes can be propagated to SCM
             }
             return new CheckOutScmResult( popCommandline.toString(), checkedFiles );
@@ -104,8 +116,8 @@
         }
     }
 
-    protected Commandline createPopStreamCommand( AccuRevScmProviderRepository repository,
-                                                  ScmFileSet fileSet, ScmVersion version )
+    protected Commandline createPopStreamCommand( AccuRevScmProviderRepository repository, ScmFileSet fileSet,
+                                                  ScmVersion version )
     {
         //TODO Implement support of fileSet, version if applyable
         Commandline commandline = new Commandline();
@@ -118,9 +130,9 @@
         //Set command parameters
         commandline.addArguments( (String[]) params.toArray( new String[params.size()] ) );
         //Append command parameters
-        commandline.addArguments( new String[]{
-            "-v", repository.getStreamName(), //name of the stream
-            "-L", fileSet.getBasedir().getAbsolutePath(), //into folder
+        commandline.addArguments( new String[] { "-v", repository.getStreamName(), //name of the stream
+            "-L",
+            fileSet.getBasedir().getAbsolutePath(), //into folder
             "-R" //get files recursively
         } );
         List fileSetArguments = new ArrayList();
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutWorkspaceCommand.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutWorkspaceCommand.java
index 5aae357..10f8cd5 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutWorkspaceCommand.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevCheckOutWorkspaceCommand.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev.commands.checkout;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import org.apache.maven.scm.ScmException;
@@ -34,7 +37,12 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-public class AccuRevCheckOutWorkspaceCommand extends AbstractCheckOutCommand implements BaseAccuRevCheckOutCommand
+/**
+ * @version $Id$
+ */
+public class AccuRevCheckOutWorkspaceCommand
+    extends AbstractCheckOutCommand
+    implements BaseAccuRevCheckOutCommand
 {
     private String accuRevExecutable;
 
@@ -43,13 +51,16 @@
         this.accuRevExecutable = executable;
     }
 
+    /** {@inheritDoc} */
     public String getMethodName()
     {
         return "mkws";
     }
 
+    /** {@inheritDoc} */
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repository, ScmFileSet fileSet,
-                                                        ScmVersion version ) throws ScmException
+                                                        ScmVersion version )
+        throws ScmException
     {
         try
         {
@@ -70,8 +81,8 @@
             if ( exitCode != 0 )
             {
                 return new CheckOutScmResult( makeCommandline.toString(),
-                    "The AccuRev command failed. Cannot create workspace: " +
-                        stdout.getOutput(), stdout.getOutput(), false );
+                                              "The AccuRev command failed. Cannot create workspace: "
+                                                  + stdout.getOutput(), stdout.getOutput(), false );
             }
             //Update the workspace
             Commandline updateCommandline = createUpdateWorkspaceCommand( accurevRepository, fileSet, version );
@@ -97,10 +108,11 @@
             if ( exitCode != 0 )
             {
                 return new CheckOutScmResult( updateCommandline.toString(),
-                    "The AccuRev command failed. Cannot update workspace", stdout.getOutput(), false );
+                                              "The AccuRev command failed. Cannot update workspace",
+                                              stdout.getOutput(), false );
             }
             return new CheckOutScmResult( makeCommandline.toString() + " & " + updateCommandline.toString(),
-                checkedFiles );
+                                          checkedFiles );
         }
         catch ( CommandLineException e )
         {
@@ -108,8 +120,8 @@
         }
     }
 
-    protected Commandline createUpdateWorkspaceCommand( AccuRevScmProviderRepository repository,
-                                                        ScmFileSet fileSet, ScmVersion version )
+    protected Commandline createUpdateWorkspaceCommand( AccuRevScmProviderRepository repository, ScmFileSet fileSet,
+                                                        ScmVersion version )
     {
         //TODO Implement support of fileSet, version if applyable
         Commandline commandline = new Commandline();
@@ -127,24 +139,26 @@
         return commandline;
     }
 
-    protected Commandline createMakeWorkspaceCommandLine( AccuRevScmProviderRepository repository,
-                                                          ScmFileSet fileSet, ScmVersion version )
+    protected Commandline createMakeWorkspaceCommandLine( AccuRevScmProviderRepository repository, ScmFileSet fileSet,
+                                                          ScmVersion version )
     {
         //TODO Implement support of fileSet, version if applyable
         Commandline cmd = new Commandline();
         cmd.setExecutable( this.accuRevExecutable );
         //Append command name
-        cmd.addArguments( new String[]{"mkws"} );
+        cmd.addArguments( new String[] { "mkws" } );
         //Append host param if needed
         List params = new ArrayList();
         AccuRevScmProvider.appendHostToParamsIfNeeded( repository, params );
         cmd.addArguments( (String[]) params.toArray( new String[params.size()] ) );
         //Append command arguments
-        cmd.addArguments( new String[]{
-            "-w", repository.getWorkspaceName(),
-            "-b", repository.getStreamName(),
-            "-l", fileSet.getBasedir().getAbsolutePath()
-        } );
+        cmd.addArguments( new String[] {
+            "-w",
+            repository.getWorkspaceName(),
+            "-b",
+            repository.getStreamName(),
+            "-l",
+            fileSet.getBasedir().getAbsolutePath() } );
         return cmd;
     }
 }
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/BaseAccuRevCheckOutCommand.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/BaseAccuRevCheckOutCommand.java
index 94dcd59..d070d66 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/BaseAccuRevCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/checkout/BaseAccuRevCheckOutCommand.java
@@ -1,23 +1,29 @@
 package org.apache.maven.scm.provider.accurev.commands.checkout;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import org.apache.maven.scm.command.Command;
 
+/**
+ * @version $Id$
+ */
 public interface BaseAccuRevCheckOutCommand extends Command
 {
     String getMethodName();
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/login/AccuRevLoginCommand.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/login/AccuRevLoginCommand.java
index 6559f1b..11abcb3 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/login/AccuRevLoginCommand.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/commands/login/AccuRevLoginCommand.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev.commands.login;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import java.util.ArrayList;
@@ -31,6 +34,9 @@
 import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.Commandline;
 
+/**
+ * @version $Id$
+ */
 public class AccuRevLoginCommand extends AbstractLoginCommand
 {
     private String executable;
@@ -40,6 +46,7 @@
         this.executable = executable;
     }
 
+    /** {@inheritDoc} */
     public LoginScmResult executeLoginCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                                CommandParameters parameters ) throws ScmException
     {
@@ -96,5 +103,5 @@
         //Set arguments to command line
         cl.addArguments( (String[]) params.toArray( new String[params.size()] ) );
         return cl;
-	}
+    }
 }
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/site/site.xml b/maven-scm-providers/maven-scm-provider-accurev/src/site/site.xml
new file mode 100644
index 0000000..2d850cd
--- /dev/null
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM Accurev Provider">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccurevScmProviderTest.java b/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccurevScmProviderTest.java
index 57b4c1a..48d5688 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccurevScmProviderTest.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccurevScmProviderTest.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import junit.framework.TestCase;
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevScmTckTestCase.java b/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevScmTckTestCase.java
index 44be02b..5a80ea9 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevScmTckTestCase.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/commands/checkout/AccuRevScmTckTestCase.java
@@ -1,19 +1,22 @@
 package org.apache.maven.scm.provider.accurev.commands.checkout;
 
 /*
- * Copyright 2008 AccuRev Inc.
+ * 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
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * 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.
+ * 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.
  */
 
 import java.io.File;
@@ -82,26 +85,26 @@
 
     public String getScmUrl( String workspaceName, String checkoutMethod ) throws Exception
     {
-    	// return StringUtils.join( new String[]{
-    	//            "scm", "accurev", username, password + "@" + host, String.valueOf( port ), depot, stream, workspaceName
-    	//        }, ':' ) + "?checkoutMethod=" + checkoutMethod;
-    	return new StringBuffer("scm:accurev:") //
-				.append(username) //
-				.append(':') //
-				.append(password) //
-				.append('@') //
-				.append(host) //
-				.append(':') //
-				.append(String.valueOf(port)) //
-				.append(':') //
-				.append(depot) //
-				.append(':') //
-				.append(stream) //
-				.append(':') //
-				.append(workspaceName) //
-				.append("?checkoutMethod=") //
-				.append(checkoutMethod) //
-				.toString();
+        // return StringUtils.join( new String[]{
+        //            "scm", "accurev", username, password + "@" + host, String.valueOf( port ), depot, stream, workspaceName
+        //        }, ':' ) + "?checkoutMethod=" + checkoutMethod;
+        return new StringBuffer("scm:accurev:") //
+                .append(username) //
+                .append(':') //
+                .append(password) //
+                .append('@') //
+                .append(host) //
+                .append(':') //
+                .append(String.valueOf(port)) //
+                .append(':') //
+                .append(depot) //
+                .append(':') //
+                .append(stream) //
+                .append(':') //
+                .append(workspaceName) //
+                .append("?checkoutMethod=") //
+                .append(checkoutMethod) //
+                .toString();
     }
 
     public String getScmUrl() throws Exception
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/pom.xml b/maven-scm-providers/maven-scm-provider-bazaar/pom.xml
index edb809d..208262c 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/pom.xml
+++ b/maven-scm-providers/maven-scm-provider-bazaar/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,21 +20,26 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm-providers</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm-providers</artifactId>
     <version>1.1</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
+
   <artifactId>maven-scm-provider-bazaar</artifactId>
+
   <name>Maven SCM Bazaar Provider</name>
-  <version>1.1</version>
+  <description>SCM Provider implementation for Bazaar (http://bazaar-vcs.org/).</description>
+
   <dependencies>
     <dependency>
       <groupId>regexp</groupId>
       <artifactId>regexp</artifactId>
     </dependency>
   </dependencies>
+
   <build>
     <plugins>
       <plugin>
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarConfig.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarConfig.java
index 6dff1bf..4efcbe4 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarConfig.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarConfig.java
@@ -22,7 +22,7 @@
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.log.DefaultLog;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.apache.maven.scm.provider.bazaar.command.BazaarConsumer;
 import org.codehaus.plexus.util.cli.Commandline;
 
@@ -33,7 +33,8 @@
 /**
  * Check bazaar installation.
  *
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarConfig
 {
@@ -127,7 +128,7 @@
     public static VersionConsumer getBazaarVersion( File workingDir )
         throws ScmException
     {
-        String[] versionCmd = new String[]{BazaarCommand.VERSION};
+        String[] versionCmd = new String[]{BazaarConstants.VERSION};
         VersionConsumer consumer = new VersionConsumer( BAZAAR_VERSION_TAG );
         Commandline cmd = BazaarUtils.buildCmd( workingDir, versionCmd );
 
@@ -180,25 +181,25 @@
         extends BazaarConsumer
     {
 
-        private static Pattern VERSION_PATTERN = Pattern.compile( "[\\d]+.?[\\d]*" );
+        private static final Pattern VERSION_PATTERN = Pattern.compile( "[\\d]+.?[\\d]*" );
 
-        private final String version_tag;
+        private final String versionTag;
 
         private String versionStr = "NA";
 
         private float version = -1;
 
-        VersionConsumer( String version_tag )
+        VersionConsumer( String aVersionTag )
         {
             super( new DefaultLog() );
-            this.version_tag = version_tag;
+            this.versionTag = aVersionTag;
         }
 
         public void doConsume( ScmFileStatus status, String line )
         {
-            if ( line.startsWith( version_tag ) )
+            if ( line.startsWith( versionTag ) )
             {
-                versionStr = line.substring( version_tag.length() );
+                versionStr = line.substring( versionTag.length() );
             }
         }
 
@@ -266,11 +267,11 @@
     {
         boolean bzrOk = bazaarVersion.isVersionOk( BAZAAR_REQ );
         boolean pyOk = pythonVersion.isVersionOk( PYTHON_REQ );
-        return "\n  Your Bazaar installation seems to be " + getInstalledStr() + "\n    Python version: " +
-            pythonVersion.getVersion() + ( pyOk ? " (OK)" : " (May be INVALID)" ) + "\n    Bazaar version: " +
-            bazaarVersion.getVersion() + ( bzrOk ? " (OK)" : " (May be INVALID)" ) + "\n    Paramiko installed: " +
-            paramiko + " (For remote access eg. sftp) " + "\n    cCrypt installed: " + cCrypt +
-            " (For remote access eg. sftp) " + "\n    cElementTree installed: " + cElementTree + " (Not mandatory) " +
-            "\n";
+        return "\n  Your Bazaar installation seems to be " + getInstalledStr() + "\n    Python version: "
+            + pythonVersion.getVersion() + ( pyOk ? " (OK)" : " (May be INVALID)" ) + "\n    Bazaar version: "
+            + bazaarVersion.getVersion() + ( bzrOk ? " (OK)" : " (May be INVALID)" ) + "\n    Paramiko installed: "
+            + paramiko + " (For remote access eg. sftp) " + "\n    cCrypt installed: " + cCrypt
+            + " (For remote access eg. sftp) " + "\n    cElementTree installed: " + cElementTree + " (Not mandatory) "
+            + "\n";
     }
 }
\ No newline at end of file
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarScmProvider.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarScmProvider.java
index 44ba428..aae4ee3 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarScmProvider.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarScmProvider.java
@@ -33,7 +33,7 @@
 import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.apache.maven.scm.provider.bazaar.command.add.BazaarAddCommand;
 import org.apache.maven.scm.provider.bazaar.command.changelog.BazaarChangeLogCommand;
 import org.apache.maven.scm.provider.bazaar.command.checkin.BazaarCheckInCommand;
@@ -53,26 +53,27 @@
 /**
  * Bazaar NG http://bazaar-vcs.org/ is a decentralized revision control system. <br>
  *
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  * @plexus.component role="org.apache.maven.scm.provider.ScmProvider" role-hint="bazaar"
  */
 public class BazaarScmProvider
     extends AbstractScmProvider
 {
+    /** {@inheritDoc} */
     public String getScmSpecificFilename()
     {
         return ".bzr";
     }
 
+    /** {@inheritDoc} */
     public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
         throws ScmRepositoryException
     {
         return new BazaarScmProviderRepository( scmSpecificUrl );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#makeProviderScmRepository(java.io.File)
-     */
+    /** {@inheritDoc} */
     public ScmProviderRepository makeProviderScmRepository( File path )
         throws ScmRepositoryException, UnknownRepositoryStructure
     {
@@ -91,12 +92,13 @@
         return makeProviderScmRepository( "file:///" + path.getAbsolutePath(), ':' );
     }
 
+    /** {@inheritDoc} */
     public List validateScmUrl( String scmSpecificUrl, char delimiter )
     {
 
         List errorMessages = new ArrayList();
 
-        String[] checkCmd = new String[]{BazaarCommand.CHECK, scmSpecificUrl};
+        String[] checkCmd = new String[]{BazaarConstants.CHECK, scmSpecificUrl};
         ScmResult result;
         try
         {
@@ -116,14 +118,13 @@
         return errorMessages;
     }
 
+    /** {@inheritDoc} */
     public String getScmType()
     {
         return "bazaar";
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public AddScmResult add( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -134,9 +135,7 @@
         return (AddScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet,
                                          CommandParameters parameters )
         throws ScmException
@@ -148,9 +147,7 @@
         return (ChangeLogScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
@@ -162,9 +159,7 @@
         return (CheckInScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet,
                                        CommandParameters parameters )
         throws ScmException
@@ -176,9 +171,7 @@
         return (CheckOutScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#diff(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public DiffScmResult diff( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -189,9 +182,7 @@
         return (DiffScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#remove(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public RemoveScmResult remove( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -202,9 +193,7 @@
         return (RemoveScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#status(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public StatusScmResult status( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -215,9 +204,7 @@
         return (StatusScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarUtils.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarUtils.java
index 7efe148..8535085 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarUtils.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/BazaarUtils.java
@@ -25,7 +25,7 @@
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.log.DefaultLog;
 import org.apache.maven.scm.log.ScmLogger;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.apache.maven.scm.provider.bazaar.command.BazaarConsumer;
 import org.codehaus.plexus.util.cli.CommandLineException;
 import org.codehaus.plexus.util.cli.CommandLineUtils;
@@ -40,31 +40,32 @@
 /**
  * Common code for executing bazaar commands.
  *
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarUtils
 {
     /**
      * Map between command and its valid exit codes
      */
-    private static final Map exitCodeMap = new HashMap();
+    private static final Map EXITCODEMAP = new HashMap();
 
     /**
      * Default exit codes for entries not in exitCodeMap
      */
-    private static final List defaultExitCodes = new ArrayList();
+    private static final List DEFAULTEEXITCODES = new ArrayList();
 
     /** Setup exit codes*/
     static
     {
-        defaultExitCodes.add( new Integer( 0 ) );
+        DEFAULTEEXITCODES.add( new Integer( 0 ) );
 
         //Diff is different
         List diffExitCodes = new ArrayList();
         diffExitCodes.add( new Integer( 0 ) ); //No difference
         diffExitCodes.add( new Integer( 1 ) ); //Conflicts in merge-like or changes in diff-like
         diffExitCodes.add( new Integer( 2 ) ); //Unrepresentable diff changes
-        exitCodeMap.put( BazaarCommand.DIFF_CMD, diffExitCodes );
+        EXITCODEMAP.put( BazaarConstants.DIFF_CMD, diffExitCodes );
     }
 
     public static ScmResult execute( BazaarConsumer consumer, ScmLogger logger, File workingDir, String[] cmdAndArgs )
@@ -80,10 +81,10 @@
             int exitCode = executeCmd( consumer, cmd );
 
             //Return result
-            List exitCodes = defaultExitCodes;
-            if ( exitCodeMap.containsKey( cmdAndArgs[0] ) )
+            List exitCodes = DEFAULTEEXITCODES;
+            if ( EXITCODEMAP.containsKey( cmdAndArgs[0] ) )
             {
-                exitCodes = (List) exitCodeMap.get( cmdAndArgs[0] );
+                exitCodes = (List) EXITCODEMAP.get( cmdAndArgs[0] );
             }
             boolean success = exitCodes.contains( new Integer( exitCode ) );
 
@@ -92,9 +93,9 @@
             if ( !success )
             {
                 BazaarConfig config = new BazaarConfig( workingDir );
-                providerMsg = "\nEXECUTION FAILED" + "\n  Execution of cmd : " + cmdAndArgs[0] +
-                    " failed with exit code: " + exitCode + "." + "\n  Working directory was: " + "\n    " +
-                    workingDir.getAbsolutePath() + config.toString( workingDir ) + "\n";
+                providerMsg = "\nEXECUTION FAILED" + "\n  Execution of cmd : " + cmdAndArgs[0]
+                    + " failed with exit code: " + exitCode + "." + "\n  Working directory was: " + "\n    "
+                    + workingDir.getAbsolutePath() + config.toString( workingDir ) + "\n";
                 logger.error( providerMsg );
             }
 
@@ -102,8 +103,9 @@
         }
         catch ( ScmException se )
         {
-            String msg = "EXECUTION FAILED" +
-                "\n  Execution failed before invoking the Bazaar command. Last exception:" + "\n    " + se.getMessage();
+            String msg =
+                "EXECUTION FAILED\n  Execution failed before invoking the Bazaar command. Last exception:"
+                    + "\n    " + se.getMessage();
 
             //Add nested cause if any
             if ( se.getCause() != null )
@@ -121,7 +123,7 @@
         throws ScmException
     {
         Commandline cmd = new Commandline();
-        cmd.setExecutable( BazaarCommand.EXEC );
+        cmd.setExecutable( BazaarConstants.EXEC );
         cmd.setWorkingDirectory( workingDir.getAbsolutePath() );
         cmd.addArguments( cmdAndArgs );
 
@@ -181,7 +183,7 @@
         throws ScmException
     {
 
-        String[] revCmd = new String[]{BazaarCommand.REVNO_CMD};
+        String[] revCmd = new String[]{BazaarConstants.REVNO_CMD};
         BazaarRevNoConsumer consumer = new BazaarRevNoConsumer( logger );
         BazaarUtils.execute( consumer, logger, workingDir, revCmd );
 
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConstants.java
similarity index 94%
rename from maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarCommand.java
rename to maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConstants.java
index 93c7699..4d2184b 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConstants.java
@@ -19,7 +19,6 @@
  * under the License.
  */
 
-import org.apache.maven.scm.command.Command;
 
 /**
  * Available/Used bazaar commands.
@@ -27,10 +26,10 @@
  * These commands does not necessarily correspond to the SCM API.
  * Eg. "check in" is translated to be "commit" and "push".
  *
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
-public interface BazaarCommand
-    extends Command
+public class BazaarConstants
 {
     /**
      * Executable for Bazaar
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
index 096acc1..f8e6885 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
@@ -35,7 +35,8 @@
  * More specific: log line each line if debug is enabled, get file status
  * and detect warnings from bazaar
  *
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarConsumer
     extends AbstractConsumer
@@ -44,12 +45,12 @@
     /**
      * A list of known keywords from bazaar
      */
-    private static final Map identifiers = new HashMap();
+    private static final Map IDENTIFIERS = new HashMap();
 
     /**
      * A list of known message prefixes from bazaar
      */
-    private static final Map messages = new HashMap();
+    private static final Map MESSAGES = new HashMap();
 
     /**
      * Number of lines to keep from Std.Err
@@ -65,14 +66,14 @@
 
     static
     {
-        identifiers.put( "added", ScmFileStatus.ADDED );
-        identifiers.put( "unknown", ScmFileStatus.UNKNOWN );
-        identifiers.put( "modified", ScmFileStatus.MODIFIED );
-        identifiers.put( "removed", ScmFileStatus.DELETED );
-        identifiers.put( "renamed", ScmFileStatus.MODIFIED );
-        messages.put( "bzr: WARNING:", "WARNING" );
-        messages.put( "bzr: ERROR:", "ERROR" );
-        messages.put( "'bzr' ", "ERROR" ); // bzr isn't found in windows path
+        IDENTIFIERS.put( "added", ScmFileStatus.ADDED );
+        IDENTIFIERS.put( "unknown", ScmFileStatus.UNKNOWN );
+        IDENTIFIERS.put( "modified", ScmFileStatus.MODIFIED );
+        IDENTIFIERS.put( "removed", ScmFileStatus.DELETED );
+        IDENTIFIERS.put( "renamed", ScmFileStatus.MODIFIED );
+        MESSAGES.put( "bzr: WARNING:", "WARNING" );
+        MESSAGES.put( "bzr: ERROR:", "ERROR" );
+        MESSAGES.put( "'bzr' ", "ERROR" ); // bzr isn't found in windows path
     }
 
     public BazaarConsumer( ScmLogger logger )
@@ -85,6 +86,7 @@
         //override this
     }
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         getLogger().debug( line );
@@ -109,7 +111,7 @@
             trimmedLine = trimmedLine.trim(); //one or more spaces
         }
 
-        ScmFileStatus status = statusStr != null ? ( (ScmFileStatus) identifiers.get( statusStr.intern() ) ) : null;
+        ScmFileStatus status = statusStr != null ? ( (ScmFileStatus) IDENTIFIERS.get( statusStr.intern() ) ) : null;
         doConsume( status, trimmedLine );
     }
 
@@ -131,7 +133,7 @@
 
     private static String processInputForKnownIdentifiers( String line )
     {
-        for ( Iterator it = identifiers.keySet().iterator(); it.hasNext(); )
+        for ( Iterator it = IDENTIFIERS.keySet().iterator(); it.hasNext(); )
         {
             String id = (String) it.next();
             if ( line.startsWith( id ) )
@@ -144,7 +146,7 @@
 
     private boolean processInputForKnownMessages( String line )
     {
-        for ( Iterator it = messages.keySet().iterator(); it.hasNext(); )
+        for ( Iterator it = MESSAGES.keySet().iterator(); it.hasNext(); )
         {
             String prefix = (String) it.next();
             if ( line.startsWith( prefix ) )
@@ -155,7 +157,7 @@
                     stderr.remove( 0 ); //Rotate list
                 }
                 String message = line.substring( prefix.length() );
-                if ( messages.get( prefix ).equals( "WARNING" ) )
+                if ( MESSAGES.get( prefix ).equals( "WARNING" ) )
                 {
                     getLogger().warn( message );
                 }
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddCommand.java
index 8b70026..50ab053 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddCommand.java
@@ -19,31 +19,34 @@
  * under the License.
  */
 
+import java.io.File;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.add.AbstractAddCommand;
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
-
-import java.io.File;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 
 /**
  * Add no recursive.
  *
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarAddCommand
     extends AbstractAddCommand
-    implements BazaarCommand
+    implements Command
 {
+    /** {@inheritDoc} */
     protected ScmResult executeAddCommand( ScmProviderRepository repo, ScmFileSet fileSet, String message,
                                            boolean binary )
         throws ScmException
     {
-        String[] addCmd = new String[]{ADD_CMD, NO_RECURSE_OPTION};
+        String[] addCmd = new String[]{BazaarConstants.ADD_CMD, BazaarConstants.NO_RECURSE_OPTION};
         addCmd = BazaarUtils.expandCommandLine( addCmd, fileSet );
 
         File workingDir = fileSet.getBasedir();
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java
index c84b931..d7d8788 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java
@@ -29,7 +29,8 @@
 import java.util.List;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarAddConsumer
     extends BazaarConsumer
@@ -44,6 +45,7 @@
         this.workingDir = workingDir;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
     {
         if ( status != null && status == ScmFileStatus.ADDED )
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java
index 132a863..05ede68 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java
@@ -24,12 +24,13 @@
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.ScmBranch;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.changelog.AbstractChangeLogCommand;
 import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
 import org.apache.maven.scm.command.changelog.ChangeLogSet;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -37,18 +38,20 @@
 import java.util.List;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarChangeLogCommand
     extends AbstractChangeLogCommand
-    implements BazaarCommand
+    implements Command
 {
+    /** {@inheritDoc} */
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                           Date startDate, Date endDate, ScmBranch branch,
                                                           String datePattern )
         throws ScmException
     {
-        String[] cmd = new String[]{LOG_CMD, VERBOSE_OPTION};
+        String[] cmd = new String[]{BazaarConstants.LOG_CMD, BazaarConstants.VERBOSE_OPTION};
         BazaarChangeLogConsumer consumer = new BazaarChangeLogConsumer( getLogger(), datePattern );
         ScmResult result = BazaarUtils.execute( consumer, getLogger(), fileSet.getBasedir(), cmd );
 
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
index c00cf46..5c44d1d 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
@@ -30,7 +30,8 @@
 import java.util.List;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarChangeLogConsumer
     extends BazaarConsumer
@@ -83,6 +84,7 @@
         return logEntries;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String line )
     {
         String tmpLine = line;
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkin/BazaarCheckInCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkin/BazaarCheckInCommand.java
index aa72fe1..8fe09b6 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkin/BazaarCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkin/BazaarCheckInCommand.java
@@ -30,7 +30,7 @@
 import org.apache.maven.scm.command.status.StatusScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.apache.maven.scm.provider.bazaar.command.BazaarConsumer;
 import org.apache.maven.scm.provider.bazaar.command.status.BazaarStatusCommand;
 import org.apache.maven.scm.provider.bazaar.repository.BazaarScmProviderRepository;
@@ -42,12 +42,13 @@
 import java.util.List;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarCheckInCommand
     extends AbstractCheckInCommand
 {
-
+    /** {@inheritDoc} */
     protected CheckInScmResult executeCheckInCommand( ScmProviderRepository repo, ScmFileSet fileSet, String message,
                                                       ScmVersion version )
         throws ScmException
@@ -70,8 +71,8 @@
             for ( Iterator it = statusFiles.iterator(); it.hasNext(); )
             {
                 ScmFile file = (ScmFile) it.next();
-                if ( file.getStatus() == ScmFileStatus.ADDED || file.getStatus() == ScmFileStatus.DELETED ||
-                    file.getStatus() == ScmFileStatus.MODIFIED )
+                if ( file.getStatus() == ScmFileStatus.ADDED || file.getStatus() == ScmFileStatus.DELETED
+                    || file.getStatus() == ScmFileStatus.MODIFIED )
                 {
                     commitedFiles.add( new ScmFile( file.getPath(), ScmFileStatus.CHECKED_IN ) );
                 }
@@ -87,7 +88,7 @@
         }
 
         // Commit to local branch
-        String[] commitCmd = new String[]{BazaarCommand.COMMIT_CMD, BazaarCommand.MESSAGE_OPTION, message};
+        String[] commitCmd = new String[]{BazaarConstants.COMMIT_CMD, BazaarConstants.MESSAGE_OPTION, message};
         commitCmd = BazaarUtils.expandCommandLine( commitCmd, fileSet );
         ScmResult result =
             BazaarUtils.execute( new BazaarConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), commitCmd );
@@ -96,9 +97,9 @@
         BazaarScmProviderRepository repository = (BazaarScmProviderRepository) repo;
         if ( !repository.getURI().equals( fileSet.getBasedir().getAbsolutePath() ) )
         {
-            String[] push_cmd = new String[]{BazaarCommand.PUSH_CMD, repository.getURI()};
+            String[] pushCmd = new String[] { BazaarConstants.PUSH_CMD, repository.getURI() };
             result =
-                BazaarUtils.execute( new BazaarConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), push_cmd );
+                BazaarUtils.execute( new BazaarConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), pushCmd );
         }
 
         return new CheckInScmResult( commitedFiles, result );
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutCommand.java
index 1de72fc..7951b6a 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutCommand.java
@@ -23,11 +23,12 @@
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.checkout.AbstractCheckOutCommand;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.apache.maven.scm.provider.bazaar.command.BazaarConsumer;
 import org.apache.maven.scm.provider.bazaar.repository.BazaarScmProviderRepository;
 import org.codehaus.plexus.util.FileUtils;
@@ -37,13 +38,14 @@
 import java.io.IOException;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarCheckOutCommand
     extends AbstractCheckOutCommand
-    implements BazaarCommand
+    implements Command
 {
-
+    /** {@inheritDoc} */
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                         ScmVersion version )
         throws ScmException
@@ -69,14 +71,14 @@
         }
 
         // Do the actual checkout
-        String[] checkout_cmd = new String[]{BRANCH_CMD, url, checkoutDir.getAbsolutePath()};
-        BazaarConsumer checkout_consumer = new BazaarConsumer( getLogger() );
-        BazaarUtils.execute( checkout_consumer, getLogger(), checkoutDir.getParentFile(), checkout_cmd );
+        String[] checkoutCmd = new String[]{BazaarConstants.BRANCH_CMD, url, checkoutDir.getAbsolutePath()};
+        BazaarConsumer checkoutConsumer = new BazaarConsumer( getLogger() );
+        BazaarUtils.execute( checkoutConsumer, getLogger(), checkoutDir.getParentFile(), checkoutCmd );
 
         // Do inventory to find list of checkedout files
-        String[] inventory_cmd = new String[]{INVENTORY_CMD};
+        String[] inventoryCmd = new String[]{BazaarConstants.INVENTORY_CMD};
         BazaarCheckOutConsumer consumer = new BazaarCheckOutConsumer( getLogger(), checkoutDir );
-        ScmResult result = BazaarUtils.execute( consumer, getLogger(), checkoutDir, inventory_cmd );
+        ScmResult result = BazaarUtils.execute( consumer, getLogger(), checkoutDir, inventoryCmd );
 
         return new CheckOutScmResult( consumer.getCheckedOutFiles(), result );
     }
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutConsumer.java
index bf4fad5..ef2d28d 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/checkout/BazaarCheckOutConsumer.java
@@ -29,7 +29,8 @@
 import java.util.List;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarCheckOutConsumer
     extends BazaarConsumer
@@ -45,6 +46,7 @@
         this.workingDirectory = workingDirectory;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String line )
     {
         File file = new File( workingDirectory, line );
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommand.java
index f214f42..ce23a66 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffCommand.java
@@ -23,21 +23,23 @@
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.diff.AbstractDiffCommand;
 import org.apache.maven.scm.command.diff.DiffScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarDiffCommand
     extends AbstractDiffCommand
-    implements BazaarCommand
+    implements Command
 {
-
+    /** {@inheritDoc} */
     protected DiffScmResult executeDiffCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                 ScmVersion startRevision, ScmVersion endRevision )
         throws ScmException
@@ -51,11 +53,11 @@
             {
                 revArg += ".." + endRevision.getName();
             }
-            diffCmd = new String[]{DIFF_CMD, REVISION_OPTION, revArg};
+            diffCmd = new String[]{BazaarConstants.DIFF_CMD, BazaarConstants.REVISION_OPTION, revArg};
         }
         else
         {
-            diffCmd = new String[]{DIFF_CMD};
+            diffCmd = new String[]{BazaarConstants.DIFF_CMD};
         }
 
         diffCmd = BazaarUtils.expandCommandLine( diffCmd, fileSet );
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffConsumer.java
index 40bc458..1c82149 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/diff/BazaarDiffConsumer.java
@@ -31,31 +31,32 @@
 import java.util.Map;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarDiffConsumer
     extends BazaarConsumer
 {
 
-    private final static String MODIFIED_FILE_TOKEN = "=== modified file ";
+    private static final String MODIFIED_FILE_TOKEN = "=== modified file ";
 
-    private final static String ADDED_FILE_TOKEN = "=== added file ";
+    private static final String ADDED_FILE_TOKEN = "=== added file ";
 
-    private final static String DELETED_FILE_TOKEN = "=== deleted file ";
+    private static final String DELETED_FILE_TOKEN = "=== deleted file ";
 
-    private final static String NO_NEWLINE_TOKEN = "\\ No newline at end of file";
+    private static final String NO_NEWLINE_TOKEN = "\\ No newline at end of file";
 
-    private final static String FROM_FILE_TOKEN = "---";
+    private static final String FROM_FILE_TOKEN = "---";
 
-    private final static String TO_FILE_TOKEN = "+++";
+    private static final String TO_FILE_TOKEN = "+++";
 
-    private final static String ADDED_LINE_TOKEN = "+";
+    private static final String ADDED_LINE_TOKEN = "+";
 
-    private final static String REMOVED_LINE_TOKEN = "-";
+    private static final String REMOVED_LINE_TOKEN = "-";
 
-    private final static String UNCHANGED_LINE_TOKEN = " ";
+    private static final String UNCHANGED_LINE_TOKEN = " ";
 
-    private final static String RANGE_TOKEN = "@@";
+    private static final String RANGE_TOKEN = "@@";
 
     private ScmLogger logger;
 
@@ -78,6 +79,7 @@
         this.workingDirectory = workingDirectory;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String line )
     {
         String tmpLine = new String( line );
@@ -109,9 +111,9 @@
         {
             // ignore (to avoid conflicts with add and remove tokens)
         }
-        else if ( line.startsWith( ADDED_LINE_TOKEN ) || line.startsWith( REMOVED_LINE_TOKEN ) ||
-            line.startsWith( UNCHANGED_LINE_TOKEN ) || line.startsWith( RANGE_TOKEN ) ||
-            line.startsWith( NO_NEWLINE_TOKEN ) )
+        else if ( line.startsWith( ADDED_LINE_TOKEN ) || line.startsWith( REMOVED_LINE_TOKEN )
+            || line.startsWith( UNCHANGED_LINE_TOKEN ) || line.startsWith( RANGE_TOKEN )
+            || line.startsWith( NO_NEWLINE_TOKEN ) )
         {
             currentDifference.append( line ).append( "\n" );
         }
@@ -148,6 +150,8 @@
     }
 
     /**
+     * @param status
+     * @param tmpLine
      * @return True if tmpLine was a valid file and thus added to the changeset
      */
     private boolean addChangedFile( ScmFileStatus status, String tmpLine )
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveCommand.java
index b80dbc5..85d4496 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveCommand.java
@@ -19,29 +19,32 @@
  * under the License.
  */
 
+import java.io.File;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.remove.AbstractRemoveCommand;
 import org.apache.maven.scm.command.remove.RemoveScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
-
-import java.io.File;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarRemoveCommand
     extends AbstractRemoveCommand
-    implements BazaarCommand
+    implements Command
 {
+    /** {@inheritDoc} */
     protected ScmResult executeRemoveCommand( ScmProviderRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
 
-        String[] command = new String[]{REMOVE_CMD};
+        String[] command = new String[] { BazaarConstants.REMOVE_CMD };
         BazaarUtils.expandCommandLine( command, fileSet );
 
         File workingDir = fileSet.getBasedir();
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveConsumer.java
index 4ccc4f5..db74f1b 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/remove/BazaarRemoveConsumer.java
@@ -29,7 +29,8 @@
 import java.util.List;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarRemoveConsumer
     extends BazaarConsumer
@@ -44,6 +45,7 @@
         this.workingDir = workingDir;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
     {
         if ( status != null && status == ScmFileStatus.DELETED )
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusCommand.java
index 8fe99aa..fbb0089 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusCommand.java
@@ -22,20 +22,22 @@
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.status.AbstractStatusCommand;
 import org.apache.maven.scm.command.status.StatusScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 
 import java.io.File;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarStatusCommand
     extends AbstractStatusCommand
-    implements BazaarCommand
+    implements Command
 {
 
     public BazaarStatusCommand()
@@ -43,13 +45,14 @@
         super();
     }
 
+    /** {@inheritDoc} */
     public StatusScmResult executeStatusCommand( ScmProviderRepository repo, ScmFileSet fileSet )
         throws ScmException
     {
 
         File workingDir = fileSet.getBasedir();
         BazaarStatusConsumer consumer = new BazaarStatusConsumer( getLogger(), workingDir );
-        String[] statusCmd = new String[]{STATUS_CMD};
+        String[] statusCmd = new String[] { BazaarConstants.STATUS_CMD };
         ScmResult result = BazaarUtils.execute( consumer, getLogger(), workingDir, statusCmd );
 
         return new StatusScmResult( consumer.getStatus(), result );
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java
index 37e2896..9307876 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java
@@ -29,7 +29,8 @@
 import java.util.List;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 class BazaarStatusConsumer
     extends BazaarConsumer
@@ -49,6 +50,7 @@
         this.workingDir = workingDir;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
     {
         if ( status != null )
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/update/BazaarUpdateCommand.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/update/BazaarUpdateCommand.java
index 4e531fd..47779c9 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/update/BazaarUpdateCommand.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/update/BazaarUpdateCommand.java
@@ -25,13 +25,14 @@
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.changelog.ChangeLogCommand;
 import org.apache.maven.scm.command.update.AbstractUpdateCommand;
 import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.command.update.UpdateScmResultWithRevision;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.bazaar.BazaarUtils;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.apache.maven.scm.provider.bazaar.command.BazaarConsumer;
 import org.apache.maven.scm.provider.bazaar.command.changelog.BazaarChangeLogCommand;
 import org.apache.maven.scm.provider.bazaar.command.diff.BazaarDiffConsumer;
@@ -44,13 +45,15 @@
 import java.util.Map;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarUpdateCommand
     extends AbstractUpdateCommand
-    implements BazaarCommand
+    implements Command
 {
 
+    /** {@inheritDoc} */
     protected UpdateScmResult executeUpdateCommand( ScmProviderRepository repo, ScmFileSet fileSet, ScmVersion version )
         throws ScmException
     {
@@ -63,9 +66,9 @@
         File workingDir = fileSet.getBasedir();
 
         // Update branch
-        String[] update_cmd = new String[]{BazaarCommand.PULL_CMD};
-        ScmResult updateResult =
-            BazaarUtils.execute( new BazaarConsumer( getLogger() ), getLogger(), workingDir, update_cmd );
+        String[] updateCmd = new String[] { BazaarConstants.PULL_CMD };
+        ScmResult updateResult = BazaarUtils.execute( new BazaarConsumer( getLogger() ), getLogger(), workingDir,
+                                                      updateCmd );
 
         if ( !updateResult.isSuccess() )
         {
@@ -75,7 +78,8 @@
         // Find changes from last revision
         int currentRevision = BazaarUtils.getCurrentRevisionNumber( getLogger(), workingDir );
         int previousRevision = currentRevision - 1;
-        String[] diffCmd = new String[]{DIFF_CMD, REVISION_OPTION, "" + previousRevision};
+        String[] diffCmd =
+            new String[] { BazaarConstants.DIFF_CMD, BazaarConstants.REVISION_OPTION, "" + previousRevision };
         BazaarDiffConsumer diffConsumer = new BazaarDiffConsumer( getLogger(), workingDir );
         ScmResult diffResult = BazaarUtils.execute( diffConsumer, getLogger(), workingDir, diffCmd );
 
@@ -101,6 +105,7 @@
         return new UpdateScmResultWithRevision( updatedFiles, changes, String.valueOf( currentRevision ), diffResult );
     }
 
+    /** {@inheritDoc} */
     protected ChangeLogCommand getChangeLogCommand()
     {
         BazaarChangeLogCommand command = new BazaarChangeLogCommand();
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java
index d92b3f6..e99adae 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java
@@ -25,7 +25,8 @@
 import java.io.File;
 
 /**
- * @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
+ * @author <a href="mailto:torbjorn@smorgrav.org">Torbj�rn Eikli Sm�rgrav</a>
+ * @version $Id$
  */
 public class BazaarScmProviderRepository
     extends ScmProviderRepositoryWithHost
@@ -66,8 +67,8 @@
         }
         else
         {
-            return protocol + ( needsAuthentication() ? addUser() + addPassword() + addAt() : "" ) + addHost() +
-                addPort() + addPath();
+            return protocol + ( needsAuthentication() ? addUser() + addPassword() + addAt() : "" ) + addHost()
+                + addPort() + addPath();
         }
     }
 
@@ -106,8 +107,8 @@
 
         if ( msg != null )
         {
-            msg = "Something could be wrong about the repository URL: " + orgUrl + "\nReason: " + msg +
-                "\nCheck http://maven.apache.org/scm for usage and hints.";
+            msg = "Something could be wrong about the repository URL: " + orgUrl + "\nReason: " + msg
+                + "\nCheck http://maven.apache.org/scm for usage and hints.";
         }
         return msg;
     }
@@ -166,35 +167,29 @@
     {
         if ( !FILE.equals( protocol ) )
         {
-            String[] split = url.split( ":" );
-            if ( split.length == 2 )
+            int indexSlash = url.indexOf( "/" );
+
+            String hostPort = url;
+            if ( indexSlash > 0 )
             {
-                setHost( split[0] );
-                url = url.substring( split[0].length() + 1 );
-                split = split[1].split( "/" );
-                if ( split.length == 2 )
-                {
-                    url = url.substring( split[0].length() );
-                    try
-                    {
-                        setPort( Integer.valueOf( split[0] ).intValue() );
-                    }
-                    catch ( NumberFormatException e )
-                    {
-                        //Ignore - error will manifest itself later.
-                    }
-                }
+                hostPort = url.substring( 0, indexSlash );
+            }
+
+            int indexColon = hostPort.indexOf( ":" );
+            if ( indexColon > 0 )
+            {
+                setHost( hostPort.substring( 0, indexColon ) );
+                url = StringUtils.replace( url, getHost(), "" );
+                setPort( Integer.parseInt( hostPort.substring( indexColon + 1 ) ) );
+                url = StringUtils.replace( url, ":" + getPort(), "" );
             }
             else
             {
-                split = url.split( "/" );
-                if ( split.length > 1 )
-                {
-                    url = url.substring( split[0].length() );
-                    setHost( split[0] );
-                }
+                setHost( hostPort );
+                url = StringUtils.replace( url, getHost(), "" );
             }
         }
+
         return url;
     }
 
@@ -281,9 +276,11 @@
         return SFTP.equals( protocol ) || FTP.equals( protocol ) || HTTPS.equals( protocol ) || AFTP.equals( protocol );
     }
 
+    /** {@inheritDoc} */
     public String toString()
     {
-        return "Bazaar Repository Interpreted from: " + orgUrl + ":\nProtocol: " + protocol + "\nHost: " + getHost() +
-            "\nPort: " + getPort() + "\nUsername: " + getUser() + "\nPassword: " + getPassword() + "\nPath: " + path;
+        return "Bazaar Repository Interpreted from: " + orgUrl + ":\nProtocol: " + protocol + "\nHost: "
+            + getHost() + "\nPort: " + getPort() + "\nUsername: " + getUser() + "\nPassword: " + getPassword()
+            + "\nPath: " + path;
     }
 }
\ No newline at end of file
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/site/site.xml b/maven-scm-providers/maven-scm-provider-bazaar/src/site/site.xml
new file mode 100644
index 0000000..123d5e1
--- /dev/null
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM Bazzar Provider">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarRepoUtils.java b/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarRepoUtils.java
index d527db8..bf5f56b 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarRepoUtils.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/BazaarRepoUtils.java
@@ -21,7 +21,7 @@
 
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
-import org.apache.maven.scm.provider.bazaar.command.BazaarCommand;
+import org.apache.maven.scm.provider.bazaar.command.BazaarConstants;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -78,7 +78,7 @@
         }
 
         // Init repository
-        String[] init_cmd = new String[]{BazaarCommand.INIT_CMD};
+        String[] init_cmd = new String[]{BazaarConstants.INIT_CMD};
         BazaarUtils.execute( WORKING_DIR, init_cmd );
 
         // Create and add files to repository
@@ -102,7 +102,7 @@
         }
 
         //Add to repository
-        String[] add_cmd = new String[] { BazaarCommand.ADD_CMD };
+        String[] add_cmd = new String[] { BazaarConstants.ADD_CMD };
         ScmFileSet filesToAdd = new ScmFileSet( new File( "" ), files );
         add_cmd = BazaarUtils.expandCommandLine( add_cmd, filesToAdd );
         ScmResult result = BazaarUtils.execute( WORKING_DIR, add_cmd );
@@ -114,7 +114,7 @@
         }
 
         // Commit the initial repository
-        String[] commit_cmd = new String[]{BazaarCommand.COMMIT_CMD, BazaarCommand.MESSAGE_OPTION, COMMIT_MESSAGE};
+        String[] commit_cmd = new String[]{BazaarConstants.COMMIT_CMD, BazaarConstants.MESSAGE_OPTION, COMMIT_MESSAGE};
         result = BazaarUtils.execute( WORKING_DIR, commit_cmd );
         if ( !result.isSuccess() )
         {
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java b/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java
index 0397f08..632ef6d 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java
@@ -115,4 +115,24 @@
         assertEquals( "http://www.myhost.com:81/dev/maven", repo.getURI() );
         assertNull( repo.validateURI() );
     }
+
+    /**
+     * @throws Exception
+     */
+    public void testParseHostAndPort()
+        throws Exception
+    {
+        String url = "http://localhost:8000/";
+        BazaarScmProviderRepository repo = new BazaarScmProviderRepository( url );
+        System.out.println(repo.getURI());
+        assertEquals( repo.getURI(), url );
+
+        url = "http://localhost/";
+        repo = new BazaarScmProviderRepository( url );
+        assertEquals( repo.getURI(), url );
+
+        url = "http://www.myhost.com:81/dev/maven";
+        repo = new BazaarScmProviderRepository( url );
+        assertEquals( repo.getURI(), url );
+    }
 }
\ No newline at end of file
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/LICENSE.txt b/maven-scm-providers/maven-scm-provider-clearcase/LICENSE.txt
deleted file mode 100644
index d645695..0000000
--- a/maven-scm-providers/maven-scm-provider-clearcase/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/NOTICE.txt b/maven-scm-providers/maven-scm-provider-clearcase/NOTICE.txt
deleted file mode 100644
index 3f59805..0000000
--- a/maven-scm-providers/maven-scm-provider-clearcase/NOTICE.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/checkstyle-license.txt b/maven-scm-providers/maven-scm-provider-clearcase/checkstyle-license.txt
deleted file mode 100644
index e526f7d..0000000
--- a/maven-scm-providers/maven-scm-provider-clearcase/checkstyle-license.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-/* ====================================================================
- * Copyright 2003-2004 The Apache Software Foundation.
- *
- * 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.
- * ====================================================================
- */
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/pom.xml b/maven-scm-providers/maven-scm-provider-clearcase/pom.xml
index d5ff651..b106f62 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/pom.xml
+++ b/maven-scm-providers/maven-scm-provider-clearcase/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,15 +20,19 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm-providers</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm-providers</artifactId>
     <version>1.1</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
+
   <artifactId>maven-scm-provider-clearcase</artifactId>
+
   <name>Maven SCM Clearcase Provider</name>
-  <version>1.1</version>
+  <description>SCM Provider implementation for Clearcase (http://www-306.ibm.com/software/awdtools/clearcase/).</description>
+
   <build>
     <plugins>
       <plugin>
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java
index bf35533..c5f7a10 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java
@@ -62,27 +62,29 @@
      */
     private Settings settings;
 
+    /** {@inheritDoc} */
     public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
         throws ScmRepositoryException
     {
         settings = ClearCaseUtil.getSettings();
-        return new ClearCaseScmProviderRepository( getLogger(), scmSpecificUrl, settings);
+        return new ClearCaseScmProviderRepository( getLogger(), scmSpecificUrl, settings );
     }
 
+    /** {@inheritDoc} */
     public String getScmType()
     {
         return "clearcase";
     }
 
+    /** {@inheritDoc} */
     public boolean requiresEditMode()
     {
         return true;
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
-    public ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    public ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet,
+                                         CommandParameters parameters )
         throws ScmException
     {
         ClearCaseChangeLogCommand command = new ClearCaseChangeLogCommand();
@@ -92,10 +94,9 @@
         return (ChangeLogScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
-    public CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    public CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet,
+                                     CommandParameters parameters )
         throws ScmException
     {
         ClearCaseCheckInCommand command = new ClearCaseCheckInCommand();
@@ -105,21 +106,22 @@
         return (CheckInScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
-    public CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    public CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet,
+                                       CommandParameters parameters )
         throws ScmException
     {
         ClearCaseCheckOutCommand command = new ClearCaseCheckOutCommand();
 
         command.setLogger( getLogger() );
-        command.setSettings(settings);
+        command.setSettings( settings );
 
         return (CheckOutScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    protected UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    protected UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet,
+                                      CommandParameters parameters )
         throws ScmException
     {
         ClearCaseUpdateCommand command = new ClearCaseUpdateCommand();
@@ -129,9 +131,7 @@
         return (UpdateScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#tag(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public TagScmResult tag( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -142,7 +142,9 @@
         return (TagScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    protected StatusScmResult status( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    protected StatusScmResult status( ScmProviderRepository repository, ScmFileSet fileSet,
+                                      CommandParameters parameters )
         throws ScmException
     {
         ClearCaseStatusCommand command = new ClearCaseStatusCommand();
@@ -152,7 +154,9 @@
         return (StatusScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    protected EditScmResult edit( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    protected EditScmResult edit( ScmProviderRepository repository, ScmFileSet fileSet,
+                                  CommandParameters parameters )
         throws ScmException
     {
         ClearCaseEditCommand command = new ClearCaseEditCommand();
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddCommand.java
index acc12f1..4c75141 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddCommand.java
@@ -35,11 +35,13 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseAddCommand
     extends AbstractAddCommand
     implements ClearCaseCommand
 {
+    /** {@inheritDoc} */
     protected ScmResult executeAddCommand( ScmProviderRepository scmProviderRepository, ScmFileSet scmFileSet,
                                            String string, boolean b )
         throws ScmException
@@ -58,8 +60,10 @@
             // First we need to 'check out' the current directory
             Commandline checkoutCurrentDirCommandLine =
                 ClearCaseEditCommand.createCheckoutCurrentDirCommandLine( scmFileSet );
-            getLogger().debug( "Executing: " + checkoutCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath() +
-                ">>" + checkoutCurrentDirCommandLine.toString() );
+            getLogger().debug(
+                               "Executing: "
+                                   + checkoutCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath() + ">>"
+                                   + checkoutCurrentDirCommandLine.toString() );
             exitCode = CommandLineUtils.executeCommandLine( checkoutCurrentDirCommandLine,
                                                             new CommandLineUtils.StringStreamConsumer(), stderr );
 
@@ -74,9 +78,10 @@
                     // Then we check in the current directory again.
                     Commandline checkinCurrentDirCommandLine =
                         ClearCaseEditCommand.createCheckinCurrentDirCommandLine( scmFileSet );
-                    getLogger().debug( "Executing: " +
-                        checkinCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath() + ">>" +
-                        checkinCurrentDirCommandLine.toString() );
+                    getLogger().debug(
+                                       "Executing: "
+                                           + checkinCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath()
+                                           + ">>" + checkinCurrentDirCommandLine.toString() );
                     exitCode = CommandLineUtils.executeCommandLine( checkinCurrentDirCommandLine,
                                                                     new CommandLineUtils.StringStreamConsumer(),
                                                                     stderr );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddConsumer.java
index 01ee4cc..7fe7199 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/add/ClearCaseAddConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseAddConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java
index ae43162..20a5634 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java
@@ -54,6 +54,7 @@
     // AbstractChangeLogCommand Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                                           Date startDate, Date endDate, ScmBranch branch,
                                                           String datePattern )
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java
index 59be8cb..d71007d 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java
@@ -108,6 +108,7 @@
     // StreamConsumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         switch ( getStatus() )
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInCommand.java
index 63e6326..5e203a9 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInCommand.java
@@ -34,6 +34,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseCheckInCommand
     extends AbstractCheckInCommand
@@ -43,6 +44,7 @@
     // AbstractCheckOutCommand Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     protected CheckInScmResult executeCheckInCommand( ScmProviderRepository scmProviderRepository, ScmFileSet fileSet,
                                                       String message, ScmVersion version )
         throws ScmException
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInConsumer.java
index 2d8cd06..451f936 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkin/ClearCaseCheckInConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @version $Id$
  */
 public class ClearCaseCheckInConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutCommand.java
index 96c5298..6ef4824 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutCommand.java
@@ -43,6 +43,7 @@
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
  * @author <a href="mailto:frederic.mura@laposte.net">Frederic Mura</a>
+ * @version $Id$
  */
 public class ClearCaseCheckOutCommand
     extends AbstractCheckOutCommand
@@ -54,6 +55,7 @@
     // AbstractCheckOutCommand Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                                         ScmVersion version )
         throws ScmException
@@ -80,14 +82,16 @@
 
         try
         {
-            // Since clearcase only wants to checkout to a non-existent directory, first delete the working dir if it already exists
+            // Since clearcase only wants to checkout to a non-existent directory, first delete the working dir
+            // if it already exists
             FileUtils.deleteDirectory( workingDirectory );
             // First create the view
             String viewName = getUniqueViewName( repo, workingDirectory.getAbsolutePath() );
-            String streamIdentifier = getStreamIdentifier(repo.getStreamName(), repo.getVobName());
+            String streamIdentifier = getStreamIdentifier( repo.getStreamName(), repo.getVobName() );
             cl = createCreateViewCommandLine( workingDirectory, viewName, streamIdentifier );
             getLogger().info( "Executing: " + cl.getWorkingDirectory().getAbsolutePath() + ">>" + cl.toString() );
-            exitCode = CommandLineUtils.executeCommandLine( cl, new CommandLineUtils.StringStreamConsumer(), stderr );
+            exitCode =
+                CommandLineUtils.executeCommandLine( cl, new CommandLineUtils.StringStreamConsumer(), stderr );
 
             if ( exitCode == 0 )
             {
@@ -121,7 +125,7 @@
                     // When checking out from ClearCase, the directory structure of the
                     // SCM system is repeated within the checkout directory. E.g. if you check out the
                     // project "my/project" to "/some/dir", the project sources are actually checked out
-                    // to "my/project/some/dir".  
+                    // to "my/project/some/dir".
                     projectDirectory = repo.getLoadDirectory();
                     // strip off leading / to make the path relative
                     if ( projectDirectory.startsWith( "/" ) )
@@ -165,6 +169,7 @@
      * @param configSpecContents The contents for the file
      * @param viewName           The name of the view; used to determine an appropriate file
      *                           name
+     * @throws IOException
      */
     protected File writeTemporaryConfigSpecFile( String configSpecContents, String viewName )
         throws IOException
@@ -241,7 +246,7 @@
 //        return command;
 //    }
 
-    protected Commandline createCreateViewCommandLine( File workingDirectory, String viewName, String streamIdentifier)
+    protected Commandline createCreateViewCommandLine( File workingDirectory, String viewName, String streamIdentifier )
         throws IOException
     {
         Commandline command = new Commandline();
@@ -255,13 +260,13 @@
         command.createArgument().setValue( "-snapshot" );
         command.createArgument().setValue( "-tag" );
         command.createArgument().setValue( viewName );
-        
-        if (isClearCaseUCM())
+
+        if ( isClearCaseUCM() )
         {
             command.createArgument().setValue( "-stream" );
             command.createArgument().setValue( streamIdentifier );
         }
-        
+
         if ( !isClearCaseLT() )
         {
             if ( useVWS() )
@@ -282,10 +287,12 @@
      * @param vobName
      * @return the formatted stream identifier if the two parameter are not null
      */
-    protected String getStreamIdentifier(String streamName, String vobName)
+    protected String getStreamIdentifier( String streamName, String vobName )
     {
-        if (streamName == null || vobName == null)
+        if ( streamName == null || vobName == null )
+        {
             return null;
+        }
         return "stream:" + streamName + "@" + vobName;
     }
 
@@ -350,14 +357,14 @@
 
     protected boolean isClearCaseLT()
     {
-        return ClearCaseScmProviderRepository.CLEARCASE_LT.equals(settings.getClearcaseType());
+        return ClearCaseScmProviderRepository.CLEARCASE_LT.equals( settings.getClearcaseType() );
     }
 
     protected boolean isClearCaseUCM()
     {
-        return ClearCaseScmProviderRepository.CLEARCASE_UCM.equals(settings.getClearcaseType());
+        return ClearCaseScmProviderRepository.CLEARCASE_UCM.equals( settings.getClearcaseType() );
     }
-    
+
     /**
      * @return the value of the setting property 'useVWS'
      */
@@ -388,7 +395,8 @@
         return username;
     }
 
-    public void setSettings(Settings settings) {
+    public void setSettings( Settings settings )
+    {
         this.settings = settings;
     }
 }
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutConsumer.java
index 27c3841..3319886 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/checkout/ClearCaseCheckOutConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseCheckOutConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         checkedOutFiles.add( new ScmFile( line, ScmFileStatus.CHECKED_OUT ) );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditCommand.java
index 0c3666e..b3d2d5c 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditCommand.java
@@ -35,11 +35,13 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseEditCommand
     extends AbstractEditCommand
     implements ClearCaseCommand
 {
+    /** {@inheritDoc} */
     protected ScmResult executeEditCommand( ScmProviderRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditConsumer.java
index c5284e6..fbdb417 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/edit/ClearCaseEditConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseEditConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveCommand.java
index d1b515d..363160d 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveCommand.java
@@ -36,11 +36,13 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseRemoveCommand
     extends AbstractRemoveCommand
     implements ClearCaseCommand
 {
+    /** {@inheritDoc} */
     protected ScmResult executeRemoveCommand( ScmProviderRepository scmProviderRepository, ScmFileSet scmFileSet,
                                               String string )
         throws ScmException
@@ -58,10 +60,13 @@
             // First we need to 'check out' the current directory
             Commandline checkoutCurrentDirCommandLine =
                 ClearCaseEditCommand.createCheckoutCurrentDirCommandLine( scmFileSet );
-            getLogger().debug( "Executing: " + checkoutCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath() +
-                ">>" + checkoutCurrentDirCommandLine.toString() );
-            exitCode = CommandLineUtils.executeCommandLine( checkoutCurrentDirCommandLine,
-                                                            new CommandLineUtils.StringStreamConsumer(), stderr );
+            getLogger().debug(
+                               "Executing: "
+                                   + checkoutCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath() + ">>"
+                                   + checkoutCurrentDirCommandLine.toString() );
+            exitCode =
+                CommandLineUtils.executeCommandLine( checkoutCurrentDirCommandLine,
+                                                     new CommandLineUtils.StringStreamConsumer(), stderr );
 
             if ( exitCode == 0 )
             {
@@ -74,9 +79,10 @@
                     // Then we check in the current directory again.
                     Commandline checkinCurrentDirCommandLine =
                         ClearCaseEditCommand.createCheckinCurrentDirCommandLine( scmFileSet );
-                    getLogger().debug( "Executing: " +
-                        checkinCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath() + ">>" +
-                        checkinCurrentDirCommandLine.toString() );
+                    getLogger().debug(
+                                       "Executing: "
+                                           + checkinCurrentDirCommandLine.getWorkingDirectory().getAbsolutePath()
+                                           + ">>" + checkinCurrentDirCommandLine.toString() );
                     exitCode = CommandLineUtils.executeCommandLine( checkinCurrentDirCommandLine,
                                                                     new CommandLineUtils.StringStreamConsumer(),
                                                                     stderr );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveConsumer.java
index 3c5753d..5d26014 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/remove/ClearCaseRemoveConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseRemoveConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusCommand.java
index 83f75dc..6b8a8d1 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusCommand.java
@@ -33,11 +33,13 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseStatusCommand
     extends AbstractStatusCommand
     implements ClearCaseCommand
 {
+    /** {@inheritDoc} */
     protected StatusScmResult executeStatusCommand( ScmProviderRepository scmProviderRepository, ScmFileSet scmFileSet )
         throws ScmException
     {
@@ -83,7 +85,7 @@
         command.setExecutable( "cleartool" );
 
         command.createArgument().setValue( "lscheckout" );
-        command.createArgument().setValue( "-cview");
+        command.createArgument().setValue( "-cview" );
         command.createArgument().setValue( "-r" );
         command.createArgument().setValue( "-fmt" );
         command.createArgument().setValue( "%n\\n" );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusConsumer.java
index 57eb502..d874883 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/status/ClearCaseStatusConsumer.java
@@ -30,6 +30,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseStatusConsumer
     implements StreamConsumer
@@ -54,6 +55,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagCommand.java
index 1965b05..07c3439 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagCommand.java
@@ -35,12 +35,13 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseTagCommand
     extends AbstractTagCommand
     implements ClearCaseCommand
 {
-
+    /** {@inheritDoc} */
     protected ScmResult executeTagCommand( ScmProviderRepository scmProviderRepository, ScmFileSet fileSet, String tag,
                                            String message )
         throws ScmException
@@ -58,8 +59,9 @@
         {
             getLogger().debug( "Creating label: " + tag );
             Commandline newLabelCommandLine = createNewLabelCommandLine( fileSet, tag );
-            getLogger().debug( "Executing: " + newLabelCommandLine.getWorkingDirectory().getAbsolutePath() + ">>" +
-                newLabelCommandLine.toString() );
+            getLogger().debug(
+                               "Executing: " + newLabelCommandLine.getWorkingDirectory().getAbsolutePath() + ">>"
+                                   + newLabelCommandLine.toString() );
             exitCode = CommandLineUtils.executeCommandLine( newLabelCommandLine,
                                                             new CommandLineUtils.StringStreamConsumer(), stderr );
 
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagConsumer.java
index cf791a4..a0c5b8e 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/tag/ClearCaseTagConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @version $Id$
  */
 public class ClearCaseTagConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditCommand.java
index 62999d4..5d32830 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditCommand.java
@@ -35,11 +35,13 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseUnEditCommand
     extends AbstractUnEditCommand
     implements ClearCaseCommand
 {
+    /** {@inheritDoc} */
     protected ScmResult executeUnEditCommand( ScmProviderRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditConsumer.java
index a30e014..6c64588 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/unedit/ClearCaseUnEditConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseUnEditConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateCommand.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateCommand.java
index 79678e7..fc888e9 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateCommand.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateCommand.java
@@ -36,11 +36,13 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseUpdateCommand
     extends AbstractUpdateCommand
     implements ClearCaseCommand
 {
+    /** {@inheritDoc} */
     protected UpdateScmResult executeUpdateCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                                     ScmVersion version )
         throws ScmException
@@ -72,6 +74,7 @@
         return new UpdateScmResult( cl.toString(), consumer.getUpdatedFiles() );
     }
 
+    /** {@inheritDoc} */
     protected ChangeLogCommand getChangeLogCommand()
     {
         ClearCaseChangeLogCommand changeLogCmd = new ClearCaseChangeLogCommand();
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateConsumer.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateConsumer.java
index b5fcbae..b4d48dc 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/update/ClearCaseUpdateConsumer.java
@@ -29,6 +29,7 @@
 
 /**
  * @author <a href="mailto:wim.deblauwe@gmail.com">Wim Deblauwe</a>
+ * @version $Id$
  */
 public class ClearCaseUpdateConsumer
     implements StreamConsumer
@@ -50,6 +51,7 @@
     // Stream Consumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         logger.debug( line );
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/repository/ClearCaseScmProviderRepository.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/repository/ClearCaseScmProviderRepository.java
index 59ae038..23252bb 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/repository/ClearCaseScmProviderRepository.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/repository/ClearCaseScmProviderRepository.java
@@ -37,10 +37,10 @@
  * Provider Repository for ClearCase (standard, LT, UCM)
  * <p />
  * Url format for ClearCase and ClearCaseLT : <br />
- * [view_name]:[configspec] or [view_name]|[configspec] 
+ * [view_name]:[configspec] or [view_name]|[configspec]
  * <p />
  * Url format for ClearCaseUCM : <br />
- * [view_name]|[configspec]|[vob_name]|[stream_name] or [view_name]:[configspec]:[vob_name]:[stream_name]  
+ * [view_name]|[configspec]|[vob_name]|[stream_name] or [view_name]:[configspec]:[vob_name]:[stream_name]
  * <p />
  * [configspec] can be used in two different ways:
  * <ul>
@@ -83,12 +83,12 @@
      * Describe the vob containing the stream. Only used with ClearCaseUCM
      */
     private String vobName;
-    
+
     /**
      * Provider configuration settings
      */
     private Settings settings;
-    
+
     /**
      * Define the flag used in the clearcase-settings.xml when using ClearCaseLT
      */
@@ -103,7 +103,7 @@
      * Define the default value from the clearcase-settings.xml when using ClearCase
      */
     public static final String CLEARCASE_DEFAULT = null;
-    
+
     public ClearCaseScmProviderRepository( ScmLogger logger, String url, Settings settings )
         throws ScmRepositoryException
     {
@@ -146,12 +146,16 @@
         throws UnknownHostException, URISyntaxException, MalformedURLException
     {
         String configSpecString = null;
-        
-        if (CLEARCASE_UCM.equals(settings.getClearcaseType()))
-            configSpecString = fillUCMProperties(tokenizer);
+
+        if ( CLEARCASE_UCM.equals( settings.getClearcaseType() ) )
+        {
+            configSpecString = fillUCMProperties( tokenizer );
+        }
         else
-            configSpecString = fillDefaultProperties(tokenizer);
-        
+        {
+            configSpecString = fillDefaultProperties( tokenizer );
+        }
+
         if ( !configSpecString.startsWith( "load " ) )
         {
             configSpec = createConfigSpecFile( configSpecString );
@@ -165,35 +169,40 @@
         }
     }
 
-    private String fillDefaultProperties(StringTokenizer tokenizer) throws UnknownHostException 
+    private String fillDefaultProperties( StringTokenizer tokenizer )
+        throws UnknownHostException
     {
-        int tokenNumber = tokenizer.countTokens();  
+        int tokenNumber = tokenizer.countTokens();
         String configSpecString;
         if ( tokenNumber == 1 )
         {
-            //No view name was given
+            // No view name was given
             viewName = getDefaultViewName();
             configSpecString = tokenizer.nextToken();
         }
         else
         {
-            configSpecString = checkViewName(tokenizer);
-            checkUnexpectedParameter(tokenizer, tokenNumber, 2);
+            configSpecString = checkViewName( tokenizer );
+            checkUnexpectedParameter( tokenizer, tokenNumber, 2 );
         }
         logger.debug( "viewName = '" + viewName + "' ; configSpec = '" + configSpecString + "'" );
         return configSpecString;
     }
 
-    private String fillUCMProperties(StringTokenizer tokenizer) throws UnknownHostException, MalformedURLException 
+    private String fillUCMProperties( StringTokenizer tokenizer )
+        throws UnknownHostException, MalformedURLException
     {
         int tokenNumber = tokenizer.countTokens();
         if ( tokenNumber <= 2 )
-            throw new MalformedURLException("ClearCaseUCM need more parameters. Expected url format : [view_name]|[configspec]|[vob_name]|[stream_name]");
-        
+        {
+            throw new MalformedURLException( "ClearCaseUCM need more parameters. Expected url format : "
+                + "[view_name]|[configspec]|[vob_name]|[stream_name]" );
+        }
+
         String configSpecString;
         if ( tokenNumber == 3 )
         {
-            //No view name was given
+            // No view name was given
             viewName = getDefaultViewName();
             configSpecString = tokenizer.nextToken();
             vobName = tokenizer.nextToken();
@@ -201,16 +210,18 @@
         }
         else
         {
-            configSpecString = checkViewName(tokenizer);
+            configSpecString = checkViewName( tokenizer );
             vobName = tokenizer.nextToken();
-            streamName = tokenizer.nextToken();       
-            checkUnexpectedParameter(tokenizer, tokenNumber, 4);
+            streamName = tokenizer.nextToken();
+            checkUnexpectedParameter( tokenizer, tokenNumber, 4 );
         }
-        logger.info( "viewName = '" + viewName + "' ; configSpec = '" + configSpecString + "' ; vobName = '" + vobName + "' ; streamName = '" + streamName + "'" );
+        logger.info( "viewName = '" + viewName + "' ; configSpec = '" + configSpecString + "' ; vobName = '"
+            + vobName + "' ; streamName = '" + streamName + "'" );
         return configSpecString;
     }
 
-    private String checkViewName(StringTokenizer tokenizer) throws UnknownHostException 
+    private String checkViewName( StringTokenizer tokenizer )
+        throws UnknownHostException
     {
         viewName = tokenizer.nextToken();
         if ( viewName.length() > 0 )
@@ -224,15 +235,15 @@
         return tokenizer.nextToken();
     }
 
-    private void checkUnexpectedParameter(StringTokenizer tokenizer, int tokenNumber, int maxTokenNumber) 
+    private void checkUnexpectedParameter( StringTokenizer tokenizer, int tokenNumber, int maxTokenNumber )
     {
-        if (tokenNumber > maxTokenNumber)
+        if ( tokenNumber > maxTokenNumber )
         {
             String unexpectedToken = tokenizer.nextToken();
-            logger.info("The SCM URL contains unused parameter : " + unexpectedToken);
+            logger.info( "The SCM URL contains unused parameter : " + unexpectedToken );
         }
     }
-    
+
     private File createConfigSpecFile( String spec )
         throws URISyntaxException, MalformedURLException
     {
@@ -324,11 +335,13 @@
         return loadDirectory;
     }
 
-    public String getStreamName() {
+    public String getStreamName()
+    {
         return streamName;
     }
 
-    public String getVobName() {
+    public String getVobName()
+    {
         return vobName;
     }
 }
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/util/ClearCaseUtil.java b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/util/ClearCaseUtil.java
index ef519a8..96cbd0c 100644
--- a/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/util/ClearCaseUtil.java
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/util/ClearCaseUtil.java
@@ -63,9 +63,11 @@
             }
             catch ( FileNotFoundException e )
             {
+                // nop
             }
             catch ( IOException e )
             {
+                // nop
             }
             catch ( XmlPullParserException e )
             {
diff --git a/maven-scm-providers/maven-scm-provider-clearcase/src/site/site.xml b/maven-scm-providers/maven-scm-provider-clearcase/src/site/site.xml
new file mode 100644
index 0000000..6cc4be6
--- /dev/null
+++ b/maven-scm-providers/maven-scm-provider-clearcase/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM Clearcase Provider">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-providers/maven-scm-provider-hg/pom.xml b/maven-scm-providers/maven-scm-provider-hg/pom.xml
index 104cb1a..49382e4 100644
--- a/maven-scm-providers/maven-scm-provider-hg/pom.xml
+++ b/maven-scm-providers/maven-scm-provider-hg/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,21 +20,24 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm-providers</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm-providers</artifactId>
     <version>1.1</version>
   </parent>
-	<modelVersion>4.0.0</modelVersion>
-	<artifactId>maven-scm-provider-hg</artifactId>
-	<name>Maven SCM Mercurial (Hg) Provider</name>
-	<version>1.1</version>
+
+  <artifactId>maven-scm-provider-hg</artifactId>
+
+  <name>Maven SCM Mercurial (Hg) Provider</name>
+  <description>SCM Provider implementation for Mercurial Hg (http://www.selenic.com/mercurial/wiki/).</description>
 
   <contributors>
-		<contributor>
-		 <name>Thurner Rupert</name>
-		 <email>thurner.rupert@ymono.net</email>
-		</contributor>
+    <contributor>
+     <name>Thurner Rupert</name>
+     <email>thurner.rupert@ymono.net</email>
+    </contributor>
     <contributor>
       <name>Alain Hoang</name>
       <email>hoanga@alum.rpi.edu</email>
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgConfig.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgConfig.java
index 21694f6..8a5f823 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgConfig.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgConfig.java
@@ -22,7 +22,7 @@
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.log.DefaultLog;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 import org.apache.maven.scm.provider.hg.command.HgConsumer;
 import org.codehaus.plexus.util.cli.Commandline;
 
@@ -33,11 +33,12 @@
  *
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
  * @author <a href="mailto:ryan@darksleep.com">ryan daum</a>
+ * @version $Id$
  */
 public class HgConfig
 {
     //Minimum version for the Hg SCM
-    private static String HG_REQ = "0.9.2";
+    private static final String HG_REQ = "0.9.2";
 
     // The string which indicates the beginning of the Mercurial line
     private static final String HG_VERSION_TAG = "ercurial Distributed SCM (version ";
@@ -82,7 +83,7 @@
     public static HgVersionConsumer getHgVersion( File workingDir )
         throws ScmException
     {
-        String[] versionCmd = new String[]{HgCommand.VERSION};
+        String[] versionCmd = new String[]{HgCommandConstants.VERSION};
         HgVersionConsumer consumer = new HgVersionConsumer( HG_VERSION_TAG );
         Commandline cmd = HgUtils.buildCmd( workingDir, versionCmd );
 
@@ -102,9 +103,9 @@
      * @param version2
      * @return true if version2 is greater than version1
      */
-    private static boolean CompareVersion( String version1, String version2 )
+    private static boolean compareVersion( String version1, String version2 )
     {
-        int l1, l2, i;
+        int l1, l2;
         String v1, v2;
 
         v1 = version1;
@@ -142,17 +143,17 @@
 
         private String versionStr = "NA";
 
-        private String version_tag;
+        private String versionTag;
 
-        HgVersionConsumer( String version_tag )
+        HgVersionConsumer( String versionTag )
         {
             super( new DefaultLog() );
-            this.version_tag = version_tag;
+            this.versionTag = versionTag;
         }
 
         public void doConsume( ScmFileStatus status, String line )
         {
-            if ( line.startsWith( version_tag ) )
+            if ( line.startsWith( versionTag ) )
             {
                 String[] elements = line.split( " " );
                 versionStr = elements[elements.length - 1].split( "\\)" )[0];
@@ -168,7 +169,7 @@
         {
             // build one number out of the whole version #
 
-            return CompareVersion( version, versionStr );
+            return compareVersion( version, versionStr );
         }
     }
 
@@ -184,7 +185,7 @@
     public String toString( File workingDir )
     {
         boolean hgOk = hgVersion.isVersionOk( HG_REQ );
-        return "\n  Your Hg installation seems to be " + getInstalledStr() + "\n    Hg version: " +
-            hgVersion.getVersion() + ( hgOk ? " (OK)" : " (May be INVALID)" ) + "\n";
+        return "\n  Your Hg installation seems to be " + getInstalledStr() + "\n    Hg version: "
+            + hgVersion.getVersion() + ( hgOk ? " (OK)" : " (May be INVALID)" ) + "\n";
     }
 }
\ No newline at end of file
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java
index 619b5a1..383b947 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java
@@ -19,6 +19,10 @@
  * under the License.
  */
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.maven.scm.CommandParameters;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -29,11 +33,10 @@
 import org.apache.maven.scm.command.diff.DiffScmResult;
 import org.apache.maven.scm.command.remove.RemoveScmResult;
 import org.apache.maven.scm.command.status.StatusScmResult;
-import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
-import org.apache.maven.scm.provider.hg.command.tag.HgTagCommand;
 import org.apache.maven.scm.provider.hg.command.add.HgAddCommand;
 import org.apache.maven.scm.provider.hg.command.changelog.HgChangeLogCommand;
 import org.apache.maven.scm.provider.hg.command.checkin.HgCheckInCommand;
@@ -41,26 +44,25 @@
 import org.apache.maven.scm.provider.hg.command.diff.HgDiffCommand;
 import org.apache.maven.scm.provider.hg.command.remove.HgRemoveCommand;
 import org.apache.maven.scm.provider.hg.command.status.HgStatusCommand;
+import org.apache.maven.scm.provider.hg.command.tag.HgTagCommand;
 import org.apache.maven.scm.provider.hg.command.update.HgUpdateCommand;
 import org.apache.maven.scm.provider.hg.repository.HgScmProviderRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.apache.maven.scm.repository.UnknownRepositoryStructure;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * Mercurial (HG) is a decentralized revision control system.
  * <a href="http://www.selenic.com/mercurial">http://www.selenic.com/mercurial</a>
  *
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  * @plexus.component role="org.apache.maven.scm.provider.ScmProvider"
  * role-hint="hg"
  */
 public class HgScmProvider
     extends AbstractScmProvider
 {
+    /** {@inheritDoc} */
     public String getScmSpecificFilename()
     {
         return ".hg";
@@ -68,25 +70,24 @@
 
     private static class HgUrlParserResult
     {
-        List messages = new ArrayList();
+        private List messages = new ArrayList();
 
-        ScmProviderRepository repository;
+        private ScmProviderRepository repository;
     }
 
-
+    /** {@inheritDoc} */
     public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
-            throws ScmRepositoryException
+        throws ScmRepositoryException
+    {
+        HgUrlParserResult result = parseScmUrl( scmSpecificUrl );
+
+        if ( result.messages.size() > 0 )
         {
-            HgUrlParserResult result = parseScmUrl( scmSpecificUrl );
-
-            if ( result.messages.size() > 0 )
-            {
-                throw new ScmRepositoryException( "The scm url is invalid.", result.messages );
-            }
-
-            return result.repository;
+            throw new ScmRepositoryException( "The scm url is invalid.", result.messages );
         }
 
+        return result.repository;
+    }
 
     private HgUrlParserResult parseScmUrl( String scmSpecificUrl )
     {
@@ -124,12 +125,17 @@
 
                 return result;
             }
-        } else {
-            try {
+        }
+        else
+        {
+            try
+            {
 
-                File file = new File(url);
+                File file = new File( url );
 
-            } catch (Throwable e) {
+            }
+            catch ( Throwable e )
+            {
                 result.messages.add( "The filename provided is not valid" );
 
                 return result;
@@ -142,9 +148,7 @@
         return result;
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#makeProviderScmRepository(java.io.File)
-     */
+    /** {@inheritDoc} */
     public ScmProviderRepository makeProviderScmRepository( File path )
         throws ScmRepositoryException, UnknownRepositoryStructure
     {
@@ -163,14 +167,7 @@
         return makeProviderScmRepository( path.getAbsolutePath(), ':' );
     }
 
-    
-    /**
-     * Validate the scm url.
-     *
-     * @param scmSpecificUrl The SCM url
-     * @param delimiter      The delimiter used in the SCM url
-     * @return Returns a list of messages if the validation failed
-     */ 
+    /** {@inheritDoc} */
     public List validateScmUrl( String scmSpecificUrl, char delimiter )
     {
         HgUrlParserResult result = parseScmUrl( scmSpecificUrl );
@@ -178,14 +175,13 @@
         return result.messages;
     }
 
+    /** {@inheritDoc} */
     public String getScmType()
     {
         return "hg";
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public AddScmResult add( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -196,9 +192,7 @@
         return (AddScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet,
                                          CommandParameters parameters )
         throws ScmException
@@ -210,9 +204,7 @@
         return (ChangeLogScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
@@ -224,9 +216,7 @@
         return (CheckInScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet,
                                        CommandParameters parameters )
         throws ScmException
@@ -238,11 +228,8 @@
         return (CheckOutScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
-    public TagScmResult tag( ScmProviderRepository repository, ScmFileSet fileSet,
-                                       CommandParameters parameters )
+    /** {@inheritDoc} */
+    public TagScmResult tag( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
         HgTagCommand command = new HgTagCommand();
@@ -252,10 +239,7 @@
         return (TagScmResult) command.execute( repository, fileSet, parameters );
     }
 
-
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#diff(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public DiffScmResult diff( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -266,10 +250,9 @@
         return (DiffScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#remove(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
-    public RemoveScmResult remove( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    public RemoveScmResult remove( ScmProviderRepository repository, ScmFileSet fileSet,
+                                   CommandParameters parameters )
         throws ScmException
     {
         HgRemoveCommand command = new HgRemoveCommand();
@@ -279,10 +262,9 @@
         return (RemoveScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#status(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
-    public StatusScmResult status( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    public StatusScmResult status( ScmProviderRepository repository, ScmFileSet fileSet,
+                                   CommandParameters parameters )
         throws ScmException
     {
         HgStatusCommand command = new HgStatusCommand();
@@ -292,10 +274,9 @@
         return (StatusScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
-    public UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    /** {@inheritDoc} */
+    public UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet,
+                                   CommandParameters parameters )
         throws ScmException
     {
         HgUpdateCommand command = new HgUpdateCommand();
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java
index 87bb121..33d036a 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java
@@ -25,7 +25,7 @@
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.log.DefaultLog;
 import org.apache.maven.scm.log.ScmLogger;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 import org.apache.maven.scm.provider.hg.command.HgConsumer;
 import org.codehaus.plexus.util.cli.CommandLineException;
 import org.codehaus.plexus.util.cli.CommandLineUtils;
@@ -42,30 +42,31 @@
  * Common code for executing hg commands.
  *
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgUtils
 {
     /**
      * Map between command and its valid exit codes
      */
-    private static final Map exitCodeMap = new HashMap();
+    private static final Map EXIT_CODE_MAP = new HashMap();
 
     /**
      * Default exit codes for entries not in exitCodeMap
      */
-    private static final List defaultExitCodes = new ArrayList();
+    private static final List DEFAULT_EXIT_CODES = new ArrayList();
 
     /** Setup exit codes*/
     static
     {
-        defaultExitCodes.add( new Integer( 0 ) );
+        DEFAULT_EXIT_CODES.add( new Integer( 0 ) );
 
         //Diff is different
         List diffExitCodes = new ArrayList();
         diffExitCodes.add( new Integer( 0 ) ); //No difference
         diffExitCodes.add( new Integer( 1 ) ); //Conflicts in merge-like or changes in diff-like
         diffExitCodes.add( new Integer( 2 ) ); //Unrepresentable diff changes
-        exitCodeMap.put( HgCommand.DIFF_CMD, diffExitCodes );
+        EXIT_CODE_MAP.put( HgCommandConstants.DIFF_CMD, diffExitCodes );
     }
 
     public static ScmResult execute( HgConsumer consumer, ScmLogger logger, File workingDir, String[] cmdAndArgs )
@@ -81,10 +82,10 @@
             int exitCode = executeCmd( consumer, cmd );
 
             //Return result
-            List exitCodes = defaultExitCodes;
-            if ( exitCodeMap.containsKey( cmdAndArgs[0] ) )
+            List exitCodes = DEFAULT_EXIT_CODES;
+            if ( EXIT_CODE_MAP.containsKey( cmdAndArgs[0] ) )
             {
-                exitCodes = (List) exitCodeMap.get( cmdAndArgs[0] );
+                exitCodes = (List) EXIT_CODE_MAP.get( cmdAndArgs[0] );
             }
             boolean success = exitCodes.contains( new Integer( exitCode ) );
 
@@ -93,9 +94,10 @@
             if ( !success )
             {
                 HgConfig config = new HgConfig( workingDir );
-                providerMsg = "\nEXECUTION FAILED" + "\n  Execution of cmd : " + cmdAndArgs[0] +
-                    " failed with exit code: " + exitCode + "." + "\n  Working directory was: " + "\n    " +
-                    workingDir.getAbsolutePath() + config.toString( workingDir ) + "\n";
+                providerMsg =
+                    "\nEXECUTION FAILED" + "\n  Execution of cmd : " + cmdAndArgs[0] + " failed with exit code: "
+                        + exitCode + "." + "\n  Working directory was: " + "\n    " + workingDir.getAbsolutePath()
+                        + config.toString( workingDir ) + "\n";
                 logger.error( providerMsg );
             }
 
@@ -103,8 +105,9 @@
         }
         catch ( ScmException se )
         {
-            String msg = "EXECUTION FAILED" + "\n  Execution failed before invoking the Hg command. Last exception:" +
-                "\n    " + se.getMessage();
+            String msg =
+                "EXECUTION FAILED" + "\n  Execution failed before invoking the Hg command. Last exception:"
+                    + "\n    " + se.getMessage();
 
             //Add nested cause if any
             if ( se.getCause() != null )
@@ -122,7 +125,7 @@
         throws ScmException
     {
         Commandline cmd = new Commandline();
-        cmd.setExecutable( HgCommand.EXEC );
+        cmd.setExecutable( HgCommandConstants.EXEC );
         cmd.setWorkingDirectory( workingDir.getAbsolutePath() );
         cmd.addArguments( cmdAndArgs );
 
@@ -185,7 +188,7 @@
         throws ScmException
     {
 
-        String[] revCmd = new String[]{HgCommand.REVNO_CMD};
+        String[] revCmd = new String[]{HgCommandConstants.REVNO_CMD};
         HgRevNoConsumer consumer = new HgRevNoConsumer( logger );
         HgUtils.execute( consumer, logger, workingDir, revCmd );
 
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java
similarity index 95%
rename from maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommand.java
rename to maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java
index bfc2bbc..7b4f4d6 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgCommandConstants.java
@@ -19,7 +19,6 @@
  * under the License.
  */
 
-import org.apache.maven.scm.command.Command;
 
 /**
  * Available/Used hg commands.
@@ -28,9 +27,9 @@
  * Eg. "check in" is translated to be "commit" and "push".
  *
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
-public interface HgCommand
-    extends Command
+public class HgCommandConstants
 {
     /**
      * Executable for Hg
@@ -116,5 +115,6 @@
     public static final String VERSION = "version";
 
     public static final String CHECK = "check";
-    String ALL_OPTION = "-A";
+    
+    public static final String ALL_OPTION = "-A";
 }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgConsumer.java
index 13b788a..d12f160 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/HgConsumer.java
@@ -36,6 +36,7 @@
  * and detect warnings from hg
  *
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgConsumer
     extends AbstractConsumer
@@ -44,12 +45,12 @@
     /**
      * A list of known keywords from hg
      */
-    private static final Map identifiers = new HashMap();
+    private static final Map IDENTIFIERS = new HashMap();
 
     /**
      * A list of known message prefixes from hg
      */
-    private static final Map messages = new HashMap();
+    private static final Map MESSAGES = new HashMap();
 
     /**
      * Number of lines to keep from Std.Err
@@ -67,25 +68,25 @@
     {
         /** Statuses from hg add
          */
-        identifiers.put( "adding", ScmFileStatus.ADDED );
-        identifiers.put( "unknown", ScmFileStatus.UNKNOWN );
-        identifiers.put( "modified", ScmFileStatus.MODIFIED );
-        identifiers.put( "removed", ScmFileStatus.DELETED );
-        identifiers.put( "renamed", ScmFileStatus.MODIFIED );
+        IDENTIFIERS.put( "adding", ScmFileStatus.ADDED );
+        IDENTIFIERS.put( "unknown", ScmFileStatus.UNKNOWN );
+        IDENTIFIERS.put( "modified", ScmFileStatus.MODIFIED );
+        IDENTIFIERS.put( "removed", ScmFileStatus.DELETED );
+        IDENTIFIERS.put( "renamed", ScmFileStatus.MODIFIED );
 
         /** Statuses from hg status;
          */
-        identifiers.put( "A", ScmFileStatus.ADDED );
-        identifiers.put( "?", ScmFileStatus.UNKNOWN );
-        identifiers.put( "M", ScmFileStatus.MODIFIED );
-        identifiers.put( "R", ScmFileStatus.DELETED );
-        identifiers.put( "C", ScmFileStatus.CHECKED_IN );
-        identifiers.put( "!", ScmFileStatus.MISSING );
-        identifiers.put( "I", ScmFileStatus.UNKNOWN ); // not precisely the same, but i think semantics work? - rwd
+        IDENTIFIERS.put( "A", ScmFileStatus.ADDED );
+        IDENTIFIERS.put( "?", ScmFileStatus.UNKNOWN );
+        IDENTIFIERS.put( "M", ScmFileStatus.MODIFIED );
+        IDENTIFIERS.put( "R", ScmFileStatus.DELETED );
+        IDENTIFIERS.put( "C", ScmFileStatus.CHECKED_IN );
+        IDENTIFIERS.put( "!", ScmFileStatus.MISSING );
+        IDENTIFIERS.put( "I", ScmFileStatus.UNKNOWN ); // not precisely the same, but i think semantics work? - rwd
 
-        messages.put( "hg: WARNING:", "WARNING" );
-        messages.put( "hg: ERROR:", "ERROR" );
-        messages.put( "'hg' ", "ERROR" ); // hg isn't found in windows path
+        MESSAGES.put( "hg: WARNING:", "WARNING" );
+        MESSAGES.put( "hg: ERROR:", "ERROR" );
+        MESSAGES.put( "'hg' ", "ERROR" ); // hg isn't found in windows path
     }
 
     public HgConsumer( ScmLogger logger )
@@ -98,6 +99,7 @@
         //override this
     }
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         getLogger().debug( line );
@@ -122,7 +124,7 @@
             trimmedLine = trimmedLine.trim(); //one or more spaces
         }
 
-        ScmFileStatus status = statusStr != null ? ( (ScmFileStatus) identifiers.get( statusStr.intern() ) ) : null;
+        ScmFileStatus status = statusStr != null ? ( (ScmFileStatus) IDENTIFIERS.get( statusStr.intern() ) ) : null;
         doConsume( status, trimmedLine );
     }
 
@@ -144,7 +146,7 @@
 
     private static String processInputForKnownIdentifiers( String line )
     {
-        for ( Iterator it = identifiers.keySet().iterator(); it.hasNext(); )
+        for ( Iterator it = IDENTIFIERS.keySet().iterator(); it.hasNext(); )
         {
             String id = (String) it.next();
             if ( line.startsWith( id ) )
@@ -157,7 +159,7 @@
 
     private boolean processInputForKnownMessages( String line )
     {
-        for ( Iterator it = messages.keySet().iterator(); it.hasNext(); )
+        for ( Iterator it = MESSAGES.keySet().iterator(); it.hasNext(); )
         {
             String prefix = (String) it.next();
             if ( line.startsWith( prefix ) )
@@ -168,7 +170,7 @@
                     stderr.remove( 0 ); //Rotate list
                 }
                 String message = line.substring( prefix.length() );
-                if ( messages.get( prefix ).equals( "WARNING" ) )
+                if ( MESSAGES.get( prefix ).equals( "WARNING" ) )
                 {
                     getLogger().warn( message );
                 }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddCommand.java
index ed78fca..e8b8312 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddCommand.java
@@ -19,33 +19,36 @@
  * under the License.
  */
 
+import java.io.File;
+import java.util.Iterator;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.add.AbstractAddCommand;
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
-
-import java.io.File;
-import java.util.Iterator;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 
 /**
  * Add no recursive.
  *
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgAddCommand
     extends AbstractAddCommand
-    implements HgCommand
+    implements Command
 {
+    /** {@inheritDoc} */
     protected ScmResult executeAddCommand( ScmProviderRepository repo, ScmFileSet fileSet, String message,
                                            boolean binary )
         throws ScmException
     {
         //String[] addCmd = new String[] { ADD_CMD, NO_RECURSE_OPTION };
-        String[] addCmd = new String[]{ADD_CMD, VERBOSE_OPTION};
+        String[] addCmd = new String[] { HgCommandConstants.ADD_CMD, HgCommandConstants.VERBOSE_OPTION };
         addCmd = HgUtils.expandCommandLine( addCmd, fileSet );
 
         File workingDir = fileSet.getBasedir();
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddConsumer.java
index 4f6d6d0..34ea5f0 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/add/HgAddConsumer.java
@@ -30,6 +30,7 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgAddConsumer
     extends HgConsumer
@@ -44,6 +45,7 @@
         this.workingDir = workingDir;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
     {
         if ( status != null && status == ScmFileStatus.ADDED )
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java
index 904ce67..5613ec8 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java
@@ -24,12 +24,13 @@
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.changelog.AbstractChangeLogCommand;
 import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
 import org.apache.maven.scm.command.changelog.ChangeLogSet;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -38,25 +39,26 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgChangeLogCommand
     extends AbstractChangeLogCommand
-    implements HgCommand
+    implements Command
 {
-
+    /** {@inheritDoc} */
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository scmProviderRepository,
                                                           ScmFileSet fileSet, Date startDate, Date endDate,
                                                           ScmBranch branch, String datePattern )
         throws ScmException
     {
-        String[] cmd = new String[]{LOG_CMD, VERBOSE_OPTION};
+        String[] cmd = new String[] { HgCommandConstants.LOG_CMD, HgCommandConstants.VERBOSE_OPTION };
         HgChangeLogConsumer consumer = new HgChangeLogConsumer( getLogger(), datePattern );
         ScmResult result = HgUtils.execute( consumer, getLogger(), fileSet.getBasedir(), cmd );
 
         List logEntries = consumer.getModifications();
         List inRangeAndValid = new ArrayList();
-        startDate = startDate == null ? new Date( 0 ) : startDate;//From 1. Jan 1970
-        endDate = endDate == null ? new Date() : endDate;//Upto now
+        startDate = startDate == null ? new Date( 0 ) : startDate; // From 1. Jan 1970
+        endDate = endDate == null ? new Date() : endDate; // Upto now
 
         for ( Iterator it = logEntries.iterator(); it.hasNext(); )
         {
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
index ae52194..fb40cd5 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
@@ -32,6 +32,7 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgChangeLogConsumer
     extends HgConsumer
@@ -87,6 +88,7 @@
         return logEntries;
     }
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
 
@@ -95,6 +97,7 @@
         doConsume( null, line );
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String line )
     {
         String tmpLine = line;
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java
index bb70f7c..7b15de6 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommand.java
@@ -30,7 +30,7 @@
 import org.apache.maven.scm.command.status.StatusScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 import org.apache.maven.scm.provider.hg.command.HgConsumer;
 import org.apache.maven.scm.provider.hg.command.status.HgStatusCommand;
 import org.apache.maven.scm.provider.hg.repository.HgScmProviderRepository;
@@ -43,11 +43,12 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgCheckInCommand
     extends AbstractCheckInCommand
 {
-
+    /** {@inheritDoc} */
     protected CheckInScmResult executeCheckInCommand( ScmProviderRepository repo, ScmFileSet fileSet, String message,
                                                       ScmVersion tag )
         throws ScmException
@@ -69,8 +70,8 @@
             for ( Iterator it = statusFiles.iterator(); it.hasNext(); )
             {
                 ScmFile file = (ScmFile) it.next();
-                if ( file.getStatus() == ScmFileStatus.ADDED || file.getStatus() == ScmFileStatus.DELETED ||
-                    file.getStatus() == ScmFileStatus.MODIFIED )
+                if ( file.getStatus() == ScmFileStatus.ADDED || file.getStatus() == ScmFileStatus.DELETED
+                    || file.getStatus() == ScmFileStatus.MODIFIED )
                 {
                     commitedFiles.add( new ScmFile( file.getPath(), ScmFileStatus.CHECKED_IN ) );
                 }
@@ -86,7 +87,7 @@
         }
 
         // Commit to local branch
-        String[] commitCmd = new String[]{HgCommand.COMMIT_CMD, HgCommand.MESSAGE_OPTION, message};
+        String[] commitCmd = new String[]{HgCommandConstants.COMMIT_CMD, HgCommandConstants.MESSAGE_OPTION, message};
         commitCmd = HgUtils.expandCommandLine( commitCmd, fileSet );
         ScmResult result =
             HgUtils.execute( new HgConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), commitCmd );
@@ -95,8 +96,8 @@
         HgScmProviderRepository repository = (HgScmProviderRepository) repo;
         if ( !repository.getURI().equals( fileSet.getBasedir().getAbsolutePath() ) )
         {
-            String[] push_cmd = new String[]{HgCommand.PUSH_CMD, repository.getURI()};
-            result = HgUtils.execute( new HgConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), push_cmd );
+            String[] pushCmd = new String[]{HgCommandConstants.PUSH_CMD, repository.getURI()};
+            result = HgUtils.execute( new HgConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), pushCmd );
         }
 
         return new CheckInScmResult( commitedFiles, result );
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java
index debef22..9e629e6 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommand.java
@@ -23,11 +23,12 @@
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.checkout.AbstractCheckOutCommand;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 import org.apache.maven.scm.provider.hg.command.HgConsumer;
 import org.apache.maven.scm.provider.hg.repository.HgScmProviderRepository;
 import org.codehaus.plexus.util.FileUtils;
@@ -38,13 +39,13 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgCheckOutCommand
     extends AbstractCheckOutCommand
-    implements HgCommand
+    implements Command
 {
-
-
+    /** {@inheritDoc} */
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                         ScmVersion scmVersion )
         throws ScmException
@@ -64,16 +65,19 @@
         }
 
         // Do the actual checkout
-        String[] checkout_cmd = new String[]{BRANCH_CMD, REVISION_OPTION,
-            scmVersion != null && !StringUtils.isEmpty( scmVersion.getName() ) ? scmVersion.getName() : "tip", url,
-            checkoutDir.getAbsolutePath()};
-        HgConsumer checkout_consumer = new HgConsumer( getLogger() );
-        HgUtils.execute( checkout_consumer, getLogger(), checkoutDir.getParentFile(), checkout_cmd );
+        String[] checkoutCmd = new String[] {
+            HgCommandConstants.BRANCH_CMD,
+            HgCommandConstants.REVISION_OPTION,
+            scmVersion != null && !StringUtils.isEmpty( scmVersion.getName() ) ? scmVersion.getName() : "tip",
+            url,
+            checkoutDir.getAbsolutePath() };
+        HgConsumer checkoutConsumer = new HgConsumer( getLogger() );
+        HgUtils.execute( checkoutConsumer, getLogger(), checkoutDir.getParentFile(), checkoutCmd );
 
         // Do inventory to find list of checkedout files
-        String[] inventory_cmd = new String[]{INVENTORY_CMD};
+        String[] inventoryCmd = new String[] { HgCommandConstants.INVENTORY_CMD };
         HgCheckOutConsumer consumer = new HgCheckOutConsumer( getLogger(), checkoutDir );
-        ScmResult result = HgUtils.execute( consumer, getLogger(), checkoutDir, inventory_cmd );
+        ScmResult result = HgUtils.execute( consumer, getLogger(), checkoutDir, inventoryCmd );
 
         return new CheckOutScmResult( consumer.getCheckedOutFiles(), result );
     }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutConsumer.java
index 3e81b41..89c9f90 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutConsumer.java
@@ -30,6 +30,7 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgCheckOutConsumer
     extends HgConsumer
@@ -45,6 +46,7 @@
         this.workingDirectory = workingDirectory;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String line )
     {
         File file = new File( workingDirectory, line );
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommand.java
index daba80d..a40d1b2 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommand.java
@@ -1,40 +1,45 @@
 package org.apache.maven.scm.provider.hg.command.diff;
 
 /*
- * Copyright 2001-2006 The Apache Software Foundation.
+ * 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
  *
- * 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
  *
- *      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.
+ * 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.
  */
 
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.diff.AbstractDiffCommand;
 import org.apache.maven.scm.command.diff.DiffScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgDiffCommand
     extends AbstractDiffCommand
-    implements HgCommand
+    implements Command
 {
-
+    /** {@inheritDoc} */
     protected DiffScmResult executeDiffCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                 ScmVersion startRevision, ScmVersion endRevision )
         throws ScmException
@@ -47,11 +52,11 @@
             {
                 revArg += ".." + endRevision;
             }
-            diffCmd = new String[]{DIFF_CMD, REVISION_OPTION, revArg};
+            diffCmd = new String[] { HgCommandConstants.DIFF_CMD, HgCommandConstants.REVISION_OPTION, revArg };
         }
         else
         {
-            diffCmd = new String[]{DIFF_CMD};
+            diffCmd = new String[] { HgCommandConstants.DIFF_CMD };
         }
 
         diffCmd = HgUtils.expandCommandLine( diffCmd, fileSet );
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffConsumer.java
index 9175809..884d024 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffConsumer.java
@@ -32,32 +32,33 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgDiffConsumer
     extends HgConsumer
 {
 
-    // private final static String MODIFIED_FILE_TOKEN = "=== modified file ";
+    // private static final String MODIFIED_FILE_TOKEN = "=== modified file ";
 
-    private final static String INDEX_TOKEN = "diff -r ";
+    private static final String INDEX_TOKEN = "diff -r ";
 
-    private final static String FILE_SEPARATOR_TOKEN = "===";
+    private static final String FILE_SEPARATOR_TOKEN = "===";
 
-    private final static String START_REVISION_TOKEN = "---";
+    private static final String START_REVISION_TOKEN = "---";
 
-    private final static String END_REVISION_TOKEN = "+++";
+    private static final String END_REVISION_TOKEN = "+++";
 
-    private final static String ADDED_LINE_TOKEN = "+";
+    private static final String ADDED_LINE_TOKEN = "+";
 
-    private final static String REMOVED_LINE_TOKEN = "-";
+    private static final String REMOVED_LINE_TOKEN = "-";
 
-    private final static String UNCHANGED_LINE_TOKEN = " ";
+    private static final String UNCHANGED_LINE_TOKEN = " ";
 
-    private final static String CHANGE_SEPARATOR_TOKEN = "@@";
+    private static final String CHANGE_SEPARATOR_TOKEN = "@@";
 
-    private final static String NO_NEWLINE_TOKEN = "\\ No newline at end of file";
+    private static final String NO_NEWLINE_TOKEN = "\\ No newline at end of file";
 
-    private final static int HASH_ID_LEN = 12;
+    private static final int HASH_ID_LEN = 12;
 
     private ScmLogger logger;
 
@@ -85,6 +86,7 @@
     // StreamConsumer Implementation
     // ----------------------------------------------------------------------
 
+    /** {@inheritDoc} */
     public void consumeLine( String line )
     {
         if ( line.startsWith( INDEX_TOKEN ) )
@@ -125,9 +127,9 @@
             // skip, though could parse to verify filename, end revision
             patch.append( line ).append( "\n" );
         }
-        else if ( line.startsWith( ADDED_LINE_TOKEN ) || line.startsWith( REMOVED_LINE_TOKEN ) ||
-            line.startsWith( UNCHANGED_LINE_TOKEN ) || line.startsWith( CHANGE_SEPARATOR_TOKEN ) ||
-            line.equals( NO_NEWLINE_TOKEN ) )
+        else if ( line.startsWith( ADDED_LINE_TOKEN ) || line.startsWith( REMOVED_LINE_TOKEN )
+            || line.startsWith( UNCHANGED_LINE_TOKEN ) || line.startsWith( CHANGE_SEPARATOR_TOKEN )
+            || line.equals( NO_NEWLINE_TOKEN ) )
         {
             // add to buffer
             currentDifference.append( line ).append( "\n" );
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListCommand.java
index 9b6eda4..388118b 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListCommand.java
@@ -1,14 +1,5 @@
 package org.apache.maven.scm.provider.hg.command.inventory;
 
-import org.apache.maven.scm.provider.hg.command.HgCommand;
-import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.ScmProviderRepository;
-import org.apache.maven.scm.command.list.AbstractListCommand;
-import org.apache.maven.scm.command.list.ListScmResult;
-import org.apache.maven.scm.*;
-
-import java.io.File;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -28,43 +19,67 @@
  * under the License.
  */
 
+import java.io.File;
+
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.Command;
+import org.apache.maven.scm.command.list.AbstractListCommand;
+import org.apache.maven.scm.command.list.ListScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.hg.HgUtils;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
+
 /**
  * Get a list of all files in the repository
- * 
+ *
  * @author <a href="mailto:ryan@darksleep.com">ryan daum</a>
+ * @version $Id$
  */
-public class HgListCommand extends AbstractListCommand
-        implements HgCommand 
+public class HgListCommand
+    extends AbstractListCommand
+    implements Command
 {
+    /** {@inheritDoc} */
+    protected ListScmResult executeListCommand( ScmProviderRepository repository, ScmFileSet fileSet,
+                                                boolean recursive, ScmVersion scmVersion )
+        throws ScmException
+    {
 
-    protected ListScmResult executeListCommand(ScmProviderRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion scmVersion) throws ScmException {
-
-        if ( fileSet.getFiles().length != 0 )
+        if ( fileSet.getFileList().size() != 0 )
         {
             throw new ScmException( "This provider doesn't support listing subsets of a directory" );
         }
         //
         File workingDir = fileSet.getBasedir();
 
-         // build the command
-        String[] listCmd = new String[]{STATUS_CMD, ALL_OPTION};
+        // build the command
+        String[] listCmd = new String[] { HgCommandConstants.STATUS_CMD, HgCommandConstants.ALL_OPTION };
 
         // keep the command about in string form for reporting
         StringBuffer cmd = new StringBuffer();
-        for (int i = 0; i < listCmd.length; i++) {
+        for ( int i = 0; i < listCmd.length; i++ )
+        {
             String s = listCmd[i];
-            cmd.append(s);
-            if (i < listCmd.length - 1)
-                cmd.append(" ");
+            cmd.append( s );
+            if ( i < listCmd.length - 1 )
+            {
+                cmd.append( " " );
+            }
         }
 
         HgListConsumer consumer = new HgListConsumer( getLogger() );
 
-        ScmResult result = HgUtils.execute( consumer, getLogger(), workingDir, listCmd);
+        ScmResult result = HgUtils.execute( consumer, getLogger(), workingDir, listCmd );
 
-        if (result.isSuccess()) {
-            return new ListScmResult(consumer.getFiles(), result);
-        } else {
+        if ( result.isSuccess() )
+        {
+            return new ListScmResult( consumer.getFiles(), result );
+        }
+        else
+        {
             throw new ScmException( "Error while executing command " + cmd.toString() );
         }
     }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListConsumer.java
index 8125a60..f0fcaf6 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgListConsumer.java
@@ -1,13 +1,5 @@
 package org.apache.maven.scm.provider.hg.command.inventory;
 
-import org.apache.maven.scm.provider.hg.command.HgConsumer;
-import org.apache.maven.scm.log.ScmLogger;
-import org.apache.maven.scm.ScmFileStatus;
-import org.apache.maven.scm.ScmFile;
-
-import java.util.List;
-import java.util.ArrayList;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -27,12 +19,23 @@
  * under the License.
  */
 
+import org.apache.maven.scm.provider.hg.command.HgConsumer;
+import org.apache.maven.scm.log.ScmLogger;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmFile;
+
+import java.util.List;
+import java.util.ArrayList;
+
 /**
  * Get a list of all files in the repository
  *
  * @author <a href="mailto:ryan@darksleep.com">ryan daum</a>
+ * @version $Id$
  */
-public class HgListConsumer extends HgConsumer {
+public class HgListConsumer
+    extends HgConsumer
+{
 
     private List files = new ArrayList();
 
@@ -41,12 +44,14 @@
         super( logger );
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
     {
-        files.add(new ScmFile(trimmedLine, status));
+        files.add( new ScmFile( trimmedLine, status ) );
     }
 
-    public List getFiles() {
+    public List getFiles()
+    {
         return files;
     }
 }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveCommand.java
index aaebde0..dd65507 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveCommand.java
@@ -22,26 +22,29 @@
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.remove.AbstractRemoveCommand;
 import org.apache.maven.scm.command.remove.RemoveScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 
 import java.io.File;
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgRemoveCommand
     extends AbstractRemoveCommand
-    implements HgCommand
+    implements Command
 {
+    /** {@inheritDoc} */
     protected ScmResult executeRemoveCommand( ScmProviderRepository repository, ScmFileSet fileSet, String message )
         throws ScmException
     {
 
-        String[] command = new String[]{REMOVE_CMD};
+        String[] command = new String[] { HgCommandConstants.REMOVE_CMD };
         HgUtils.expandCommandLine( command, fileSet );
 
         File workingDir = fileSet.getBasedir();
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveConsumer.java
index 68028ec..6098245 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/remove/HgRemoveConsumer.java
@@ -30,6 +30,7 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgRemoveConsumer
     extends HgConsumer
@@ -44,6 +45,7 @@
         this.workingDir = workingDir;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
     {
         if ( status != null && status == ScmFileStatus.DELETED )
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommand.java
index aeeffcc..2ef1f0f 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommand.java
@@ -19,23 +19,26 @@
  * under the License.
  */
 
+import java.io.File;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.status.AbstractStatusCommand;
 import org.apache.maven.scm.command.status.StatusScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 
-import java.io.File;
-
-/**
+/*
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * 
+ * @version $Id$
  */
 public class HgStatusCommand
     extends AbstractStatusCommand
-    implements HgCommand
+    implements Command
 {
 
     public HgStatusCommand()
@@ -43,13 +46,14 @@
         super();
     }
 
+    /** {@inheritDoc} */
     public StatusScmResult executeStatusCommand( ScmProviderRepository repo, ScmFileSet fileSet )
         throws ScmException
     {
 
         File workingDir = fileSet.getBasedir();
         HgStatusConsumer consumer = new HgStatusConsumer( getLogger(), workingDir );
-        String[] statusCmd = new String[]{STATUS_CMD};
+        String[] statusCmd = new String[] { HgCommandConstants.STATUS_CMD };
         ScmResult result = HgUtils.execute( consumer, getLogger(), workingDir, statusCmd );
 
         return new StatusScmResult( consumer.getStatus(), result );
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusConsumer.java
index 523262e..0efabd9 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/status/HgStatusConsumer.java
@@ -30,6 +30,7 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 class HgStatusConsumer
     extends HgConsumer
@@ -38,13 +39,13 @@
 
     private final File workingDir;
 
-
     HgStatusConsumer( ScmLogger logger, File workingDir )
     {
         super( logger );
         this.workingDir = workingDir;
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
     {
         //Only include real files (not directories)
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommand.java
index 128d15a..9482099 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommand.java
@@ -19,33 +19,42 @@
  * under the License.
  */
 
-import org.apache.maven.scm.*;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.tag.AbstractTagCommand;
 import org.apache.maven.scm.command.tag.TagScmResult;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.repository.HgScmProviderRepository;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 import org.apache.maven.scm.provider.hg.command.HgConsumer;
 import org.apache.maven.scm.provider.hg.command.inventory.HgListConsumer;
+import org.apache.maven.scm.provider.hg.repository.HgScmProviderRepository;
 import org.codehaus.plexus.util.StringUtils;
 
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ArrayList;
-
 /**
  * Tag
  *
  * @author <a href="mailto:ryan@darksleep.com">ryan daum</a>
+ * @version $Id$
  */
 public class HgTagCommand
-        extends AbstractTagCommand
-        implements HgCommand
+    extends AbstractTagCommand
+    implements Command
 {
-
-    protected ScmResult executeTagCommand(ScmProviderRepository scmProviderRepository, ScmFileSet fileSet, String tag, String message) throws ScmException {
+    /** {@inheritDoc} */
+    protected ScmResult executeTagCommand( ScmProviderRepository scmProviderRepository, ScmFileSet fileSet, String tag,
+                                           String message )
+        throws ScmException
+    {
 
         if ( tag == null || StringUtils.isEmpty( tag.trim() ) )
         {
@@ -59,56 +68,67 @@
 
         File workingDir = fileSet.getBasedir();
 
-
         // build the command
-        String[] tagCmd = new String[]{TAG_CMD, MESSAGE_OPTION, message, tag };
+        String[] tagCmd = new String[] { HgCommandConstants.TAG_CMD, HgCommandConstants.MESSAGE_OPTION, message, tag };
 
         // keep the command about in string form for reporting
-        StringBuffer cmd = joinCmd(tagCmd);
+        StringBuffer cmd = joinCmd( tagCmd );
 
         HgTagConsumer consumer = new HgTagConsumer( getLogger() );
-        ScmResult result = HgUtils.execute( consumer, getLogger(), workingDir, tagCmd);
+        ScmResult result = HgUtils.execute( consumer, getLogger(), workingDir, tagCmd );
         HgScmProviderRepository repository = (HgScmProviderRepository) scmProviderRepository;
-        if (result.isSuccess()) {
+        if ( result.isSuccess() )
+        {
             // now push
             // Push to parent branch if any
             if ( !repository.getURI().equals( fileSet.getBasedir().getAbsolutePath() ) )
             {
-                String[] push_cmd = new String[]{HgCommand.PUSH_CMD, repository.getURI()};
-                result = HgUtils.execute( new HgConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), push_cmd );
+                String[] pushCmd = new String[] { HgCommandConstants.PUSH_CMD, repository.getURI() };
+                result = HgUtils.execute( new HgConsumer( getLogger() ), getLogger(), fileSet.getBasedir(), pushCmd );
             }
-        } else {
+        }
+        else
+        {
             throw new ScmException( "Error while executing command " + cmd.toString() );
         }
 
         // do an inventory to return the files tagged (all of them)
-        String[] list_cmd = new String[]{HgCommand.INVENTORY_CMD};
-        HgListConsumer listconsumer = new HgListConsumer(getLogger());
-        result =  HgUtils.execute(listconsumer, getLogger(), fileSet.getBasedir(), list_cmd);
-        if (result.isSuccess()) {
+        String[] listCmd = new String[] { HgCommandConstants.INVENTORY_CMD };
+        HgListConsumer listconsumer = new HgListConsumer( getLogger() );
+        result = HgUtils.execute( listconsumer, getLogger(), fileSet.getBasedir(), listCmd );
+        if ( result.isSuccess() )
+        {
             List files = listconsumer.getFiles();
             ArrayList fileList = new ArrayList();
             for ( Iterator i = files.iterator(); i.hasNext(); )
             {
                 ScmFile f = (ScmFile) i.next();
 
-                if (!f.getPath().endsWith(".hgtags"))
+                if ( !f.getPath().endsWith( ".hgtags" ) )
+                {
                     fileList.add( new ScmFile( f.getPath(), ScmFileStatus.TAGGED ) );
+                }
             }
 
-            return new TagScmResult(fileList, result);
-        } else {
+            return new TagScmResult( fileList, result );
+        }
+        else
+        {
             throw new ScmException( "Error while executing command " + cmd.toString() );
         }
     }
 
-    private StringBuffer joinCmd(String[] cmd) {
+    private StringBuffer joinCmd( String[] cmd )
+    {
         StringBuffer result = new StringBuffer();
-        for (int i = 0; i < cmd.length; i++) {
+        for ( int i = 0; i < cmd.length; i++ )
+        {
             String s = cmd[i];
-            result.append(s);
-            if (i < cmd.length - 1)
-                result.append(" ");
+            result.append( s );
+            if ( i < cmd.length - 1 )
+            {
+                result.append( " " );
+            }
         }
         return result;
     }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagConsumer.java
index bed400c..7d6be59 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/tag/HgTagConsumer.java
@@ -25,6 +25,7 @@
 
 /**
  * @author <a href="mailto:ryan@darksleep.com">ryan daum</a>
+ * @version $Id$
  */
 public class HgTagConsumer
         extends HgConsumer
@@ -34,8 +35,8 @@
         super( logger );
     }
 
+    /** {@inheritDoc} */
     public void doConsume( ScmFileStatus status, String trimmedLine )
-    {       
+    {
     }
-
 }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java
index 46a84a9..c4b2dba 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommand.java
@@ -19,47 +19,51 @@
  * under the License.
  */
 
-import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.ScmFile;
-import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.ScmFileStatus;
-import org.apache.maven.scm.ScmResult;
-import org.apache.maven.scm.ScmVersion;
-import org.apache.maven.scm.command.changelog.ChangeLogCommand;
-import org.apache.maven.scm.command.update.AbstractUpdateCommand;
-import org.apache.maven.scm.command.update.UpdateScmResult;
-import org.apache.maven.scm.command.update.UpdateScmResultWithRevision;
-import org.apache.maven.scm.provider.ScmProviderRepository;
-import org.apache.maven.scm.provider.hg.HgUtils;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
-import org.apache.maven.scm.provider.hg.command.HgConsumer;
-import org.apache.maven.scm.provider.hg.command.changelog.HgChangeLogCommand;
-import org.apache.maven.scm.provider.hg.command.diff.HgDiffConsumer;
-import org.codehaus.plexus.util.StringUtils;
-
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.Command;
+import org.apache.maven.scm.command.changelog.ChangeLogCommand;
+import org.apache.maven.scm.command.update.AbstractUpdateCommand;
+import org.apache.maven.scm.command.update.UpdateScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResultWithRevision;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.hg.HgUtils;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
+import org.apache.maven.scm.provider.hg.command.HgConsumer;
+import org.apache.maven.scm.provider.hg.command.changelog.HgChangeLogCommand;
+import org.apache.maven.scm.provider.hg.command.diff.HgDiffConsumer;
+import org.codehaus.plexus.util.StringUtils;
+
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgUpdateCommand
     extends AbstractUpdateCommand
-    implements HgCommand
+    implements Command
 {
-
+    /** {@inheritDoc} */
     protected UpdateScmResult executeUpdateCommand( ScmProviderRepository repo, ScmFileSet fileSet, ScmVersion tag )
         throws ScmException
     {
         File workingDir = fileSet.getBasedir();
 
         // Update branch
-        String[] update_cmd = new String[]{HgCommand.PULL_CMD, REVISION_OPTION,
-            tag != null && !StringUtils.isEmpty( tag.getName() ) ? tag.getName() : "tip"};
-        ScmResult updateResult = HgUtils.execute( new HgConsumer( getLogger() ), getLogger(), workingDir, update_cmd );
+        String[] updateCmd = new String[] {
+            HgCommandConstants.PULL_CMD,
+            HgCommandConstants.REVISION_OPTION,
+            tag != null && !StringUtils.isEmpty( tag.getName() ) ? tag.getName() : "tip" };
+        ScmResult updateResult = HgUtils.execute( new HgConsumer( getLogger() ), getLogger(), workingDir, updateCmd );
 
         if ( !updateResult.isSuccess() )
         {
@@ -69,7 +73,10 @@
         // Find changes from last revision
         int currentRevision = HgUtils.getCurrentRevisionNumber( getLogger(), workingDir );
         int previousRevision = currentRevision - 1;
-        String[] diffCmd = new String[]{DIFF_CMD, REVISION_OPTION, "" + previousRevision};
+        String[] diffCmd = new String[] {
+            HgCommandConstants.DIFF_CMD,
+            HgCommandConstants.REVISION_OPTION,
+            "" + previousRevision };
         HgDiffConsumer diffConsumer = new HgDiffConsumer( getLogger(), workingDir );
         ScmResult diffResult = HgUtils.execute( diffConsumer, getLogger(), workingDir, diffCmd );
 
@@ -95,7 +102,6 @@
         return new UpdateScmResultWithRevision( updatedFiles, changes, String.valueOf( currentRevision ), diffResult );
     }
 
-
     protected ChangeLogCommand getChangeLogCommand()
     {
         HgChangeLogCommand command = new HgChangeLogCommand();
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java
index ce390f2..c80eaa7 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java
@@ -26,6 +26,7 @@
 
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
+ * @version $Id$
  */
 public class HgScmProviderRepository
     extends ScmProviderRepositoryWithHost
@@ -58,8 +59,8 @@
 
     public String getURI()
     {
-        return protocol + ( needsAuthentication() ? addUser() + addPassword() + addAt() : "" ) + addHost() + addPort() +
-            addPath();
+        return protocol + ( needsAuthentication() ? addUser() + addPassword() + addAt() : "" ) + addHost()
+            + addPort() + addPath();
     }
 
     /**
@@ -93,8 +94,9 @@
 
         if ( msg != null )
         {
-            msg = "Something could be wrong about the repository URL: " + orgUrl + "\nReason: " + msg +
-                "\nCheck http://maven.apache.org/scm for usage and hints.";
+            msg =
+                "Something could be wrong about the repository URL: " + orgUrl + "\nReason: " + msg
+                    + "\nCheck http://maven.apache.org/scm for usage and hints.";
         }
         return msg;
     }
@@ -142,35 +144,29 @@
     {
         if ( protocol != FILE )
         {
-            String[] split = url.split( ":" );
-            if ( split.length == 2 )
+            int indexSlash = url.indexOf( "/" );
+
+            String hostPort = url;
+            if ( indexSlash > 0 )
             {
-                setHost( split[0] );
-                url = url.substring( split[0].length() + 1 );
-                split = split[1].split( "/" );
-                if ( split.length == 2 )
-                {
-                    url = url.substring( split[0].length() );
-                    try
-                    {
-                        setPort( Integer.valueOf( split[0] ).intValue() );
-                    }
-                    catch ( NumberFormatException e )
-                    {
-                        //Ignore - error will manifest itself later.
-                    }
-                }
+                hostPort = url.substring( 0, indexSlash );
+            }
+
+            int indexColon = hostPort.indexOf( ":" );
+            if ( indexColon > 0 )
+            {
+                setHost( hostPort.substring( 0, indexColon ) );
+                url = StringUtils.replace( url, getHost(), "" );
+                setPort( Integer.parseInt( hostPort.substring( indexColon + 1 ) ) );
+                url = StringUtils.replace( url, ":" + getPort(), "" );
             }
             else
             {
-                split = url.split( "/" );
-                if ( split.length > 1 )
-                {
-                    url = url.substring( split[0].length() );
-                    setHost( split[0] );
-                }
+                setHost( hostPort );
+                url = StringUtils.replace( url, getHost(), "" );
             }
         }
+
         return url;
     }
 
@@ -254,9 +250,11 @@
         return protocol == SFTP || protocol == FTP || protocol == HTTPS || protocol == AFTP;
     }
 
+    /** {@inheritDoc} */
     public String toString()
     {
-        return "Hg Repository Interpreted from: " + orgUrl + ":\nProtocol: " + protocol + "\nHost: " + getHost() +
-            "\nPort: " + getPort() + "\nUsername: " + getUser() + "\nPassword: " + getPassword() + "\nPath: " + path;
+        return "Hg Repository Interpreted from: " + orgUrl + ":\nProtocol: " + protocol + "\nHost: " + getHost()
+            + "\nPort: " + getPort() + "\nUsername: " + getUser() + "\nPassword: " + getPassword() + "\nPath: "
+            + path;
     }
 }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/site/site.xml b/maven-scm-providers/maven-scm-provider-hg/src/site/site.xml
new file mode 100644
index 0000000..206b0c4
--- /dev/null
+++ b/maven-scm-providers/maven-scm-provider-hg/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM HG Provider">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java
index e66c37b..70de372 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java
@@ -21,7 +21,7 @@
 
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
-import org.apache.maven.scm.provider.hg.command.HgCommand;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -78,7 +78,7 @@
         }
 
         // Init repository
-        String[] init_cmd = new String[]{HgCommand.INIT_CMD};
+        String[] init_cmd = new String[]{HgCommandConstants.INIT_CMD};
         HgUtils.execute( WORKING_DIR, init_cmd );
 
         // Create and add files to repository
@@ -102,7 +102,7 @@
         }
 
         //Add to repository
-        String[] add_cmd = new String[]{HgCommand.ADD_CMD};
+        String[] add_cmd = new String[]{HgCommandConstants.ADD_CMD};
         ScmFileSet filesToAdd = new ScmFileSet( new File( "" ), files );
         add_cmd = HgUtils.expandCommandLine( add_cmd, filesToAdd );
         ScmResult result = HgUtils.execute( WORKING_DIR, add_cmd );
@@ -114,7 +114,7 @@
         }
 
         // Commit the initial repository
-        String[] commit_cmd = new String[]{HgCommand.COMMIT_CMD, HgCommand.MESSAGE_OPTION, COMMIT_MESSAGE};
+        String[] commit_cmd = new String[]{HgCommandConstants.COMMIT_CMD, HgCommandConstants.MESSAGE_OPTION, COMMIT_MESSAGE};
         result = HgUtils.execute( WORKING_DIR, commit_cmd );
         if ( !result.isSuccess() )
         {
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java
index eccd310..f5b5cc2 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java
@@ -63,19 +63,19 @@
         String url = "ssh://username:password@myhost.com/~/dev/maven";
         HgScmProviderRepository repo = new HgScmProviderRepository( url );
         assertEquals( url, repo.getURI() );
-        //assertNull( repo.validateURI() );
+        assertNull( repo.validateURI() );
 
         //2. Test with absolute path
         url = "ssh://username:password@myhost.com/home/username/dev/maven";
         repo = new HgScmProviderRepository( url );
         assertEquals( url, repo.getURI() );
-        //assertNull( repo.validateURI() );
+        assertNull( repo.validateURI() );
 
         //3. Test with passwordless (Public-key auth)
         String incompleteUrl = "ssh://username@myhost.com/home/username/dev/maven";
         repo = new HgScmProviderRepository( incompleteUrl );
-        assertEquals( incompleteUrl, repo.getURI() ); //T
-        //assertNull( repo.validateURI() );
+        assertEquals( incompleteUrl, repo.getURI() );
+        assertNull( repo.validateURI() );
     }
 
     public void testHTTPRepo()
@@ -84,24 +84,45 @@
         //1. Test with relativ path
         String url = "http://www.myhost.com/~username/dev/maven";
         HgScmProviderRepository repo = new HgScmProviderRepository( url );
-        //assertEquals( url, repo.getURI() );
-        //assertNull( repo.validateURI() );
+        assertEquals( url, repo.getURI() );
+        assertNull( repo.validateURI() );
 
         //2. Test with absolute path
         url = "http://www.myhost.com/dev/maven";
         repo = new HgScmProviderRepository( url );
         assertEquals( url, repo.getURI() );
-        //assertNull( repo.validateURI() );
+        assertNull( repo.validateURI() );
 
         //3. Test with unessesary authentication information
         repo.setPassword( "Password" );
         repo.setUser( "User" );
         repo.setPassphrase( "Passphrase" );
         assertEquals( "http://www.myhost.com/dev/maven", repo.getURI() );
-        //assertNull( repo.validateURI() );
+        assertNull( repo.validateURI() );
         repo.setPort( 81 );
-        //assertEquals( "http://www.myhost.com:81/dev/maven", repo.getURI() );
-        //assertNull( repo.validateURI() );
+        assertEquals( "http://www.myhost.com:81/dev/maven", repo.getURI() );
+        assertNull( repo.validateURI() );
         assertTrue( true );
     }
+
+    /**
+     * Test SCM-391
+     *
+     * @throws Exception
+     */
+    public void testParseHostAndPort()
+        throws Exception
+    {
+        String url = "http://localhost:8000/";
+        HgScmProviderRepository repo = new HgScmProviderRepository( url );
+        assertEquals( repo.getURI(), url );
+
+        url = "http://localhost/";
+        repo = new HgScmProviderRepository( url );
+        assertEquals( repo.getURI(), url );
+
+        url = "http://www.myhost.com:81/dev/maven";
+        repo = new HgScmProviderRepository( url );
+        assertEquals( repo.getURI(), url );
+    }
 }
\ No newline at end of file
diff --git a/maven-scm-providers/maven-scm-provider-local/pom.xml b/maven-scm-providers/maven-scm-provider-local/pom.xml
index 7161775..c6d191e 100644
--- a/maven-scm-providers/maven-scm-provider-local/pom.xml
+++ b/maven-scm-providers/maven-scm-provider-local/pom.xml
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
   ~ 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
@@ -18,15 +20,19 @@
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
   <parent>
-    <artifactId>maven-scm-providers</artifactId>
     <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm-providers</artifactId>
     <version>1.1</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
+
   <artifactId>maven-scm-provider-local</artifactId>
+
   <name>Maven SCM Local Provider</name>
-  <version>1.1</version>
+  <description>SCM Provider implementation for Local.</description>
+
   <build>
     <plugins>
       <plugin>
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java
index 43ad89c..4bb78a2 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java
@@ -51,11 +51,13 @@
 public class LocalScmProvider
     extends AbstractScmProvider
 {
+    /** {@inheritDoc} */
     public String getScmType()
     {
         return "local";
     }
 
+    /** {@inheritDoc} */
     public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
         throws ScmRepositoryException
     {
@@ -63,9 +65,8 @@
 
         if ( tokens.length != 2 )
         {
-            throw new ScmRepositoryException(
-                "The connection string didn't contain the expected number of tokens. Expected 2 tokens but got " +
-                    tokens.length + " tokens." );
+            throw new ScmRepositoryException( "The connection string didn't contain the expected number of tokens. "
+                + "Expected 2 tokens but got " + tokens.length + " tokens." );
         }
 
         // ----------------------------------------------------------------------
@@ -134,9 +135,7 @@
         return module;
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public AddScmResult add( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -147,6 +146,7 @@
         return (AddScmResult) command.execute( repository, fileSet, parameters );
     }
 
+    /** {@inheritDoc} */
     protected ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet,
                                             CommandParameters parameters )
         throws ScmException
@@ -158,9 +158,7 @@
         return (ChangeLogScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet,
                                      CommandParameters parameters )
         throws ScmException
@@ -172,9 +170,7 @@
         return (CheckInScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet,
                                        CommandParameters parameters )
         throws ScmException
@@ -186,18 +182,7 @@
         return (CheckOutScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * List each element (files and directories) of <B>fileSet</B> as they exist in the repository.
-     *
-     * @param repository the source control system
-     * @param fileSet    the files to list
-     * @param parameters
-     * @return The list of files in the repository
-     * @throws org.apache.maven.scm.NoSuchCommandScmException
-     *          unless overriden by subclass
-     * @throws org.apache.maven.scm.ScmException
-     *
-     */
+    /** {@inheritDoc} */
     protected ListScmResult list( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
@@ -208,9 +193,7 @@
         return (ListScmResult) command.execute( repository, fileSet, parameters );
     }
 
-    /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.provider.ScmProviderRepository,org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.CommandParameters)
-     */
+    /** {@inheritDoc} */
     public UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java
index a5a49f9..be5e6b5 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java
@@ -42,6 +42,7 @@
     extends AbstractAddCommand
     implements LocalCommand
 {
+    /** {@inheritDoc} */
     protected ScmResult executeAddCommand( ScmProviderRepository repository, ScmFileSet fileSet, String message,
                                            boolean binary )
         throws ScmException
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java
index c7873ba..57c9aed 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java
@@ -46,6 +46,7 @@
 public class LocalChangeLogCommand
     extends AbstractChangeLogCommand
 {
+    /** {@inheritDoc} */
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet,
                                                           Date startDate, Date endDate, ScmBranch branch,
                                                           String datePattern )
@@ -129,6 +130,7 @@
                             {
                                 if ( endDate.after( modifiedDate ) || endDate.equals( modifiedDate ) )
                                 {
+                                    // nop
                                 }
                                 else
                                 {
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java
index cfcc9a8..14ca49b 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java
@@ -47,6 +47,7 @@
     extends AbstractCheckInCommand
     implements LocalCommand
 {
+    /** {@inheritDoc} */
     protected CheckInScmResult executeCheckInCommand( ScmProviderRepository repo, ScmFileSet fileSet, String message,
                                                       ScmVersion version )
         throws ScmException
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkout/LocalCheckOutCommand.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkout/LocalCheckOutCommand.java
index a171c99..b161f77 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkout/LocalCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkout/LocalCheckOutCommand.java
@@ -47,6 +47,7 @@
     extends AbstractCheckOutCommand
     implements LocalCommand
 {
+    /** {@inheritDoc} */
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                         ScmVersion version )
         throws ScmException
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java
index 97a4c44..122eb55 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java
@@ -42,16 +42,7 @@
 public class LocalListCommand
     extends AbstractListCommand
 {
-    /**
-     * List contents of the remote repository
-     *
-     * @param repo      what to list
-     * @param fileSet   the files to list
-     * @param recursive whether list should return subfolder listing
-     * @return the list of files
-     * @throws org.apache.maven.scm.ScmException
-     *
-     */
+    /** {@inheritDoc} */
     protected ListScmResult executeListCommand( ScmProviderRepository repo, ScmFileSet fileSet, boolean recursive,
                                                 ScmVersion version )
         throws ScmException
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java
index 72227a3..6821d73 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java
@@ -1,5 +1,24 @@
 package org.apache.maven.scm.provider.local.command.list;
 
+/*
+ * 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.
+ */
+
 import org.apache.maven.scm.command.list.ListScmResult;
 
 import java.util.List;
@@ -13,6 +32,6 @@
 {
     public LocalListScmResult( String commandLine, List files )
     {
-        super( commandLine, files);
+        super( commandLine, files );
     }
 }
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
index 7b4bf88..07daaad 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
@@ -49,6 +49,7 @@
     extends AbstractUpdateCommand
     implements LocalCommand
 {
+    /** {@inheritDoc} */
     protected UpdateScmResult executeUpdateCommand( ScmProviderRepository repo, ScmFileSet fileSet, ScmVersion version )
         throws ScmException
     {
@@ -85,8 +86,8 @@
 
         if ( !baseDestination.exists() && !baseDestination.isDirectory() )
         {
-            throw new ScmException( "The destination directory isn't a directory or doesn't exist (" +
-                baseDestination.getAbsolutePath() + ")." );
+            throw new ScmException( "The destination directory isn't a directory or doesn't exist ("
+                + baseDestination.getAbsolutePath() + ")." );
         }
 
         List updatedFiles;
@@ -199,9 +200,7 @@
         return updatedFiles;
     }
 
-    /**
-     * @see org.apache.maven.scm.command.update.AbstractUpdateCommand#getChangeLogCommand()
-     */
+    /** {@inheritDoc} */
     protected ChangeLogCommand getChangeLogCommand()
     {
         return new LocalChangeLogCommand();
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/metadata/LocalScmMetadataUtils.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/metadata/LocalScmMetadataUtils.java
index db63da0..14e1a7d 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/metadata/LocalScmMetadataUtils.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/metadata/LocalScmMetadataUtils.java
@@ -56,6 +56,10 @@
 
     /**
      * Builds LocalScmMetadata based on contents of repository
+     *
+     * @param repository
+     * @return
+     * @throws IOException if any
      */
     public LocalScmMetadata buildMetadata( File repository )
         throws IOException
@@ -68,6 +72,10 @@
 
     /**
      * Writes metadata file
+     *
+     * @param destinationDir
+     * @param metadata
+     * @throws IOException if any
      */
     public void writeMetadata( File destinationDir, LocalScmMetadata metadata )
         throws IOException
diff --git a/maven-scm-providers/maven-scm-provider-local/src/site/site.xml b/maven-scm-providers/maven-scm-provider-local/src/site/site.xml
new file mode 100644
index 0000000..aa27ae3
--- /dev/null
+++ b/maven-scm-providers/maven-scm-provider-local/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ 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.
+  -->
+
+<project name="Maven SCM Local Provider">
+  <body>
+    <menu ref="parent" />
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+    </menu>
+
+    <menu ref="reports" inherit="bottom" />
+  </body>
+</project>
diff --git a/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommandTckTest.java b/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommandTckTest.java
index a62162c..7425838 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommandTckTest.java
@@ -30,7 +30,7 @@
 public class LocalCheckInCommandTckTest
     extends CheckInCommandTckTest
 {
-    private final static String moduleName = "checkin-tck";
+    private static final String moduleName = "checkin-tck";
 
     public String getScmUrl()
         throws Exception
diff --git a/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommandTckTest.java b/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommandTckTest.java
index e50975c..940119b 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommandTckTest.java
@@ -47,7 +47,7 @@
 public class LocalUpdateCommandTckTest
     extends UpdateCommandTckTest
 {
-    private final static String moduleName = "update-tck";
+    private static final String moduleName = "update-tck";
 
     public String getScmUrl()
         throws Exception
diff --git a/maven-scm-providers/maven-scm-provider-perforce/LICENSE.txt b/maven-scm-providers/maven-scm-provider-perforce/LICENSE.txt
deleted file mode 100644
index d645695..0000000
--- a/maven-scm-providers/maven-scm-provider-perforce/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file