You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-commits@maven.apache.org by ol...@apache.org on 2017/07/17 08:25:04 UTC
svn commit: r1015581 [3/3] - in
/websites/production/maven/components/plugins-archives/maven-invoker-plugin-LATEST:
./ examples/ xref/org/apache/maven/plugins/invoker/
Modified: websites/production/maven/components/plugins-archives/maven-invoker-plugin-LATEST/xref/org/apache/maven/plugins/invoker/AbstractInvokerMojo.html
==============================================================================
--- websites/production/maven/components/plugins-archives/maven-invoker-plugin-LATEST/xref/org/apache/maven/plugins/invoker/AbstractInvokerMojo.html (original)
+++ websites/production/maven/components/plugins-archives/maven-invoker-plugin-LATEST/xref/org/apache/maven/plugins/invoker/AbstractInvokerMojo.html Mon Jul 17 08:25:01 2017
@@ -1763,833 +1763,839 @@
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a> Map<String, Object> context = <strong class="jxr_keyword">new</strong> LinkedHashMap<String, Object>();
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a> logger = setupBuildLogFile( basedir );
-<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a> {
-<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a> {
-<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> scriptRunner.run( <span class="jxr_string">"selector script"</span>, basedir, selectorScript, context, logger, BuildJob.Result.SKIPPED,
-<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> false );
-<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a> }
-<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a> <strong class="jxr_keyword">catch</strong> ( RunErrorException e )
-<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a> {
-<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a> <strong class="jxr_keyword">throw</strong> e;
-<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a> }
-<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a> <strong class="jxr_keyword">catch</strong> ( RunFailureException e )
-<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a> {
-<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a> }
-<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>
-<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a> scriptRunner.run( <span class="jxr_string">"pre-build script"</span>, basedir, preBuildHookScript, context, logger,
-<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a> BuildJob.Result.FAILURE_PRE_HOOK, false );
+<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a> <strong class="jxr_keyword">boolean</strong> selectorResult = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> {
+<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> {
+<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> scriptRunner.run( <span class="jxr_string">"selector script"</span>, basedir, selectorScript, context, logger, BuildJob.Result.SKIPPED,
+<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a> false );
+<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a> }
+<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a> <strong class="jxr_keyword">catch</strong> ( RunErrorException e )
+<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a> {
+<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a> selectorResult = false;
+<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a> <strong class="jxr_keyword">throw</strong> e;
+<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a> }
+<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a> <strong class="jxr_keyword">catch</strong> ( RunFailureException e )
+<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a> {
+<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a> selectorResult = false;
+<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a> }
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>
-<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a> <strong class="jxr_keyword">final</strong> InvocationRequest request = <strong class="jxr_keyword">new</strong> DefaultInvocationRequest();
-<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>
-<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a> request.setLocalRepositoryDirectory( localRepositoryPath );
-<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>
-<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a> request.setBatchMode( <strong class="jxr_keyword">true</strong> );
-<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>
-<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a> request.setShowErrors( showErrors );
-<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>
-<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a> request.setDebug( debug );
-<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>
-<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a> request.setShowVersion( showVersion );
-<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a>
-<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a> setupLoggerForBuildJob( logger, request );
-<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>
-<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a> <strong class="jxr_keyword">if</strong> ( mavenHome != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a> {
-<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a> invoker.setMavenHome( mavenHome );
-<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a> <em class="jxr_comment">// FIXME: Should we really take care of M2_HOME?</em>
-<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a> request.addShellEnvironment( <span class="jxr_string">"M2_HOME"</span>, mavenHome.getAbsolutePath() );
-<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a> }
-<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>
-<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> <strong class="jxr_keyword">if</strong> ( mavenExecutable != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a> {
-<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a> invoker.setMavenExecutable( <strong class="jxr_keyword">new</strong> File( mavenExecutable ) );
-<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a> }
-<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a>
-<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a> <strong class="jxr_keyword">if</strong> ( actualJavaHome != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> {
-<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a> request.setJavaHome( actualJavaHome );
-<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a> }
-<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a>
-<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a> <strong class="jxr_keyword">if</strong> ( environmentVariables != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a> {
-<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a> <strong class="jxr_keyword">for</strong> ( Map.Entry<String, String> variable : environmentVariables.entrySet() )
-<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a> {
-<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a> request.addShellEnvironment( variable.getKey(), variable.getValue() );
-<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a> }
-<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> }
-<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a>
-<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a> <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> invocationIndex = 1;; invocationIndex++ )
-<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a> {
-<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a> <strong class="jxr_keyword">if</strong> ( invocationIndex > 1 && !invokerProperties.isInvocationDefined( invocationIndex ) )
-<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a> {
-<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a> }
-<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a>
-<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a> request.setBaseDirectory( basedir );
-<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a>
-<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a> request.setPomFile( pomFile );
-<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a>
-<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a> request.setGoals( goals );
-<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>
-<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> request.setProfiles( profiles );
-<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>
-<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> request.setMavenOpts( mavenOpts );
-<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a>
-<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a> request.setOffline( false );
-<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>
-<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a> String customSettingsFile = invokerProperties.getSettingsFile( invocationIndex );
-<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a> <strong class="jxr_keyword">if</strong> ( customSettingsFile != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a> {
-<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a> File interpolateSettingsFile = interpolateSettings( <strong class="jxr_keyword">new</strong> File( customSettingsFile ) );
-<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a> File mergeSettingsFile = mergeSettings( interpolateSettingsFile );
-<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a>
-<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a> request.setUserSettingsFile( mergeSettingsFile );
-<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a> }
-<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a> <strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a> {
-<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a> request.setUserSettingsFile( settingsFile );
-<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a> }
-<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a>
-<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a> Properties systemProperties =
-<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a> getSystemProperties( basedir, invokerProperties.getSystemPropertiesFile( invocationIndex ) );
-<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a> request.setProperties( systemProperties );
-<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a>
-<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a> invokerProperties.configureInvocation( request, invocationIndex );
-<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a>
-<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a> <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a> {
-<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a> {
-<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a> getLog().debug( <span class="jxr_string">"Using MAVEN_OPTS: "</span> + request.getMavenOpts() );
-<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a> getLog().debug( <span class="jxr_string">"Executing: "</span> + <strong class="jxr_keyword">new</strong> MavenCommandLineBuilder().build( request ) );
-<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a> }
-<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a> <strong class="jxr_keyword">catch</strong> ( CommandLineConfigurationException e )
-<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a> {
-<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a> getLog().debug( <span class="jxr_string">"Failed to display command line: "</span> + e.getMessage() );
-<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a> }
-<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a> }
-<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a>
-<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a> InvocationResult result;
-<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a>
-<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a> {
-<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a> result = invoker.execute( request );
-<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a> }
-<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a> <strong class="jxr_keyword">catch</strong> ( <strong class="jxr_keyword">final</strong> MavenInvocationException e )
-<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a> {
-<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a> getLog().debug( <span class="jxr_string">"Error invoking Maven: "</span> + e.getMessage(), e );
-<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RunFailureException( <span class="jxr_string">"Maven invocation failed. "</span> + e.getMessage(),
-<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a> BuildJob.Result.FAILURE_BUILD );
-<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a> }
-<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a> runPostBuildHook( basedir, context, logger );
-<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a> verify( result, invocationIndex, invokerProperties, logger );
-<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a> }
-<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a> }
-<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a> {
-<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
-<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a> }
-<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a> <strong class="jxr_keyword">finally</strong>
-<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a> {
-<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a> <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a> {
-<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a> logger.close();
-<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a> }
-<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a> }
-<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a> }
-<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a>
-<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runPostBuildHook( File basedir, Map<String, Object> context, FileLogger logger )
-<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException, RunFailureException
-<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a> {
-<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a> {
-<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a> scriptRunner.run( <span class="jxr_string">"post-build script"</span>, basedir, postBuildHookScript, context, logger,
-<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a> BuildJob.Result.FAILURE_POST_HOOK, <strong class="jxr_keyword">true</strong> );
-<a class="jxr_linenumber" name="L1904" href="#L1904">1904</a> }
-<a class="jxr_linenumber" name="L1905" href="#L1905">1905</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a> {
-<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
-<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a> }
-<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a> }
-<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupLoggerForBuildJob( FileLogger logger, <strong class="jxr_keyword">final</strong> InvocationRequest request )
-<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a> {
-<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a> <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a> {
-<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a> request.setErrorHandler( logger );
-<a class="jxr_linenumber" name="L1915" href="#L1915">1915</a>
-<a class="jxr_linenumber" name="L1916" href="#L1916">1916</a> request.setOutputHandler( logger );
-<a class="jxr_linenumber" name="L1917" href="#L1917">1917</a> }
-<a class="jxr_linenumber" name="L1918" href="#L1918">1918</a> }
-<a class="jxr_linenumber" name="L1919" href="#L1919">1919</a>
-<a class="jxr_linenumber" name="L1920" href="#L1920">1920</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1921" href="#L1921">1921</a> <em class="jxr_javadoccomment"> * Initializes the build logger for the specified project. This will write the logging information into</em>
-<a class="jxr_linenumber" name="L1922" href="#L1922">1922</a> <em class="jxr_javadoccomment"> * {@code build.log}.</em>
-<a class="jxr_linenumber" name="L1923" href="#L1923">1923</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L1924" href="#L1924">1924</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
-<a class="jxr_linenumber" name="L1925" href="#L1925">1925</a> <em class="jxr_javadoccomment"> * @return The build logger or <code>null</code> if logging has been disabled.</em>
-<a class="jxr_linenumber" name="L1926" href="#L1926">1926</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the log file could not be created.</em>
-<a class="jxr_linenumber" name="L1927" href="#L1927">1927</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L1928" href="#L1928">1928</a> <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a> setupBuildLogFile( File basedir )
-<a class="jxr_linenumber" name="L1929" href="#L1929">1929</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a class="jxr_linenumber" name="L1930" href="#L1930">1930</a> {
-<a class="jxr_linenumber" name="L1931" href="#L1931">1931</a> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a> logger = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1932" href="#L1932">1932</a>
-<a class="jxr_linenumber" name="L1933" href="#L1933">1933</a> <strong class="jxr_keyword">if</strong> ( !noLog )
-<a class="jxr_linenumber" name="L1934" href="#L1934">1934</a> {
-<a class="jxr_linenumber" name="L1935" href="#L1935">1935</a> File outputLog = <strong class="jxr_keyword">new</strong> File( basedir, <span class="jxr_string">"build.log"</span> );
-<a class="jxr_linenumber" name="L1936" href="#L1936">1936</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L1937" href="#L1937">1937</a> {
-<a class="jxr_linenumber" name="L1938" href="#L1938">1938</a> <strong class="jxr_keyword">if</strong> ( streamLogs )
-<a class="jxr_linenumber" name="L1939" href="#L1939">1939</a> {
-<a class="jxr_linenumber" name="L1940" href="#L1940">1940</a> logger = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a>( outputLog, getLog() );
-<a class="jxr_linenumber" name="L1941" href="#L1941">1941</a> }
-<a class="jxr_linenumber" name="L1942" href="#L1942">1942</a> <strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="L1943" href="#L1943">1943</a> {
-<a class="jxr_linenumber" name="L1944" href="#L1944">1944</a> logger = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a>( outputLog );
-<a class="jxr_linenumber" name="L1945" href="#L1945">1945</a> }
-<a class="jxr_linenumber" name="L1946" href="#L1946">1946</a>
-<a class="jxr_linenumber" name="L1947" href="#L1947">1947</a> getLog().debug( <span class="jxr_string">"Build log initialized in: "</span> + outputLog );
-<a class="jxr_linenumber" name="L1948" href="#L1948">1948</a> }
-<a class="jxr_linenumber" name="L1949" href="#L1949">1949</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a class="jxr_linenumber" name="L1950" href="#L1950">1950</a> {
-<a class="jxr_linenumber" name="L1951" href="#L1951">1951</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error initializing build logfile in: "</span> + outputLog, e );
-<a class="jxr_linenumber" name="L1952" href="#L1952">1952</a> }
-<a class="jxr_linenumber" name="L1953" href="#L1953">1953</a> }
-<a class="jxr_linenumber" name="L1954" href="#L1954">1954</a>
-<a class="jxr_linenumber" name="L1955" href="#L1955">1955</a> <strong class="jxr_keyword">return</strong> logger;
-<a class="jxr_linenumber" name="L1956" href="#L1956">1956</a> }
-<a class="jxr_linenumber" name="L1957" href="#L1957">1957</a>
-<a class="jxr_linenumber" name="L1958" href="#L1958">1958</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1959" href="#L1959">1959</a> <em class="jxr_javadoccomment"> * Gets the system properties to use for the specified project.</em>
-<a class="jxr_linenumber" name="L1960" href="#L1960">1960</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L1961" href="#L1961">1961</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
-<a class="jxr_linenumber" name="L1962" href="#L1962">1962</a> <em class="jxr_javadoccomment"> * @param filename The filename to the properties file to load, may be <code>null</code> to use the default path</em>
-<a class="jxr_linenumber" name="L1963" href="#L1963">1963</a> <em class="jxr_javadoccomment"> * given by {@link #testPropertiesFile}.</em>
-<a class="jxr_linenumber" name="L1964" href="#L1964">1964</a> <em class="jxr_javadoccomment"> * @return The system properties to use, may be empty but never <code>null</code>.</em>
-<a class="jxr_linenumber" name="L1965" href="#L1965">1965</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the properties file exists but could not be read.</em>
-<a class="jxr_linenumber" name="L1966" href="#L1966">1966</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L1967" href="#L1967">1967</a> <strong class="jxr_keyword">private</strong> Properties getSystemProperties( <strong class="jxr_keyword">final</strong> File basedir, <strong class="jxr_keyword">final</strong> String filename )
-<a class="jxr_linenumber" name="L1968" href="#L1968">1968</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a class="jxr_linenumber" name="L1969" href="#L1969">1969</a> {
-<a class="jxr_linenumber" name="L1970" href="#L1970">1970</a> Properties collectedTestProperties = <strong class="jxr_keyword">new</strong> Properties();
-<a class="jxr_linenumber" name="L1971" href="#L1971">1971</a>
-<a class="jxr_linenumber" name="L1972" href="#L1972">1972</a> <strong class="jxr_keyword">if</strong> ( properties != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1973" href="#L1973">1973</a> {
-<a class="jxr_linenumber" name="L1974" href="#L1974">1974</a> <em class="jxr_comment">// MINVOKER-118: property can have empty value, which is not accepted by collectedTestProperties</em>
-<a class="jxr_linenumber" name="L1975" href="#L1975">1975</a> <strong class="jxr_keyword">for</strong> ( Map.Entry<String, String> entry : properties.entrySet() )
-<a class="jxr_linenumber" name="L1976" href="#L1976">1976</a> {
-<a class="jxr_linenumber" name="L1977" href="#L1977">1977</a> <strong class="jxr_keyword">if</strong> ( entry.getValue() != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1978" href="#L1978">1978</a> {
-<a class="jxr_linenumber" name="L1979" href="#L1979">1979</a> collectedTestProperties.put( entry.getKey(), entry.getValue() );
-<a class="jxr_linenumber" name="L1980" href="#L1980">1980</a> }
-<a class="jxr_linenumber" name="L1981" href="#L1981">1981</a> }
-<a class="jxr_linenumber" name="L1982" href="#L1982">1982</a> }
-<a class="jxr_linenumber" name="L1983" href="#L1983">1983</a>
-<a class="jxr_linenumber" name="L1984" href="#L1984">1984</a> File propertiesFile = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1985" href="#L1985">1985</a> <strong class="jxr_keyword">if</strong> ( filename != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1986" href="#L1986">1986</a> {
-<a class="jxr_linenumber" name="L1987" href="#L1987">1987</a> propertiesFile = <strong class="jxr_keyword">new</strong> File( basedir, filename );
+<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a> scriptRunner.run( <span class="jxr_string">"pre-build script"</span>, basedir, preBuildHookScript, context, logger,
+<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a> BuildJob.Result.FAILURE_PRE_HOOK, false );
+<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>
+<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a> <strong class="jxr_keyword">final</strong> InvocationRequest request = <strong class="jxr_keyword">new</strong> DefaultInvocationRequest();
+<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>
+<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a> request.setLocalRepositoryDirectory( localRepositoryPath );
+<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>
+<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a> request.setBatchMode( <strong class="jxr_keyword">true</strong> );
+<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>
+<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a> request.setShowErrors( showErrors );
+<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>
+<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a> request.setDebug( debug );
+<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>
+<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a> request.setShowVersion( showVersion );
+<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a>
+<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a> setupLoggerForBuildJob( logger, request );
+<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>
+<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a> <strong class="jxr_keyword">if</strong> ( mavenHome != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a> {
+<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a> invoker.setMavenHome( mavenHome );
+<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a> <em class="jxr_comment">// FIXME: Should we really take care of M2_HOME?</em>
+<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> request.addShellEnvironment( <span class="jxr_string">"M2_HOME"</span>, mavenHome.getAbsolutePath() );
+<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a> }
+<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a>
+<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a> <strong class="jxr_keyword">if</strong> ( mavenExecutable != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a> {
+<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a> invoker.setMavenExecutable( <strong class="jxr_keyword">new</strong> File( mavenExecutable ) );
+<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> }
+<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>
+<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a> <strong class="jxr_keyword">if</strong> ( actualJavaHome != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a> {
+<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a> request.setJavaHome( actualJavaHome );
+<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a> }
+<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a>
+<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a> <strong class="jxr_keyword">if</strong> ( environmentVariables != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a> {
+<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a> <strong class="jxr_keyword">for</strong> ( Map.Entry<String, String> variable : environmentVariables.entrySet() )
+<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> {
+<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a> request.addShellEnvironment( variable.getKey(), variable.getValue() );
+<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a> }
+<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a> }
+<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a>
+<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a> <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> invocationIndex = 1;; invocationIndex++ )
+<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a> {
+<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a> <strong class="jxr_keyword">if</strong> ( invocationIndex > 1 && !invokerProperties.isInvocationDefined( invocationIndex ) )
+<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a> {
+<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a> <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a> }
+<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>
+<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a> request.setBaseDirectory( basedir );
+<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>
+<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a> request.setPomFile( pomFile );
+<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a>
+<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a> request.setGoals( goals );
+<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a>
+<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a> request.setProfiles( profiles );
+<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a>
+<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a> request.setMavenOpts( mavenOpts );
+<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a>
+<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a> request.setOffline( false );
+<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>
+<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a> String customSettingsFile = invokerProperties.getSettingsFile( invocationIndex );
+<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a> <strong class="jxr_keyword">if</strong> ( customSettingsFile != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a> {
+<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a> File interpolateSettingsFile = interpolateSettings( <strong class="jxr_keyword">new</strong> File( customSettingsFile ) );
+<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a> File mergeSettingsFile = mergeSettings( interpolateSettingsFile );
+<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>
+<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a> request.setUserSettingsFile( mergeSettingsFile );
+<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a> }
+<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a> <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a> {
+<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a> request.setUserSettingsFile( settingsFile );
+<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a> }
+<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a>
+<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a> Properties systemProperties =
+<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a> getSystemProperties( basedir, invokerProperties.getSystemPropertiesFile( invocationIndex ) );
+<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a> request.setProperties( systemProperties );
+<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a>
+<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a> invokerProperties.configureInvocation( request, invocationIndex );
+<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a>
+<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a> <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
+<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a> {
+<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a> {
+<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a> getLog().debug( <span class="jxr_string">"Using MAVEN_OPTS: "</span> + request.getMavenOpts() );
+<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a> getLog().debug( <span class="jxr_string">"Executing: "</span> + <strong class="jxr_keyword">new</strong> MavenCommandLineBuilder().build( request ) );
+<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a> }
+<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a> <strong class="jxr_keyword">catch</strong> ( CommandLineConfigurationException e )
+<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a> {
+<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a> getLog().debug( <span class="jxr_string">"Failed to display command line: "</span> + e.getMessage() );
+<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a> }
+<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a> }
+<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a>
+<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a> InvocationResult result;
+<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a>
+<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a> {
+<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a> result = invoker.execute( request );
+<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a> }
+<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a> <strong class="jxr_keyword">catch</strong> ( <strong class="jxr_keyword">final</strong> MavenInvocationException e )
+<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a> {
+<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a> getLog().debug( <span class="jxr_string">"Error invoking Maven: "</span> + e.getMessage(), e );
+<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RunFailureException( <span class="jxr_string">"Maven invocation failed. "</span> + e.getMessage(),
+<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a> BuildJob.Result.FAILURE_BUILD );
+<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a> }
+<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a> verify( result, invocationIndex, invokerProperties, logger );
+<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a> }
+<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a> }
+<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a> {
+<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a> }
+<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a> <strong class="jxr_keyword">finally</strong>
+<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a> {
+<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a> <strong class="jxr_keyword">if</strong> ( selectorResult )
+<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a> {
+<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a> runPostBuildHook( basedir, context, logger );
+<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a> }
+<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a> <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a> {
+<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a> logger.close();
+<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a> }
+<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a> }
+<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a> }
+<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a>
+<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runPostBuildHook( File basedir, Map<String, Object> context, FileLogger logger )
+<a class="jxr_linenumber" name="L1904" href="#L1904">1904</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException, RunFailureException
+<a class="jxr_linenumber" name="L1905" href="#L1905">1905</a> {
+<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a> {
+<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a> scriptRunner.run( <span class="jxr_string">"post-build script"</span>, basedir, postBuildHookScript, context, logger,
+<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a> BuildJob.Result.FAILURE_POST_HOOK, <strong class="jxr_keyword">true</strong> );
+<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a> }
+<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a> {
+<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a> }
+<a class="jxr_linenumber" name="L1915" href="#L1915">1915</a> }
+<a class="jxr_linenumber" name="L1916" href="#L1916">1916</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupLoggerForBuildJob( FileLogger logger, <strong class="jxr_keyword">final</strong> InvocationRequest request )
+<a class="jxr_linenumber" name="L1917" href="#L1917">1917</a> {
+<a class="jxr_linenumber" name="L1918" href="#L1918">1918</a> <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1919" href="#L1919">1919</a> {
+<a class="jxr_linenumber" name="L1920" href="#L1920">1920</a> request.setErrorHandler( logger );
+<a class="jxr_linenumber" name="L1921" href="#L1921">1921</a>
+<a class="jxr_linenumber" name="L1922" href="#L1922">1922</a> request.setOutputHandler( logger );
+<a class="jxr_linenumber" name="L1923" href="#L1923">1923</a> }
+<a class="jxr_linenumber" name="L1924" href="#L1924">1924</a> }
+<a class="jxr_linenumber" name="L1925" href="#L1925">1925</a>
+<a class="jxr_linenumber" name="L1926" href="#L1926">1926</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1927" href="#L1927">1927</a> <em class="jxr_javadoccomment"> * Initializes the build logger for the specified project. This will write the logging information into</em>
+<a class="jxr_linenumber" name="L1928" href="#L1928">1928</a> <em class="jxr_javadoccomment"> * {@code build.log}.</em>
+<a class="jxr_linenumber" name="L1929" href="#L1929">1929</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L1930" href="#L1930">1930</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
+<a class="jxr_linenumber" name="L1931" href="#L1931">1931</a> <em class="jxr_javadoccomment"> * @return The build logger or <code>null</code> if logging has been disabled.</em>
+<a class="jxr_linenumber" name="L1932" href="#L1932">1932</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the log file could not be created.</em>
+<a class="jxr_linenumber" name="L1933" href="#L1933">1933</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L1934" href="#L1934">1934</a> <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a> setupBuildLogFile( File basedir )
+<a class="jxr_linenumber" name="L1935" href="#L1935">1935</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L1936" href="#L1936">1936</a> {
+<a class="jxr_linenumber" name="L1937" href="#L1937">1937</a> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a> logger = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1938" href="#L1938">1938</a>
+<a class="jxr_linenumber" name="L1939" href="#L1939">1939</a> <strong class="jxr_keyword">if</strong> ( !noLog )
+<a class="jxr_linenumber" name="L1940" href="#L1940">1940</a> {
+<a class="jxr_linenumber" name="L1941" href="#L1941">1941</a> File outputLog = <strong class="jxr_keyword">new</strong> File( basedir, <span class="jxr_string">"build.log"</span> );
+<a class="jxr_linenumber" name="L1942" href="#L1942">1942</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L1943" href="#L1943">1943</a> {
+<a class="jxr_linenumber" name="L1944" href="#L1944">1944</a> <strong class="jxr_keyword">if</strong> ( streamLogs )
+<a class="jxr_linenumber" name="L1945" href="#L1945">1945</a> {
+<a class="jxr_linenumber" name="L1946" href="#L1946">1946</a> logger = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a>( outputLog, getLog() );
+<a class="jxr_linenumber" name="L1947" href="#L1947">1947</a> }
+<a class="jxr_linenumber" name="L1948" href="#L1948">1948</a> <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L1949" href="#L1949">1949</a> {
+<a class="jxr_linenumber" name="L1950" href="#L1950">1950</a> logger = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a>( outputLog );
+<a class="jxr_linenumber" name="L1951" href="#L1951">1951</a> }
+<a class="jxr_linenumber" name="L1952" href="#L1952">1952</a>
+<a class="jxr_linenumber" name="L1953" href="#L1953">1953</a> getLog().debug( <span class="jxr_string">"Build log initialized in: "</span> + outputLog );
+<a class="jxr_linenumber" name="L1954" href="#L1954">1954</a> }
+<a class="jxr_linenumber" name="L1955" href="#L1955">1955</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L1956" href="#L1956">1956</a> {
+<a class="jxr_linenumber" name="L1957" href="#L1957">1957</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error initializing build logfile in: "</span> + outputLog, e );
+<a class="jxr_linenumber" name="L1958" href="#L1958">1958</a> }
+<a class="jxr_linenumber" name="L1959" href="#L1959">1959</a> }
+<a class="jxr_linenumber" name="L1960" href="#L1960">1960</a>
+<a class="jxr_linenumber" name="L1961" href="#L1961">1961</a> <strong class="jxr_keyword">return</strong> logger;
+<a class="jxr_linenumber" name="L1962" href="#L1962">1962</a> }
+<a class="jxr_linenumber" name="L1963" href="#L1963">1963</a>
+<a class="jxr_linenumber" name="L1964" href="#L1964">1964</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1965" href="#L1965">1965</a> <em class="jxr_javadoccomment"> * Gets the system properties to use for the specified project.</em>
+<a class="jxr_linenumber" name="L1966" href="#L1966">1966</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L1967" href="#L1967">1967</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
+<a class="jxr_linenumber" name="L1968" href="#L1968">1968</a> <em class="jxr_javadoccomment"> * @param filename The filename to the properties file to load, may be <code>null</code> to use the default path</em>
+<a class="jxr_linenumber" name="L1969" href="#L1969">1969</a> <em class="jxr_javadoccomment"> * given by {@link #testPropertiesFile}.</em>
+<a class="jxr_linenumber" name="L1970" href="#L1970">1970</a> <em class="jxr_javadoccomment"> * @return The system properties to use, may be empty but never <code>null</code>.</em>
+<a class="jxr_linenumber" name="L1971" href="#L1971">1971</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the properties file exists but could not be read.</em>
+<a class="jxr_linenumber" name="L1972" href="#L1972">1972</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L1973" href="#L1973">1973</a> <strong class="jxr_keyword">private</strong> Properties getSystemProperties( <strong class="jxr_keyword">final</strong> File basedir, <strong class="jxr_keyword">final</strong> String filename )
+<a class="jxr_linenumber" name="L1974" href="#L1974">1974</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L1975" href="#L1975">1975</a> {
+<a class="jxr_linenumber" name="L1976" href="#L1976">1976</a> Properties collectedTestProperties = <strong class="jxr_keyword">new</strong> Properties();
+<a class="jxr_linenumber" name="L1977" href="#L1977">1977</a>
+<a class="jxr_linenumber" name="L1978" href="#L1978">1978</a> <strong class="jxr_keyword">if</strong> ( properties != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1979" href="#L1979">1979</a> {
+<a class="jxr_linenumber" name="L1980" href="#L1980">1980</a> <em class="jxr_comment">// MINVOKER-118: property can have empty value, which is not accepted by collectedTestProperties</em>
+<a class="jxr_linenumber" name="L1981" href="#L1981">1981</a> <strong class="jxr_keyword">for</strong> ( Map.Entry<String, String> entry : properties.entrySet() )
+<a class="jxr_linenumber" name="L1982" href="#L1982">1982</a> {
+<a class="jxr_linenumber" name="L1983" href="#L1983">1983</a> <strong class="jxr_keyword">if</strong> ( entry.getValue() != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1984" href="#L1984">1984</a> {
+<a class="jxr_linenumber" name="L1985" href="#L1985">1985</a> collectedTestProperties.put( entry.getKey(), entry.getValue() );
+<a class="jxr_linenumber" name="L1986" href="#L1986">1986</a> }
+<a class="jxr_linenumber" name="L1987" href="#L1987">1987</a> }
<a class="jxr_linenumber" name="L1988" href="#L1988">1988</a> }
-<a class="jxr_linenumber" name="L1989" href="#L1989">1989</a> <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( testPropertiesFile != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L1990" href="#L1990">1990</a> {
-<a class="jxr_linenumber" name="L1991" href="#L1991">1991</a> propertiesFile = <strong class="jxr_keyword">new</strong> File( basedir, testPropertiesFile );
-<a class="jxr_linenumber" name="L1992" href="#L1992">1992</a> }
-<a class="jxr_linenumber" name="L1993" href="#L1993">1993</a>
-<a class="jxr_linenumber" name="L1994" href="#L1994">1994</a> <strong class="jxr_keyword">if</strong> ( propertiesFile != <strong class="jxr_keyword">null</strong> && propertiesFile.isFile() )
-<a class="jxr_linenumber" name="L1995" href="#L1995">1995</a> {
-<a class="jxr_linenumber" name="L1996" href="#L1996">1996</a> InputStream fin = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1997" href="#L1997">1997</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L1998" href="#L1998">1998</a> {
-<a class="jxr_linenumber" name="L1999" href="#L1999">1999</a> fin = <strong class="jxr_keyword">new</strong> FileInputStream( propertiesFile );
-<a class="jxr_linenumber" name="L2000" href="#L2000">2000</a>
-<a class="jxr_linenumber" name="L2001" href="#L2001">2001</a> Properties loadedProperties = <strong class="jxr_keyword">new</strong> Properties();
-<a class="jxr_linenumber" name="L2002" href="#L2002">2002</a> loadedProperties.load( fin );
-<a class="jxr_linenumber" name="L2003" href="#L2003">2003</a> fin.close();
-<a class="jxr_linenumber" name="L2004" href="#L2004">2004</a> fin = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L2005" href="#L2005">2005</a> collectedTestProperties.putAll( loadedProperties );
-<a class="jxr_linenumber" name="L2006" href="#L2006">2006</a> }
-<a class="jxr_linenumber" name="L2007" href="#L2007">2007</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a class="jxr_linenumber" name="L2008" href="#L2008">2008</a> {
-<a class="jxr_linenumber" name="L2009" href="#L2009">2009</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading system properties from "</span> + propertiesFile );
-<a class="jxr_linenumber" name="L2010" href="#L2010">2010</a> }
-<a class="jxr_linenumber" name="L2011" href="#L2011">2011</a> <strong class="jxr_keyword">finally</strong>
-<a class="jxr_linenumber" name="L2012" href="#L2012">2012</a> {
-<a class="jxr_linenumber" name="L2013" href="#L2013">2013</a> IOUtil.close( fin );
-<a class="jxr_linenumber" name="L2014" href="#L2014">2014</a> }
-<a class="jxr_linenumber" name="L2015" href="#L2015">2015</a> }
-<a class="jxr_linenumber" name="L2016" href="#L2016">2016</a>
-<a class="jxr_linenumber" name="L2017" href="#L2017">2017</a> <strong class="jxr_keyword">return</strong> collectedTestProperties;
-<a class="jxr_linenumber" name="L2018" href="#L2018">2018</a> }
-<a class="jxr_linenumber" name="L2019" href="#L2019">2019</a>
-<a class="jxr_linenumber" name="L2020" href="#L2020">2020</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L2021" href="#L2021">2021</a> <em class="jxr_javadoccomment"> * Verifies the invocation result.</em>
-<a class="jxr_linenumber" name="L2022" href="#L2022">2022</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L2023" href="#L2023">2023</a> <em class="jxr_javadoccomment"> * @param result The invocation result to check, must not be <code>null</code>.</em>
-<a class="jxr_linenumber" name="L2024" href="#L2024">2024</a> <em class="jxr_javadoccomment"> * @param invocationIndex The index of the invocation for which to check the exit code, must not be negative.</em>
-<a class="jxr_linenumber" name="L2025" href="#L2025">2025</a> <em class="jxr_javadoccomment"> * @param invokerProperties The invoker properties used to check the exit code, must not be <code>null</code>.</em>
-<a class="jxr_linenumber" name="L2026" href="#L2026">2026</a> <em class="jxr_javadoccomment"> * @param logger The build logger, may be <code>null</code> if logging is disabled.</em>
-<a class="jxr_linenumber" name="L2027" href="#L2027">2027</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.shared.scriptinterpreter.RunFailureException If the invocation result indicates a build</em>
-<a class="jxr_linenumber" name="L2028" href="#L2028">2028</a> <em class="jxr_javadoccomment"> * failure.</em>
-<a class="jxr_linenumber" name="L2029" href="#L2029">2029</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L2030" href="#L2030">2030</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> verify( InvocationResult result, <strong class="jxr_keyword">int</strong> invocationIndex, InvokerProperties invokerProperties,
-<a class="jxr_linenumber" name="L2031" href="#L2031">2031</a> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a> logger )
-<a class="jxr_linenumber" name="L2032" href="#L2032">2032</a> <strong class="jxr_keyword">throws</strong> RunFailureException
-<a class="jxr_linenumber" name="L2033" href="#L2033">2033</a> {
-<a class="jxr_linenumber" name="L2034" href="#L2034">2034</a> <strong class="jxr_keyword">if</strong> ( result.getExecutionException() != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L2035" href="#L2035">2035</a> {
-<a class="jxr_linenumber" name="L2036" href="#L2036">2036</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RunFailureException( <span class="jxr_string">"The Maven invocation failed. "</span>
-<a class="jxr_linenumber" name="L2037" href="#L2037">2037</a> + result.getExecutionException().getMessage(), BuildJob.Result.ERROR );
-<a class="jxr_linenumber" name="L2038" href="#L2038">2038</a> }
-<a class="jxr_linenumber" name="L2039" href="#L2039">2039</a> <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( !invokerProperties.isExpectedResult( result.getExitCode(), invocationIndex ) )
-<a class="jxr_linenumber" name="L2040" href="#L2040">2040</a> {
-<a class="jxr_linenumber" name="L2041" href="#L2041">2041</a> StringBuilder buffer = <strong class="jxr_keyword">new</strong> StringBuilder( 256 );
-<a class="jxr_linenumber" name="L2042" href="#L2042">2042</a> buffer.append( <span class="jxr_string">"The build exited with code "</span> ).append( result.getExitCode() ).append( <span class="jxr_string">". "</span> );
-<a class="jxr_linenumber" name="L2043" href="#L2043">2043</a> <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L2044" href="#L2044">2044</a> {
-<a class="jxr_linenumber" name="L2045" href="#L2045">2045</a> buffer.append( <span class="jxr_string">"See "</span> );
-<a class="jxr_linenumber" name="L2046" href="#L2046">2046</a> buffer.append( logger.getOutputFile().getAbsolutePath() );
-<a class="jxr_linenumber" name="L2047" href="#L2047">2047</a> buffer.append( <span class="jxr_string">" for details."</span> );
-<a class="jxr_linenumber" name="L2048" href="#L2048">2048</a> }
-<a class="jxr_linenumber" name="L2049" href="#L2049">2049</a> <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L1989" href="#L1989">1989</a>
+<a class="jxr_linenumber" name="L1990" href="#L1990">1990</a> File propertiesFile = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1991" href="#L1991">1991</a> <strong class="jxr_keyword">if</strong> ( filename != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1992" href="#L1992">1992</a> {
+<a class="jxr_linenumber" name="L1993" href="#L1993">1993</a> propertiesFile = <strong class="jxr_keyword">new</strong> File( basedir, filename );
+<a class="jxr_linenumber" name="L1994" href="#L1994">1994</a> }
+<a class="jxr_linenumber" name="L1995" href="#L1995">1995</a> <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( testPropertiesFile != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L1996" href="#L1996">1996</a> {
+<a class="jxr_linenumber" name="L1997" href="#L1997">1997</a> propertiesFile = <strong class="jxr_keyword">new</strong> File( basedir, testPropertiesFile );
+<a class="jxr_linenumber" name="L1998" href="#L1998">1998</a> }
+<a class="jxr_linenumber" name="L1999" href="#L1999">1999</a>
+<a class="jxr_linenumber" name="L2000" href="#L2000">2000</a> <strong class="jxr_keyword">if</strong> ( propertiesFile != <strong class="jxr_keyword">null</strong> && propertiesFile.isFile() )
+<a class="jxr_linenumber" name="L2001" href="#L2001">2001</a> {
+<a class="jxr_linenumber" name="L2002" href="#L2002">2002</a> InputStream fin = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L2003" href="#L2003">2003</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L2004" href="#L2004">2004</a> {
+<a class="jxr_linenumber" name="L2005" href="#L2005">2005</a> fin = <strong class="jxr_keyword">new</strong> FileInputStream( propertiesFile );
+<a class="jxr_linenumber" name="L2006" href="#L2006">2006</a>
+<a class="jxr_linenumber" name="L2007" href="#L2007">2007</a> Properties loadedProperties = <strong class="jxr_keyword">new</strong> Properties();
+<a class="jxr_linenumber" name="L2008" href="#L2008">2008</a> loadedProperties.load( fin );
+<a class="jxr_linenumber" name="L2009" href="#L2009">2009</a> fin.close();
+<a class="jxr_linenumber" name="L2010" href="#L2010">2010</a> fin = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L2011" href="#L2011">2011</a> collectedTestProperties.putAll( loadedProperties );
+<a class="jxr_linenumber" name="L2012" href="#L2012">2012</a> }
+<a class="jxr_linenumber" name="L2013" href="#L2013">2013</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L2014" href="#L2014">2014</a> {
+<a class="jxr_linenumber" name="L2015" href="#L2015">2015</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading system properties from "</span> + propertiesFile );
+<a class="jxr_linenumber" name="L2016" href="#L2016">2016</a> }
+<a class="jxr_linenumber" name="L2017" href="#L2017">2017</a> <strong class="jxr_keyword">finally</strong>
+<a class="jxr_linenumber" name="L2018" href="#L2018">2018</a> {
+<a class="jxr_linenumber" name="L2019" href="#L2019">2019</a> IOUtil.close( fin );
+<a class="jxr_linenumber" name="L2020" href="#L2020">2020</a> }
+<a class="jxr_linenumber" name="L2021" href="#L2021">2021</a> }
+<a class="jxr_linenumber" name="L2022" href="#L2022">2022</a>
+<a class="jxr_linenumber" name="L2023" href="#L2023">2023</a> <strong class="jxr_keyword">return</strong> collectedTestProperties;
+<a class="jxr_linenumber" name="L2024" href="#L2024">2024</a> }
+<a class="jxr_linenumber" name="L2025" href="#L2025">2025</a>
+<a class="jxr_linenumber" name="L2026" href="#L2026">2026</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L2027" href="#L2027">2027</a> <em class="jxr_javadoccomment"> * Verifies the invocation result.</em>
+<a class="jxr_linenumber" name="L2028" href="#L2028">2028</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L2029" href="#L2029">2029</a> <em class="jxr_javadoccomment"> * @param result The invocation result to check, must not be <code>null</code>.</em>
+<a class="jxr_linenumber" name="L2030" href="#L2030">2030</a> <em class="jxr_javadoccomment"> * @param invocationIndex The index of the invocation for which to check the exit code, must not be negative.</em>
+<a class="jxr_linenumber" name="L2031" href="#L2031">2031</a> <em class="jxr_javadoccomment"> * @param invokerProperties The invoker properties used to check the exit code, must not be <code>null</code>.</em>
+<a class="jxr_linenumber" name="L2032" href="#L2032">2032</a> <em class="jxr_javadoccomment"> * @param logger The build logger, may be <code>null</code> if logging is disabled.</em>
+<a class="jxr_linenumber" name="L2033" href="#L2033">2033</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.shared.scriptinterpreter.RunFailureException If the invocation result indicates a build</em>
+<a class="jxr_linenumber" name="L2034" href="#L2034">2034</a> <em class="jxr_javadoccomment"> * failure.</em>
+<a class="jxr_linenumber" name="L2035" href="#L2035">2035</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L2036" href="#L2036">2036</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> verify( InvocationResult result, <strong class="jxr_keyword">int</strong> invocationIndex, InvokerProperties invokerProperties,
+<a class="jxr_linenumber" name="L2037" href="#L2037">2037</a> <a href="../../../../../org/apache/maven/plugins/invoker/FileLogger.html">FileLogger</a> logger )
+<a class="jxr_linenumber" name="L2038" href="#L2038">2038</a> <strong class="jxr_keyword">throws</strong> RunFailureException
+<a class="jxr_linenumber" name="L2039" href="#L2039">2039</a> {
+<a class="jxr_linenumber" name="L2040" href="#L2040">2040</a> <strong class="jxr_keyword">if</strong> ( result.getExecutionException() != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L2041" href="#L2041">2041</a> {
+<a class="jxr_linenumber" name="L2042" href="#L2042">2042</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RunFailureException( <span class="jxr_string">"The Maven invocation failed. "</span>
+<a class="jxr_linenumber" name="L2043" href="#L2043">2043</a> + result.getExecutionException().getMessage(), BuildJob.Result.ERROR );
+<a class="jxr_linenumber" name="L2044" href="#L2044">2044</a> }
+<a class="jxr_linenumber" name="L2045" href="#L2045">2045</a> <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( !invokerProperties.isExpectedResult( result.getExitCode(), invocationIndex ) )
+<a class="jxr_linenumber" name="L2046" href="#L2046">2046</a> {
+<a class="jxr_linenumber" name="L2047" href="#L2047">2047</a> StringBuilder buffer = <strong class="jxr_keyword">new</strong> StringBuilder( 256 );
+<a class="jxr_linenumber" name="L2048" href="#L2048">2048</a> buffer.append( <span class="jxr_string">"The build exited with code "</span> ).append( result.getExitCode() ).append( <span class="jxr_string">". "</span> );
+<a class="jxr_linenumber" name="L2049" href="#L2049">2049</a> <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2050" href="#L2050">2050</a> {
-<a class="jxr_linenumber" name="L2051" href="#L2051">2051</a> buffer.append( <span class="jxr_string">"See console output for details."</span> );
-<a class="jxr_linenumber" name="L2052" href="#L2052">2052</a> }
-<a class="jxr_linenumber" name="L2053" href="#L2053">2053</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RunFailureException( buffer.toString(), BuildJob.Result.FAILURE_BUILD );
-<a class="jxr_linenumber" name="L2054" href="#L2054">2054</a> }
-<a class="jxr_linenumber" name="L2055" href="#L2055">2055</a> }
-<a class="jxr_linenumber" name="L2056" href="#L2056">2056</a>
-<a class="jxr_linenumber" name="L2057" href="#L2057">2057</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L2058" href="#L2058">2058</a> <em class="jxr_javadoccomment"> * Gets the goal list for the specified project.</em>
-<a class="jxr_linenumber" name="L2059" href="#L2059">2059</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L2060" href="#L2060">2060</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
-<a class="jxr_linenumber" name="L2061" href="#L2061">2061</a> <em class="jxr_javadoccomment"> * @return The list of goals to run when building the project, may be empty but never <code>null</code>.</em>
-<a class="jxr_linenumber" name="L2062" href="#L2062">2062</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the profile file could not be read.</em>
-<a class="jxr_linenumber" name="L2063" href="#L2063">2063</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L2064" href="#L2064">2064</a> List<String> getGoals( <strong class="jxr_keyword">final</strong> File basedir )
-<a class="jxr_linenumber" name="L2065" href="#L2065">2065</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a class="jxr_linenumber" name="L2066" href="#L2066">2066</a> {
-<a class="jxr_linenumber" name="L2067" href="#L2067">2067</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L2068" href="#L2068">2068</a> {
-<a class="jxr_linenumber" name="L2069" href="#L2069">2069</a> <em class="jxr_comment">// FIXME: Currently we have null for goalsFile which has been removed.</em>
-<a class="jxr_linenumber" name="L2070" href="#L2070">2070</a> <em class="jxr_comment">// This might mean we can remove getGoals() at all ? Check this.</em>
-<a class="jxr_linenumber" name="L2071" href="#L2071">2071</a> <strong class="jxr_keyword">return</strong> getTokens( basedir, <strong class="jxr_keyword">null</strong>, goals );
-<a class="jxr_linenumber" name="L2072" href="#L2072">2072</a> }
-<a class="jxr_linenumber" name="L2073" href="#L2073">2073</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L2051" href="#L2051">2051</a> buffer.append( <span class="jxr_string">"See "</span> );
+<a class="jxr_linenumber" name="L2052" href="#L2052">2052</a> buffer.append( logger.getOutputFile().getAbsolutePath() );
+<a class="jxr_linenumber" name="L2053" href="#L2053">2053</a> buffer.append( <span class="jxr_string">" for details."</span> );
+<a class="jxr_linenumber" name="L2054" href="#L2054">2054</a> }
+<a class="jxr_linenumber" name="L2055" href="#L2055">2055</a> <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L2056" href="#L2056">2056</a> {
+<a class="jxr_linenumber" name="L2057" href="#L2057">2057</a> buffer.append( <span class="jxr_string">"See console output for details."</span> );
+<a class="jxr_linenumber" name="L2058" href="#L2058">2058</a> }
+<a class="jxr_linenumber" name="L2059" href="#L2059">2059</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RunFailureException( buffer.toString(), BuildJob.Result.FAILURE_BUILD );
+<a class="jxr_linenumber" name="L2060" href="#L2060">2060</a> }
+<a class="jxr_linenumber" name="L2061" href="#L2061">2061</a> }
+<a class="jxr_linenumber" name="L2062" href="#L2062">2062</a>
+<a class="jxr_linenumber" name="L2063" href="#L2063">2063</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L2064" href="#L2064">2064</a> <em class="jxr_javadoccomment"> * Gets the goal list for the specified project.</em>
+<a class="jxr_linenumber" name="L2065" href="#L2065">2065</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L2066" href="#L2066">2066</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
+<a class="jxr_linenumber" name="L2067" href="#L2067">2067</a> <em class="jxr_javadoccomment"> * @return The list of goals to run when building the project, may be empty but never <code>null</code>.</em>
+<a class="jxr_linenumber" name="L2068" href="#L2068">2068</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the profile file could not be read.</em>
+<a class="jxr_linenumber" name="L2069" href="#L2069">2069</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L2070" href="#L2070">2070</a> List<String> getGoals( <strong class="jxr_keyword">final</strong> File basedir )
+<a class="jxr_linenumber" name="L2071" href="#L2071">2071</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L2072" href="#L2072">2072</a> {
+<a class="jxr_linenumber" name="L2073" href="#L2073">2073</a> <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L2074" href="#L2074">2074</a> {
-<a class="jxr_linenumber" name="L2075" href="#L2075">2075</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"error reading goals"</span>, e );
-<a class="jxr_linenumber" name="L2076" href="#L2076">2076</a> }
-<a class="jxr_linenumber" name="L2077" href="#L2077">2077</a> }
-<a class="jxr_linenumber" name="L2078" href="#L2078">2078</a>
-<a class="jxr_linenumber" name="L2079" href="#L2079">2079</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L2080" href="#L2080">2080</a> <em class="jxr_javadoccomment"> * Gets the profile list for the specified project.</em>
-<a class="jxr_linenumber" name="L2081" href="#L2081">2081</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L2082" href="#L2082">2082</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
-<a class="jxr_linenumber" name="L2083" href="#L2083">2083</a> <em class="jxr_javadoccomment"> * @return The list of profiles to activate when building the project, may be empty but never <code>null</code>.</em>
-<a class="jxr_linenumber" name="L2084" href="#L2084">2084</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the profile file could not be read.</em>
-<a class="jxr_linenumber" name="L2085" href="#L2085">2085</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L2086" href="#L2086">2086</a> List<String> getProfiles( File basedir )
-<a class="jxr_linenumber" name="L2087" href="#L2087">2087</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a class="jxr_linenumber" name="L2088" href="#L2088">2088</a> {
-<a class="jxr_linenumber" name="L2089" href="#L2089">2089</a> <strong class="jxr_keyword">try</strong>
-<a class="jxr_linenumber" name="L2090" href="#L2090">2090</a> {
-<a class="jxr_linenumber" name="L2091" href="#L2091">2091</a> <strong class="jxr_keyword">return</strong> getTokens( basedir, <strong class="jxr_keyword">null</strong>, profiles );
-<a class="jxr_linenumber" name="L2092" href="#L2092">2092</a> }
-<a class="jxr_linenumber" name="L2093" href="#L2093">2093</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a class="jxr_linenumber" name="L2094" href="#L2094">2094</a> {
-<a class="jxr_linenumber" name="L2095" href="#L2095">2095</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"error reading profiles"</span>, e );
-<a class="jxr_linenumber" name="L2096" href="#L2096">2096</a> }
-<a class="jxr_linenumber" name="L2097" href="#L2097">2097</a> }
-<a class="jxr_linenumber" name="L2098" href="#L2098">2098</a>
-<a class="jxr_linenumber" name="L2099" href="#L2099">2099</a> <strong class="jxr_keyword">private</strong> List<String> calculateExcludes()
-<a class="jxr_linenumber" name="L2100" href="#L2100">2100</a> <strong class="jxr_keyword">throws</strong> IOException
-<a class="jxr_linenumber" name="L2101" href="#L2101">2101</a> {
-<a class="jxr_linenumber" name="L2102" href="#L2102">2102</a> List<String> excludes =
-<a class="jxr_linenumber" name="L2103" href="#L2103">2103</a> ( pomExcludes != <strong class="jxr_keyword">null</strong> ) ? <strong class="jxr_keyword">new</strong> ArrayList<String>( pomExcludes ) : <strong class="jxr_keyword">new</strong> ArrayList<String>();
-<a class="jxr_linenumber" name="L2104" href="#L2104">2104</a> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">this</strong>.settingsFile != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L2105" href="#L2105">2105</a> {
-<a class="jxr_linenumber" name="L2106" href="#L2106">2106</a> String exclude = relativizePath( <strong class="jxr_keyword">this</strong>.settingsFile, projectsDirectory.getCanonicalPath() );
-<a class="jxr_linenumber" name="L2107" href="#L2107">2107</a> <strong class="jxr_keyword">if</strong> ( exclude != <strong class="jxr_keyword">null</strong> )
-<a class="jxr_linenumber" name="L2108" href="#L2108">2108</a> {
-<a class="jxr_linenumber" name="L2109" href="#L2109">2109</a> excludes.add( exclude.replace( '\\', '/' ) );
-<a class="jxr_linenumber" name="L2110" href="#L2110">2110</a> getLog().debug( <span class="jxr_string">"Automatically excluded "</span> + exclude + <span class="jxr_string">" from project scanning"</span> );
-<a class="jxr_linenumber" name="L2111" href="#L2111">2111</a> }
-<a class="jxr_linenumber" name="L2112" href="#L2112">2112</a> }
-<a class="jxr_linenumber" name="L2113" href="#L2113">2113</a> <strong class="jxr_keyword">return</strong> excludes;
-<a class="jxr_linenumber" name="L2114" href="#L2114">2114</a>
-<a class="jxr_linenumber" name="L2115" href="#L2115">2115</a> }
-<a class="jxr_linenumber" name="L2116" href="#L2116">2116</a>
-<a class="jxr_linenumber" name="L2117" href="#L2117">2117</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L2118" href="#L2118">2118</a> <em class="jxr_javadoccomment"> * @return The list of setupUp jobs.</em>
-<a class="jxr_linenumber" name="L2119" href="#L2119">2119</a> <em class="jxr_javadoccomment"> * @throws IOException</em>
-<a class="jxr_linenumber" name="L2120" href="#L2120">2120</a> <em class="jxr_javadoccomment"> * @see {@link #setupIncludes}</em>
-<a class="jxr_linenumber" name="L2121" href="#L2121">2121</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L2122" href="#L2122">2122</a> <strong class="jxr_keyword">private</strong> BuildJob[] getSetupBuildJobsFromFolders()
-<a class="jxr_linenumber" name="L2123" href="#L2123">2123</a> <strong class="jxr_keyword">throws</strong> IOException
-<a class="jxr_linenumber" name="L2124" href="#L2124">2124</a> {
-<a class="jxr_linenumber" name="L2125" href="#L2125">2125</a> List<String> excludes = calculateExcludes();
-<a class="jxr_linenumber" name="L2126" href="#L2126">2126</a>
-<a class="jxr_linenumber" name="L2127" href="#L2127">2127</a> BuildJob[] setupPoms = scanProjectsDirectory( setupIncludes, excludes, BuildJob.Type.SETUP );
-<a class="jxr_linenumber" name="L2128" href="#L2128">2128</a> <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a class="jxr_linenumber" name="L2129" href="#L2129">2129</a> {
-<a class="jxr_linenumber" name="L2130" href="#L2130">2130</a> getLog().debug( <span class="jxr_string">"Setup projects: "</span> + Arrays.asList( setupPoms ) );
-<a class="jxr_linenumber" name="L2131" href="#L2131">2131</a> }
+<a class="jxr_linenumber" name="L2075" href="#L2075">2075</a> <em class="jxr_comment">// FIXME: Currently we have null for goalsFile which has been removed.</em>
+<a class="jxr_linenumber" name="L2076" href="#L2076">2076</a> <em class="jxr_comment">// This might mean we can remove getGoals() at all ? Check this.</em>
+<a class="jxr_linenumber" name="L2077" href="#L2077">2077</a> <strong class="jxr_keyword">return</strong> getTokens( basedir, <strong class="jxr_keyword">null</strong>, goals );
+<a class="jxr_linenumber" name="L2078" href="#L2078">2078</a> }
+<a class="jxr_linenumber" name="L2079" href="#L2079">2079</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L2080" href="#L2080">2080</a> {
+<a class="jxr_linenumber" name="L2081" href="#L2081">2081</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"error reading goals"</span>, e );
+<a class="jxr_linenumber" name="L2082" href="#L2082">2082</a> }
+<a class="jxr_linenumber" name="L2083" href="#L2083">2083</a> }
+<a class="jxr_linenumber" name="L2084" href="#L2084">2084</a>
+<a class="jxr_linenumber" name="L2085" href="#L2085">2085</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L2086" href="#L2086">2086</a> <em class="jxr_javadoccomment"> * Gets the profile list for the specified project.</em>
+<a class="jxr_linenumber" name="L2087" href="#L2087">2087</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L2088" href="#L2088">2088</a> <em class="jxr_javadoccomment"> * @param basedir The base directory of the project, must not be <code>null</code>.</em>
+<a class="jxr_linenumber" name="L2089" href="#L2089">2089</a> <em class="jxr_javadoccomment"> * @return The list of profiles to activate when building the project, may be empty but never <code>null</code>.</em>
+<a class="jxr_linenumber" name="L2090" href="#L2090">2090</a> <em class="jxr_javadoccomment"> * @throws org.apache.maven.plugin.MojoExecutionException If the profile file could not be read.</em>
+<a class="jxr_linenumber" name="L2091" href="#L2091">2091</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L2092" href="#L2092">2092</a> List<String> getProfiles( File basedir )
+<a class="jxr_linenumber" name="L2093" href="#L2093">2093</a> <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L2094" href="#L2094">2094</a> {
+<a class="jxr_linenumber" name="L2095" href="#L2095">2095</a> <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L2096" href="#L2096">2096</a> {
+<a class="jxr_linenumber" name="L2097" href="#L2097">2097</a> <strong class="jxr_keyword">return</strong> getTokens( basedir, <strong class="jxr_keyword">null</strong>, profiles );
+<a class="jxr_linenumber" name="L2098" href="#L2098">2098</a> }
+<a class="jxr_linenumber" name="L2099" href="#L2099">2099</a> <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L2100" href="#L2100">2100</a> {
+<a class="jxr_linenumber" name="L2101" href="#L2101">2101</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"error reading profiles"</span>, e );
+<a class="jxr_linenumber" name="L2102" href="#L2102">2102</a> }
+<a class="jxr_linenumber" name="L2103" href="#L2103">2103</a> }
+<a class="jxr_linenumber" name="L2104" href="#L2104">2104</a>
+<a class="jxr_linenumber" name="L2105" href="#L2105">2105</a> <strong class="jxr_keyword">private</strong> List<String> calculateExcludes()
+<a class="jxr_linenumber" name="L2106" href="#L2106">2106</a> <strong class="jxr_keyword">throws</strong> IOException
+<a class="jxr_linenumber" name="L2107" href="#L2107">2107</a> {
+<a class="jxr_linenumber" name="L2108" href="#L2108">2108</a> List<String> excludes =
+<a class="jxr_linenumber" name="L2109" href="#L2109">2109</a> ( pomExcludes != <strong class="jxr_keyword">null</strong> ) ? <strong class="jxr_keyword">new</strong> ArrayList<String>( pomExcludes ) : <strong class="jxr_keyword">new</strong> ArrayList<String>();
+<a class="jxr_linenumber" name="L2110" href="#L2110">2110</a> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">this</strong>.settingsFile != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L2111" href="#L2111">2111</a> {
+<a class="jxr_linenumber" name="L2112" href="#L2112">2112</a> String exclude = relativizePath( <strong class="jxr_keyword">this</strong>.settingsFile, projectsDirectory.getCanonicalPath() );
+<a class="jxr_linenumber" name="L2113" href="#L2113">2113</a> <strong class="jxr_keyword">if</strong> ( exclude != <strong class="jxr_keyword">null</strong> )
[... 926 lines stripped ...]