// Path: src/main/java/com/redhat/rcm/maven/plugin/buildmetadata/scm/ScmException.java
// public class ScmException extends RuntimeException
// {
//   // ********************************* Fields *********************************
// 
//   // --- constants ------------------------------------------------------------
// 
//   /**
//    * The class version identifier.
//    * <p>
//    * The value of this constant is {@value}.
//    */
//   private static final long serialVersionUID = 1L;
// 
//   // --- members --------------------------------------------------------------
// 
//   // ****************************** Initializer *******************************
// 
//   // ****************************** Constructors ******************************
// 
//   /**
//    * Default Constructor.
//    *
//    * @param message the detail message (which is saved for later retrieval by
//    *          the {@link #getMessage()} method).
//    * @param cause the cause (which is saved for later retrieval by the
//    *          {@link #getCause()} method). (A <tt>null</tt> value is permitted,
//    *          and indicates that the cause is nonexistent or unknown.)
//    * @see java.lang.RuntimeException#RuntimeException(java.lang.String,
//    *      java.lang.Throwable)
//    */
//   public ScmException(final String message, final Throwable cause)
//   {
//     super(message, cause);
//   }
// 
//   /**
//    * Convenience constructor providing no cause.
//    *
//    * @param message the detail message. The detail message is saved for later
//    *          retrieval by the {@link #getMessage()} method.
//    * @see java.lang.RuntimeException#RuntimeException(java.lang.String)
//    */
//   public ScmException(final String message)
//   {
//     super(message);
//   }
// 
//   /**
//    * Convenience constructor providing no message.
//    *
//    * @param cause the cause (which is saved for later retrieval by the
//    *          {@link #getCause()} method). (A <tt>null</tt> value is permitted,
//    *          and indicates that the cause is nonexistent or unknown.)
//    * @see java.lang.RuntimeException#RuntimeException(java.lang.Throwable)
//    */
//   public ScmException(final Throwable cause)
//   {
//     super(cause);
//   }
// 
//   // ****************************** Inner Classes *****************************
// 
//   // ********************************* Methods ********************************
// 
//   // --- init -----------------------------------------------------------------
// 
//   // --- get&set --------------------------------------------------------------
// 
//   // --- business -------------------------------------------------------------
// 
//   // --- object basics --------------------------------------------------------
// 
// }


import java.io.Serializable;
import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.provider.ScmProviderRepository;
import org.apache.maven.scm.provider.ScmProviderRepositoryWithHost;
import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
import org.apache.maven.scm.repository.ScmRepository;
import org.codehaus.plexus.util.StringUtils;
import com.redhat.rcm.maven.plugin.buildmetadata.scm.ScmException;
  {
    return remoteVersion;
  }

  /**
   * Sets the branch or tag version on the remote server to compare against. If
   * <code>null</code>, the SCM status will be used to determine the
   * differences.
   *
   * @param remoteVersion the branch or tag version on the remote server to
   *          compare against.
   */
  public void setRemoteVersion(final ScmVersion remoteVersion)
  {
    this.remoteVersion = remoteVersion;
  }

  // --- business -------------------------------------------------------------

  /**
   * Creates and configures the SCM repository.
   *
   * @param scmManager the manager to create the repository dependent on the
   *          {@link #getConnectionUrl() connection URL}.
   * @return the repository implementation to connect to the SCM system.
   * @throws ScmException if the repository implementation cannot be created or
   *           configured. This happens especially if no provider exists for the
   *           given connection URL.
   */
  public ScmRepository createRepository(final ScmManager scmManager)
// Path: src/main/java/com/redhat/rcm/maven/plugin/buildmetadata/scm/ScmException.java
// public class ScmException extends RuntimeException
// {
//   // ********************************* Fields *********************************
// 
//   // --- constants ------------------------------------------------------------
// 
//   /**
//    * The class version identifier.
//    * <p>
//    * The value of this constant is {@value}.
//    */
//   private static final long serialVersionUID = 1L;
// 
//   // --- members --------------------------------------------------------------
// 
//   // ****************************** Initializer *******************************
// 
//   // ****************************** Constructors ******************************
// 
//   /**
//    * Default Constructor.
//    *
//    * @param message the detail message (which is saved for later retrieval by
//    *          the {@link #getMessage()} method).
//    * @param cause the cause (which is saved for later retrieval by the
//    *          {@link #getCause()} method). (A <tt>null</tt> value is permitted,
//    *          and indicates that the cause is nonexistent or unknown.)
//    * @see java.lang.RuntimeException#RuntimeException(java.lang.String,
//    *      java.lang.Throwable)
//    */
//   public ScmException(final String message, final Throwable cause)
//   {
//     super(message, cause);
//   }
// 
//   /**
//    * Convenience constructor providing no cause.
//    *
//    * @param message the detail message. The detail message is saved for later
//    *          retrieval by the {@link #getMessage()} method.
//    * @see java.lang.RuntimeException#RuntimeException(java.lang.String)
//    */
//   public ScmException(final String message)
//   {
//     super(message);
//   }
// 
//   /**
//    * Convenience constructor providing no message.
//    *
//    * @param cause the cause (which is saved for later retrieval by the
//    *          {@link #getCause()} method). (A <tt>null</tt> value is permitted,
//    *          and indicates that the cause is nonexistent or unknown.)
//    * @see java.lang.RuntimeException#RuntimeException(java.lang.Throwable)
//    */
//   public ScmException(final Throwable cause)
//   {
//     super(cause);
//   }
// 
//   // ****************************** Inner Classes *****************************
// 
//   // ********************************* Methods ********************************
// 
//   // --- init -----------------------------------------------------------------
// 
//   // --- get&set --------------------------------------------------------------
// 
//   // --- business -------------------------------------------------------------
// 
//   // --- object basics --------------------------------------------------------
// 
// }


// Path: src/main/java/com/redhat/rcm/maven/plugin/buildmetadata/scm/maven/ScmConnectionInfo.java
import java.io.Serializable;
import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.provider.ScmProviderRepository;
import org.apache.maven.scm.provider.ScmProviderRepositoryWithHost;
import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
import org.apache.maven.scm.repository.ScmRepository;
import org.codehaus.plexus.util.StringUtils;
import com.redhat.rcm.maven.plugin.buildmetadata.scm.ScmException;

  {
    return remoteVersion;
  }

  /**
   * Sets the branch or tag version on the remote server to compare against. If
   * <code>null</code>, the SCM status will be used to determine the
   * differences.
   *
   * @param remoteVersion the branch or tag version on the remote server to
   *          compare against.
   */
  public void setRemoteVersion(final ScmVersion remoteVersion)
  {
    this.remoteVersion = remoteVersion;
  }

  // --- business -------------------------------------------------------------

  /**
   * Creates and configures the SCM repository.
   *
   * @param scmManager the manager to create the repository dependent on the
   *          {@link #getConnectionUrl() connection URL}.
   * @return the repository implementation to connect to the SCM system.
   * @throws ScmException if the repository implementation cannot be created or
   *           configured. This happens especially if no provider exists for the
   *           given connection URL.
   */
  public ScmRepository createRepository(final ScmManager scmManager)
    throws ScmException