Class Verifier

java.lang.Object
org.apache.maven.it.Verifier

public class Verifier extends Object
  • Field Details

    • LOG_FILENAME

      private static final String LOG_FILENAME
      See Also:
    • DEFAULT_CLI_OPTIONS

      private static final String[] DEFAULT_CLI_OPTIONS
    • localRepo

      private String localRepo
    • basedir

      private final String basedir
    • outStream

      private final ByteArrayOutputStream outStream
    • errStream

      private final ByteArrayOutputStream errStream
    • defaultCliOptions

      private final String[] defaultCliOptions
    • originalOut

      private PrintStream originalOut
    • originalErr

      private PrintStream originalErr
    • cliOptions

      private List<String> cliOptions
    • systemProperties

      private Properties systemProperties
    • environmentVariables

      private Map<String,String> environmentVariables
    • verifierProperties

      private Properties verifierProperties
    • autoclean

      private boolean autoclean
    • localRepoLayout

      private String localRepoLayout
    • debug

      private boolean debug
    • forkJvm

      private Boolean forkJvm
    • logFileName

      private String logFileName
    • defaultMavenHome

      private String defaultMavenHome
    • defaultClassworldConf

      private String defaultClassworldConf
    • defaultClasspath

      private String defaultClasspath
    • mavenDebug

      private boolean mavenDebug
    • forkMode

      private String forkMode
    • debugJvm

      private boolean debugJvm
    • embeddedLauncher

      private static MavenLauncher embeddedLauncher
    • MARKER

      private static final String MARKER
      See Also:
  • Constructor Details

  • Method Details

    • findDefaultMavenHome

      private void findDefaultMavenHome() throws VerificationException
      Throws:
      VerificationException
    • setLocalRepo

      public void setLocalRepo(String localRepo)
    • resetStreams

      public void resetStreams()
    • displayStreamBuffers

      public void displayStreamBuffers()
    • verify

      public void verify(boolean chokeOnErrorOutput) throws VerificationException
      Throws:
      VerificationException
    • verifyErrorFreeLog

      public void verifyErrorFreeLog() throws VerificationException
      Throws:
      VerificationException
    • isVelocityError

      private static boolean isVelocityError(String line)
      Checks whether the specified line is just an error message from Velocity. Especially old versions of Doxia employ a very noisy Velocity instance.
      Parameters:
      line - The log line to check, must not be null.
      Returns:
      true if the line appears to be a Velocity error, false otherwise.
    • verifyTextInLog

      public void verifyTextInLog(String text) throws VerificationException
      Throws an exception if the text is not present in the log.
      Parameters:
      text - the text to assert present
      Throws:
      VerificationException - if text is not found in log
    • stripAnsi

      public static String stripAnsi(String msg)
    • loadProperties

      public Properties loadProperties(String filename) throws VerificationException
      Throws:
      VerificationException
    • loadLines

      public List<String> loadLines(String filename, String encoding) throws IOException
      Loads the (non-empty) lines of the specified text file.
      Parameters:
      filename - The path to the text file to load, relative to the base directory, must not be null.
      encoding - The character encoding of the file, may be null or empty to use the platform default encoding.
      Returns:
      The list of (non-empty) lines from the text file, can be empty but never null.
      Throws:
      IOException - If the file could not be loaded.
      Since:
      1.2
    • getReader

      private BufferedReader getReader(String filename, String encoding) throws IOException
      Throws:
      IOException
    • loadFile

      public List<String> loadFile(String basedir, String filename, boolean hasCommand) throws VerificationException
      Throws:
      VerificationException
    • loadFile

      public List<String> loadFile(File file, boolean hasCommand) throws VerificationException
      Throws:
      VerificationException
    • replaceArtifacts

      private List<String> replaceArtifacts(String line, boolean hasCommand)
    • addMetadataToList

      private static void addMetadataToList(File dir, boolean hasCommand, List<String> l, String command)
    • getArtifactPath

      private String getArtifactPath(String artifact)
    • getArtifactPath

      public String getArtifactPath(String org, String name, String version, String ext)
    • getArtifactPath

      public String getArtifactPath(String gid, String aid, String version, String ext, String classifier)
      Returns the absolute path to the artifact denoted by groupId, artifactId, version, extension and classifier.
      Parameters:
      gid - The groupId, must not be null.
      aid - The artifactId, must not be null.
      version - The version, must not be null.
      ext - The extension, must not be null.
      classifier - The classifier, may be null to be omitted.
      Returns:
      the absolute path to the artifact denoted by groupId, artifactId, version, extension and classifier, never null.
    • getArtifactFileNameList

      public List<String> getArtifactFileNameList(String org, String name, String version, String ext)
    • getArtifactMetadataPath

      public String getArtifactMetadataPath(String gid, String aid, String version)
      Gets the path to the local artifact metadata. Note that the method does not check whether the returned path actually points to existing metadata.
      Parameters:
      gid - The group id, must not be null.
      aid - The artifact id, must not be null.
      version - The artifact version, may be null.
      Returns:
      The (absolute) path to the local artifact metadata, never null.
    • getArtifactMetadataPath

      public String getArtifactMetadataPath(String gid, String aid, String version, String filename)
      Gets the path to a file in the local artifact directory. Note that the method does not check whether the returned path actually points to an existing file.
      Parameters:
      gid - The group id, must not be null.
      aid - The artifact id, may be null.
      version - The artifact version, may be null.
      filename - The filename to use, must not be null.
      Returns:
      The (absolute) path to the local artifact metadata, never null.
    • getArtifactMetadataPath

      public String getArtifactMetadataPath(String gid, String aid)
      Gets the path to the local artifact metadata. Note that the method does not check whether the returned path actually points to existing metadata.
      Parameters:
      gid - The group id, must not be null.
      aid - The artifact id, must not be null.
      Returns:
      The (absolute) path to the local artifact metadata, never null.
    • executeHook

      public void executeHook(String filename) throws VerificationException
      Throws:
      VerificationException
    • executeCommand

      private void executeCommand(String line) throws VerificationException
      Throws:
      VerificationException
    • launchSubversion

      public static void launchSubversion(String line, String basedir) throws VerificationException
      Throws:
      VerificationException
    • retrieveLocalRepo

      private static String retrieveLocalRepo(String settingsXmlPath) throws VerificationException
      Throws:
      VerificationException
    • deleteArtifact

      public void deleteArtifact(String org, String name, String version, String ext) throws IOException
      Throws:
      IOException
    • deleteArtifacts

      public void deleteArtifacts(String gid) throws IOException
      Deletes all artifacts in the specified group id from the local repository.
      Parameters:
      gid - The group id whose artifacts should be deleted, must not be null.
      Throws:
      IOException - If the artifacts could not be deleted.
      Since:
      1.2
    • deleteArtifacts

      public void deleteArtifacts(String gid, String aid, String version) throws IOException
      Deletes all artifacts in the specified g:a:v from the local repository.
      Parameters:
      gid - The group id whose artifacts should be deleted, must not be null.
      aid - The artifact id whose artifacts should be deleted, must not be null.
      version - The (base) version whose artifacts should be deleted, must not be null.
      Throws:
      IOException - If the artifacts could not be deleted.
      Since:
      1.3
    • deleteDirectory

      public void deleteDirectory(String path) throws IOException
      Deletes the specified directory.
      Parameters:
      path - The path to the directory to delete, relative to the base directory, must not be null.
      Throws:
      IOException - If the directory could not be deleted.
      Since:
      1.2
    • writeFile

      public void writeFile(String path, String contents) throws IOException
      Writes a text file with the specified contents. The contents will be encoded using UTF-8.
      Parameters:
      path - The path to the file, relative to the base directory, must not be null.
      contents - The contents to write, must not be null.
      Throws:
      IOException - If the file could not be written.
      Since:
      1.2
    • filterFile

      public File filterFile(String srcPath, String dstPath, String fileEncoding, Map<String,String> filterProperties) throws IOException
      Filters a text file by replacing some user-defined tokens.
      Parameters:
      srcPath - The path to the input file, relative to the base directory, must not be null.
      dstPath - The path to the output file, relative to the base directory and possibly equal to the input file, must not be null.
      fileEncoding - The file encoding to use, may be null or empty to use the platform's default encoding.
      filterProperties - The mapping from tokens to replacement values, must not be null.
      Returns:
      The path to the filtered output file, never null.
      Throws:
      IOException - If the file could not be filtered.
      Since:
      1.2
    • filterFile

      @Deprecated public File filterFile(String srcPath, String dstPath, String fileEncoding, Properties filterProperties) throws IOException
      There are 226 references to this method in Maven core ITs. In most (all?) cases it is used together with newDefaultFilterProperties(). Need to remove both methods and update all clients eventually/
      Parameters:
      srcPath - The path to the input file, relative to the base directory, must not be null.
      dstPath - The path to the output file, relative to the base directory and possibly equal to the input file, must not be null.
      fileEncoding - The file encoding to use, may be null or empty to use the platform's default encoding.
      filterProperties - The mapping from tokens to replacement values, must not be null.
      Returns:
      The path to the filtered output file, never null.
      Throws:
      IOException - If the file could not be filtered.
    • newDefaultFilterProperties

      public Properties newDefaultFilterProperties()
      Gets a new copy of the default filter properties. These default filter properties map the tokens "@basedir@" and "@baseurl@" to the test's base directory and its base file: URL, respectively.
      Returns:
      The (modifiable) map with the default filter properties, never null.
      Since:
      1.2
    • assertFilePresent

      public void assertFilePresent(String file)
    • assertFileMatches

      public void assertFileMatches(String file, String regex)
      Check that given file's content matches an regular expression. Note this method also checks that the file exists and is readable.
      Parameters:
      file - the file to check.
      regex - a regular expression.
      See Also:
    • assertFileNotPresent

      public void assertFileNotPresent(String file)
    • verifyArtifactPresence

      private void verifyArtifactPresence(boolean wanted, String org, String name, String version, String ext)
    • assertArtifactPresent

      public void assertArtifactPresent(String org, String name, String version, String ext)
    • assertArtifactNotPresent

      public void assertArtifactNotPresent(String org, String name, String version, String ext)
    • verifyExpectedResult

      private void verifyExpectedResult(String line) throws VerificationException
      Throws:
      VerificationException
    • verifyExpectedResult

      private void verifyExpectedResult(String line, boolean wanted) throws VerificationException
      Throws:
      VerificationException
    • executeGoal

      public void executeGoal(String goal) throws VerificationException
      Throws:
      VerificationException
    • executeGoal

      public void executeGoal(String goal, Map<String,String> envVars) throws VerificationException
      Throws:
      VerificationException
    • executeGoals

      public void executeGoals(List<String> goals) throws VerificationException
      Throws:
      VerificationException
    • getExecutable

      public String getExecutable()
    • executeGoals

      public void executeGoals(List<String> goals, Map<String,String> envVars) throws VerificationException
      Throws:
      VerificationException
    • getMavenLauncher

      private MavenLauncher getMavenLauncher(Map<String,String> envVars) throws LauncherException
      Throws:
      LauncherException
    • initEmbeddedLauncher

      private void initEmbeddedLauncher() throws LauncherException
      Throws:
      LauncherException
    • getClasspath

      private List<URL> getClasspath() throws LauncherException
      Throws:
      LauncherException
    • getMavenVersion

      public String getMavenVersion() throws VerificationException
      Throws:
      VerificationException
    • getLogContents

      private static String getLogContents(File logFile)
    • resolveCommandLineArg

      private String resolveCommandLineArg(String key)
    • discoverIntegrationTests

      private static List<String> discoverIntegrationTests(String directory) throws VerificationException
      Throws:
      VerificationException
    • displayLogFile

      private void displayLogFile()
    • main

      public static void main(String[] args) throws VerificationException
      Throws:
      VerificationException
    • findLocalRepo

      private void findLocalRepo(String settingsFile) throws VerificationException
      Throws:
      VerificationException
    • runIntegrationTest

      private static void runIntegrationTest(Verifier verifier) throws VerificationException
      Throws:
      VerificationException
    • assertArtifactContents

      public void assertArtifactContents(String org, String artifact, String version, String type, String contents) throws IOException
      Throws:
      IOException
    • getCliOptions

      public List<String> getCliOptions()
    • setCliOptions

      public void setCliOptions(List<String> cliOptions)
    • addCliOption

      public void addCliOption(String option)
    • getSystemProperties

      public Properties getSystemProperties()
    • setSystemProperties

      public void setSystemProperties(Properties systemProperties)
    • setSystemProperty

      public void setSystemProperty(String key, String value)
    • getEnvironmentVariables

      public Map<String,String> getEnvironmentVariables()
    • setEnvironmentVariables

      public void setEnvironmentVariables(Map<String,String> environmentVariables)
    • setEnvironmentVariable

      public void setEnvironmentVariable(String key, String value)
    • getVerifierProperties

      public Properties getVerifierProperties()
    • setVerifierProperties

      public void setVerifierProperties(Properties verifierProperties)
    • isAutoclean

      public boolean isAutoclean()
    • setAutoclean

      public void setAutoclean(boolean autoclean)
    • getBasedir

      public String getBasedir()
    • getLogFileName

      public String getLogFileName()
      Gets the name of the file used to log build output.
      Returns:
      The name of the log file, relative to the base directory, never null.
      Since:
      1.2
    • setLogFileName

      public void setLogFileName(String logFileName)
      Sets the name of the file used to log build output.
      Parameters:
      logFileName - The name of the log file, relative to the base directory, must not be empty or null.
      Since:
      1.2
    • setDebug

      public void setDebug(boolean debug)
    • isMavenDebug

      public boolean isMavenDebug()
    • setMavenDebug

      public void setMavenDebug(boolean mavenDebug)
    • setForkJvm

      public void setForkJvm(boolean forkJvm)
    • isDebugJvm

      public boolean isDebugJvm()
    • setDebugJvm

      public void setDebugJvm(boolean debugJvm)
    • getLocalRepoLayout

      public String getLocalRepoLayout()
    • setLocalRepoLayout

      public void setLocalRepoLayout(String localRepoLayout)
    • getLocalRepository

      public String getLocalRepository()