Modified: websites/production/maven/components/shared-archives/maven-shared-utils-LATEST/xref/org/apache/maven/shared/utils/io/FileUtils.html ============================================================================== --- websites/production/maven/components/shared-archives/maven-shared-utils-LATEST/xref/org/apache/maven/shared/utils/io/FileUtils.html (original) +++ websites/production/maven/components/shared-archives/maven-shared-utils-LATEST/xref/org/apache/maven/shared/utils/io/FileUtils.html Sat May 28 22:12:44 2016 @@ -91,7 +91,7 @@ <a class="jxr_linenumber" name="L83" href="#L83">83</a> <em class="jxr_javadoccomment"> * @author <a href="<a href="mailto:christoph.r...@dlr.de" target="alexandria_uri">mailto:christoph.r...@dlr.de</a>">Christoph.Reck</a></em> <a class="jxr_linenumber" name="L84" href="#L84">84</a> <em class="jxr_javadoccomment"> * @author <a href="<a href="mailto:pe...@apache.org" target="alexandria_uri">mailto:pe...@apache.org</a>">Peter Donald</a></em> <a class="jxr_linenumber" name="L85" href="#L85">85</a> <em class="jxr_javadoccomment"> * @author <a href="<a href="mailto:je...@apache.org" target="alexandria_uri">mailto:je...@apache.org</a>">Jeff Turner</a></em> -<a class="jxr_linenumber" name="L86" href="#L86">86</a> <em class="jxr_javadoccomment"> * @version $Id: FileUtils.java 1706704 2015-10-04 17:35:19Z khmarbaise $</em> +<a class="jxr_linenumber" name="L86" href="#L86">86</a> <em class="jxr_javadoccomment"> * @version $Id: FileUtils.java 1737573 2016-04-03 11:34:45Z khmarbaise $</em> <a class="jxr_linenumber" name="L87" href="#L87">87</a> <em class="jxr_javadoccomment"> */</em> <a class="jxr_linenumber" name="L88" href="#L88">88</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/maven/shared/utils/io/FileUtils.html">FileUtils</a> <a class="jxr_linenumber" name="L89" href="#L89">89</a> { @@ -1235,858 +1235,857 @@ <a class="jxr_linenumber" name="L1227" href="#L1227">1227</a> <strong class="jxr_keyword">if</strong> ( Os.isFamily( Os.FAMILY_WINDOWS ) ) <a class="jxr_linenumber" name="L1228" href="#L1228">1228</a> { <a class="jxr_linenumber" name="L1229" href="#L1229">1229</a> file = file.getCanonicalFile(); -<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a> System.gc(); -<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a> } -<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a> -<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a> <strong class="jxr_keyword">try</strong> -<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a> { -<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a> Thread.sleep( 10 ); -<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a> <strong class="jxr_keyword">return</strong> deleteLegacyStyle( file ); -<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a> } -<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a> <strong class="jxr_keyword">catch</strong> ( InterruptedException ex ) -<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a> { -<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a> <strong class="jxr_keyword">return</strong> deleteLegacyStyle( file ); -<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a> } -<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a> } -<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a> -<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>; -<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a> } +<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a> } +<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a> +<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a> <strong class="jxr_keyword">try</strong> +<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a> { +<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a> Thread.sleep( 10 ); +<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a> <strong class="jxr_keyword">return</strong> deleteLegacyStyle( file ); +<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a> } +<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a> <strong class="jxr_keyword">catch</strong> ( InterruptedException ex ) +<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a> { +<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a> <strong class="jxr_keyword">return</strong> deleteLegacyStyle( file ); +<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a> } +<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a> } +<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a> +<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>; +<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a> } +<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a> <a class="jxr_linenumber" name="L1246" href="#L1246">1246</a> -<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a> -<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a> <em class="jxr_javadoccomment"> * Make a directory.</em> -<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a> <em class="jxr_javadoccomment"> * @param file not null</em> -<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a> <em class="jxr_javadoccomment"> * @throws IOException If there already exists a file with specified name or</em> -<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a> <em class="jxr_javadoccomment"> * the directory is unable to be created</em> -<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException if the file contains illegal Windows characters under Windows OS.</em> -<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a> <em class="jxr_javadoccomment"> * @see #INVALID_CHARACTERS_FOR_WINDOWS_FILE_NAME</em> -<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> forceMkdir( @Nonnull <strong class="jxr_keyword">final</strong> File file ) -<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a> { -<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a> <strong class="jxr_keyword">if</strong> ( Os.isFamily( Os.FAMILY_WINDOWS ) && !isValidWindowsFileName( file ) ) -<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a> { -<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( -<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a> <span class="jxr_string">"The file ("</span> + file.getAbsolutePath() + <span class="jxr_string">") cannot contain any of the following characters: \n"</span> -<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a> + StringUtils.join( INVALID_CHARACTERS_FOR_WINDOWS_FILE_NAME, <span class="jxr_string">" "</span> ) ); -<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a> } -<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a> -<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a> <strong class="jxr_keyword">if</strong> ( file.exists() ) -<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a> { -<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a> <strong class="jxr_keyword">if</strong> ( file.isFile() ) -<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a> { -<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a> <strong class="jxr_keyword">final</strong> String message = -<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a> <span class="jxr_string">"File "</span> + file + <span class="jxr_string">" exists and is "</span> + <span class="jxr_string">"not a directory. Unable to create directory."</span>; -<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( message ); -<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a> } -<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a> } -<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a> <strong class="jxr_keyword">else</strong> -<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a> { -<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a> <strong class="jxr_keyword">if</strong> ( !file.mkdirs() ) -<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a> { -<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a> <strong class="jxr_keyword">final</strong> String message = <span class="jxr_string">"Unable to create directory "</span> + file; -<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( message ); -<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a> } -<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a> } -<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a> } -<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a> -<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a> <em class="jxr_javadoccomment"> * Recursively delete a directory.</em> -<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a> <em class="jxr_javadoccomment"> * @param directory a directory</em> -<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a> <em class="jxr_javadoccomment"> * @throws IOException if any</em> -<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> deleteDirectory( @Nonnull <strong class="jxr_keyword">final</strong> String directory ) -<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a> { -<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a> deleteDirectory( <strong class="jxr_keyword">new</strong> File( directory ) ); -<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a> } -<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a> -<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a> <em class="jxr_javadoccomment"> * Recursively delete a directory.</em> -<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a> <em class="jxr_javadoccomment"> * @param directory a directory</em> -<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a> <em class="jxr_javadoccomment"> * @throws IOException if any</em> -<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> deleteDirectory( @Nonnull <strong class="jxr_keyword">final</strong> File directory ) -<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a> { -<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a> <strong class="jxr_keyword">if</strong> ( !directory.exists() ) -<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a> { -<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a> <strong class="jxr_keyword">return</strong>; -<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a> } -<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a> -<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a> <em class="jxr_comment">/* try delete the directory before its contents, which will take</em> -<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a> <em class="jxr_comment"> * care of any directories that are really symbolic links.</em> -<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a> <em class="jxr_comment"> */</em> -<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a> <strong class="jxr_keyword">if</strong> ( deleteLegacyStyle( directory ) ) -<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a> { -<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a> <strong class="jxr_keyword">return</strong>; -<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a> } -<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a> -<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a> cleanDirectory( directory ); -<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a> <strong class="jxr_keyword">if</strong> ( !deleteLegacyStyle( directory ) ) -<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a> { -<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a> <strong class="jxr_keyword">final</strong> String message = <span class="jxr_string">"Directory "</span> + directory + <span class="jxr_string">" unable to be deleted."</span>; -<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( message ); -<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a> } -<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a> } -<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> -<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a> <em class="jxr_javadoccomment"> * Clean a directory without deleting it.</em> -<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a> <em class="jxr_javadoccomment"> * @param directory a directory</em> -<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a> <em class="jxr_javadoccomment"> * @throws IOException if any</em> -<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> cleanDirectory( @Nonnull <strong class="jxr_keyword">final</strong> File directory ) -<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a> { -<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a> <strong class="jxr_keyword">if</strong> ( !directory.exists() ) -<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a> { -<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a> <strong class="jxr_keyword">final</strong> String message = directory + <span class="jxr_string">" does not exist"</span>; -<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( message ); -<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a> } -<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a> -<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a> <strong class="jxr_keyword">if</strong> ( !directory.isDirectory() ) -<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a> { -<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a> <strong class="jxr_keyword">final</strong> String message = directory + <span class="jxr_string">" is not a directory"</span>; -<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( message ); -<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a> } -<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a> -<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a> IOException exception = <strong class="jxr_keyword">null</strong>; -<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a> -<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a> <strong class="jxr_keyword">final</strong> File[] files = directory.listFiles(); -<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a> -<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a> <strong class="jxr_keyword">if</strong> ( files == <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> { -<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a> <strong class="jxr_keyword">return</strong>; -<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a> } -<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a> -<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a> <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">final</strong> File file : files ) -<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a> { -<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a> <strong class="jxr_keyword">try</strong> -<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a> { -<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a> forceDelete( file ); -<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a> } -<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a> <strong class="jxr_keyword">catch</strong> ( <strong class="jxr_keyword">final</strong> IOException ioe ) -<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a> { -<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a> exception = ioe; -<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a> } -<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a> } -<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a> -<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != exception ) -<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a> { -<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a> <strong class="jxr_keyword">throw</strong> exception; -<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a> } -<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a> } -<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a> -<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a> <em class="jxr_javadoccomment"> * Recursively count size of a directory.</em> -<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a> <em class="jxr_javadoccomment"> * @param directory a directory</em> -<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a> <em class="jxr_javadoccomment"> * @return size of directory in bytes.</em> -<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> sizeOfDirectory( @Nonnull <strong class="jxr_keyword">final</strong> String directory ) -<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a> { -<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a> <strong class="jxr_keyword">return</strong> sizeOfDirectory( <strong class="jxr_keyword">new</strong> File( directory ) ); -<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a> } -<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a> -<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a> <em class="jxr_javadoccomment"> * Recursively count size of a directory.</em> -<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a> <em class="jxr_javadoccomment"> * @param directory a directory</em> -<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a> <em class="jxr_javadoccomment"> * @return size of directory in bytes.</em> -<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> sizeOfDirectory( @Nonnull <strong class="jxr_keyword">final</strong> File directory ) -<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a> { -<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a> <strong class="jxr_keyword">if</strong> ( !directory.exists() ) -<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a> { -<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a> <strong class="jxr_keyword">final</strong> String message = directory + <span class="jxr_string">" does not exist"</span>; -<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( message ); -<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a> } -<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a> -<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a> <strong class="jxr_keyword">if</strong> ( !directory.isDirectory() ) -<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a> { -<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a> <strong class="jxr_keyword">final</strong> String message = directory + <span class="jxr_string">" is not a directory"</span>; -<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( message ); -<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a> } -<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a> -<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a> <strong class="jxr_keyword">long</strong> size = 0; -<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a> -<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a> <strong class="jxr_keyword">final</strong> File[] files = directory.listFiles(); -<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a> <strong class="jxr_keyword">if</strong> ( files == <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a> { -<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( <span class="jxr_string">"Problems reading directory"</span> ); -<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a> } -<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a> -<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a> <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">final</strong> File file : files ) -<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a> { -<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a> <strong class="jxr_keyword">if</strong> ( file.isDirectory() ) -<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a> { -<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a> size += sizeOfDirectory( file ); -<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a> } -<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a> <strong class="jxr_keyword">else</strong> -<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a> { -<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a> size += file.length(); -<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a> } -<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a> } -<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a> -<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a> <strong class="jxr_keyword">return</strong> size; -<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a> } -<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a> -<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a> <em class="jxr_javadoccomment"> * Return the files contained in the directory, using inclusion and exclusion Ant patterns,</em> -<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a> <em class="jxr_javadoccomment"> * including the directory name in each of the files</em> -<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a> <em class="jxr_javadoccomment"> * @param directory the directory to scan</em> -<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a> <em class="jxr_javadoccomment"> * @param includes the includes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a> <em class="jxr_javadoccomment"> * @param excludes the excludes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a> <em class="jxr_javadoccomment"> * @return a list of File objects</em> -<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a> <em class="jxr_javadoccomment"> * @throws IOException in case of failure.</em> -<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a> <em class="jxr_javadoccomment"> * @see #getFileNames(File, String, String, boolean)</em> -<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a> @Nonnull -<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List<File> getFiles( @Nonnull File directory, @Nullable String includes, @Nullable String excludes ) -<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a> { -<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a> <strong class="jxr_keyword">return</strong> getFiles( directory, includes, excludes, <strong class="jxr_keyword">true</strong> ); -<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a> } -<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a> -<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a> <em class="jxr_javadoccomment"> * Return the files contained in the directory, using inclusion and exclusion Ant patterns</em> -<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a> <em class="jxr_javadoccomment"> * @param directory the directory to scan</em> -<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a> <em class="jxr_javadoccomment"> * @param includes the includes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a> <em class="jxr_javadoccomment"> * @param excludes the excludes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a> <em class="jxr_javadoccomment"> * @param includeBasedir true to include the base dir in each file</em> -<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a> <em class="jxr_javadoccomment"> * @return a list of File objects</em> -<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a> <em class="jxr_javadoccomment"> * @throws IOException in case of failure.</em> -<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a> <em class="jxr_javadoccomment"> * @see #getFileNames(File, String, String, boolean)</em> -<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a> @Nonnull -<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List<File> getFiles( @Nonnull File directory, @Nullable String includes, @Nullable String excludes, -<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a> <strong class="jxr_keyword">boolean</strong> includeBasedir ) -<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a> { -<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a> List<String> fileNames = getFileNames( directory, includes, excludes, includeBasedir ); -<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a> -<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> List<File> files = <strong class="jxr_keyword">new</strong> ArrayList<File>(); -<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a> -<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a> <strong class="jxr_keyword">for</strong> ( String filename : fileNames ) -<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a> { -<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a> files.add( <strong class="jxr_keyword">new</strong> File( filename ) ); -<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a> } -<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a> -<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a> <strong class="jxr_keyword">return</strong> files; -<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a> } -<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a> -<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a> <em class="jxr_javadoccomment"> * Return a list of files as String depending options.</em> -<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a> <em class="jxr_javadoccomment"> * This method use case sensitive file name.</em> -<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a> <em class="jxr_javadoccomment"> * @param directory the directory to scan</em> -<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a> <em class="jxr_javadoccomment"> * @param includes the includes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a> <em class="jxr_javadoccomment"> * @param excludes the excludes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a> <em class="jxr_javadoccomment"> * @param includeBasedir true to include the base dir in each String of file</em> -<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a> <em class="jxr_javadoccomment"> * @return a list of files as String</em> -<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a> <em class="jxr_javadoccomment"> * @throws IOException in case of failure.</em> -<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a> @Nonnull <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List<String> getFileNames( @Nonnull File directory, @Nullable String includes, -<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a> @Nullable String excludes, <strong class="jxr_keyword">boolean</strong> includeBasedir ) -<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a> { -<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a> <strong class="jxr_keyword">return</strong> getFileNames( directory, includes, excludes, includeBasedir, <strong class="jxr_keyword">true</strong> ); -<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a> } -<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a> -<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a> <em class="jxr_javadoccomment"> * Return a list of files as String depending options.</em> -<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a> <em class="jxr_javadoccomment"> * @param directory the directory to scan</em> -<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a> <em class="jxr_javadoccomment"> * @param includes the includes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a> <em class="jxr_javadoccomment"> * @param excludes the excludes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a> <em class="jxr_javadoccomment"> * @param includeBasedir true to include the base dir in each String of file</em> -<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a> <em class="jxr_javadoccomment"> * @param isCaseSensitive true if case sensitive</em> -<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> <em class="jxr_javadoccomment"> * @return a list of files as String</em> -<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a> <em class="jxr_javadoccomment"> * @throws IOException</em> -<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a> @Nonnull <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List<String> getFileNames( @Nonnull File directory, @Nullable String includes, -<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a> @Nullable String excludes, <strong class="jxr_keyword">boolean</strong> includeBasedir, -<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a> <strong class="jxr_keyword">boolean</strong> isCaseSensitive ) -<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a> { -<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a> <strong class="jxr_keyword">return</strong> getFileAndDirectoryNames( directory, includes, excludes, includeBasedir, isCaseSensitive, <strong class="jxr_keyword">true</strong>, false ); -<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a> } -<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a> -<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a> <em class="jxr_javadoccomment"> * Return a list of directories as String depending options.</em> -<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a> <em class="jxr_javadoccomment"> * This method use case sensitive file name.</em> -<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a> <em class="jxr_javadoccomment"> * @param directory the directory to scan</em> -<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a> <em class="jxr_javadoccomment"> * @param includes the includes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a> <em class="jxr_javadoccomment"> * @param excludes the excludes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a> <em class="jxr_javadoccomment"> * @param includeBasedir true to include the base dir in each String of file</em> -<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a> <em class="jxr_javadoccomment"> * @return a list of directories as String</em> -<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a> <em class="jxr_javadoccomment"> * @throws IOException in case of failure.</em> -<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a> @Nonnull <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List<String> getDirectoryNames( @Nonnull File directory, @Nullable String includes, -<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a> @Nullable String excludes, <strong class="jxr_keyword">boolean</strong> includeBasedir ) -<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a> { -<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a> <strong class="jxr_keyword">return</strong> getDirectoryNames( directory, includes, excludes, includeBasedir, <strong class="jxr_keyword">true</strong> ); -<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a> } -<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a> -<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a> <em class="jxr_javadoccomment"> * Return a list of directories as String depending options.</em> -<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a> <em class="jxr_javadoccomment"> * @param directory the directory to scan</em> -<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a> <em class="jxr_javadoccomment"> * @param includes the includes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a> <em class="jxr_javadoccomment"> * @param excludes the excludes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a> <em class="jxr_javadoccomment"> * @param includeBasedir true to include the base dir in each String of file</em> -<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a> <em class="jxr_javadoccomment"> * @param isCaseSensitive true if case sensitive</em> -<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a> <em class="jxr_javadoccomment"> * @return a list of directories as String</em> -<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a> <em class="jxr_javadoccomment"> * @throws IOException in case of failure.</em> -<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a> @Nonnull <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List<String> getDirectoryNames( @Nonnull File directory, @Nullable String includes, -<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a> @Nullable String excludes, <strong class="jxr_keyword">boolean</strong> includeBasedir, -<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a> <strong class="jxr_keyword">boolean</strong> isCaseSensitive ) -<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a> { -<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a> <strong class="jxr_keyword">return</strong> getFileAndDirectoryNames( directory, includes, excludes, includeBasedir, isCaseSensitive, false, <strong class="jxr_keyword">true</strong> ); -<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a> } -<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a> -<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a> <em class="jxr_javadoccomment"> * Return a list of files as String depending options.</em> -<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a> <em class="jxr_javadoccomment"> * @param directory the directory to scan</em> -<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a> <em class="jxr_javadoccomment"> * @param includes the includes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a> <em class="jxr_javadoccomment"> * @param excludes the excludes pattern, comma separated</em> -<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a> <em class="jxr_javadoccomment"> * @param includeBasedir true to include the base dir in each String of file</em> -<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a> <em class="jxr_javadoccomment"> * @param isCaseSensitive true if case sensitive</em> -<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a> <em class="jxr_javadoccomment"> * @param getFiles true if get files</em> -<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a> <em class="jxr_javadoccomment"> * @param getDirectories true if get directories</em> -<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a> <em class="jxr_javadoccomment"> * @return a list of files as String</em> -<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a> @Nonnull <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List<String> getFileAndDirectoryNames( File directory, @Nullable String includes, -<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a> @Nullable String excludes, <strong class="jxr_keyword">boolean</strong> includeBasedir, -<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a> <strong class="jxr_keyword">boolean</strong> isCaseSensitive, <strong class="jxr_keyword">boolean</strong> getFiles, -<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a> <strong class="jxr_keyword">boolean</strong> getDirectories ) -<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a> { -<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a> <a href="../../../../../../org/apache/maven/shared/utils/io/DirectoryScanner.html">DirectoryScanner</a> scanner = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/maven/shared/utils/io/DirectoryScanner.html">DirectoryScanner</a>(); -<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a> -<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a> scanner.setBasedir( directory ); -<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a> -<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a> <strong class="jxr_keyword">if</strong> ( includes != <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a> { -<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a> scanner.setIncludes( StringUtils.split( includes, <span class="jxr_string">","</span> ) ); -<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a> } -<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a> -<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a> <strong class="jxr_keyword">if</strong> ( excludes != <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a> { -<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a> scanner.setExcludes( StringUtils.split( excludes, <span class="jxr_string">","</span> ) ); -<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a> } -<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a> -<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a> scanner.setCaseSensitive( isCaseSensitive ); -<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a> -<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a> scanner.scan(); -<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a> -<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a> List<String> list = <strong class="jxr_keyword">new</strong> ArrayList<String>(); -<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a> -<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a> <strong class="jxr_keyword">if</strong> ( getFiles ) -<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a> { -<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a> String[] files = scanner.getIncludedFiles(); -<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a> -<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a> <strong class="jxr_keyword">for</strong> ( String file : files ) -<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a> { -<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a> <strong class="jxr_keyword">if</strong> ( includeBasedir ) -<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a> { -<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a> list.add( directory + FileUtils.FS + file ); -<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a> } -<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a> <strong class="jxr_keyword">else</strong> -<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a> { -<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a> list.add( file ); -<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a> } -<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a> } -<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a> } -<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> -<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a> <strong class="jxr_keyword">if</strong> ( getDirectories ) -<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a> { -<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a> String[] directories = scanner.getIncludedDirectories(); -<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a> -<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a> <strong class="jxr_keyword">for</strong> ( String directory1 : directories ) -<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a> { -<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a> <strong class="jxr_keyword">if</strong> ( includeBasedir ) -<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a> { -<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a> list.add( directory + FileUtils.FS + directory1 ); -<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a> } -<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a> <strong class="jxr_keyword">else</strong> -<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a> { -<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a> list.add( directory1 ); -<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a> } -<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a> } -<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a> } -<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a> -<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a> <strong class="jxr_keyword">return</strong> list; -<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a> } -<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a> -<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a> <em class="jxr_javadoccomment"> * Copy a directory to an other one.</em> -<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a> <em class="jxr_javadoccomment"> * @param sourceDirectory the source dir</em> -<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a> <em class="jxr_javadoccomment"> * @param destinationDirectory the target dir</em> -<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a> <em class="jxr_javadoccomment"> * @throws IOException if any</em> -<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> copyDirectory( @Nonnull File sourceDirectory, @Nonnull File destinationDirectory ) -<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a> { -<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a> copyDirectory( sourceDirectory, destinationDirectory, <span class="jxr_string">"**"</span>, <strong class="jxr_keyword">null</strong> ); -<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a> } -<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a> -<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a> <em class="jxr_javadoccomment"> * Copy a directory to an other one.</em> -<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a> <em class="jxr_javadoccomment"> * @param sourceDirectory the source dir</em> -<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a> <em class="jxr_javadoccomment"> * @param destinationDirectory the target dir</em> -<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a> <em class="jxr_javadoccomment"> * @param includes include pattern</em> -<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a> <em class="jxr_javadoccomment"> * @param excludes exlucde pattern</em> -<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a> <em class="jxr_javadoccomment"> * @throws IOException if any</em> -<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a> <em class="jxr_javadoccomment"> * @see #getFiles(File, String, String)</em> -<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> copyDirectory( @Nonnull File sourceDirectory, @Nonnull File destinationDirectory, -<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a> @Nullable String includes, @Nullable String excludes ) -<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a> { -<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a> <strong class="jxr_keyword">if</strong> ( !sourceDirectory.exists() ) -<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a> { -<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a> <strong class="jxr_keyword">return</strong>; -<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a> } -<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a> -<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a> List<File> files = getFiles( sourceDirectory, includes, excludes ); -<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a> -<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a> <strong class="jxr_keyword">for</strong> ( File file : files ) -<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a> { -<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a> copyFileToDirectory( file, destinationDirectory ); -<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a> } -<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a> } -<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a> -<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a> <em class="jxr_javadoccomment"> * Copies a entire directory structure.</em> -<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a> <em class="jxr_javadoccomment"> * <p/></em> -<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a> <em class="jxr_javadoccomment"> * Note:</em> -<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a> <em class="jxr_javadoccomment"> * <ul></em> -<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a> <em class="jxr_javadoccomment"> * <li>It will include empty directories.</em> -<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a> <em class="jxr_javadoccomment"> * <li>The <code>sourceDirectory</code> must exists.</em> -<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a> <em class="jxr_javadoccomment"> * </ul></em> -<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a> <em class="jxr_javadoccomment"> * @param sourceDirectory the source dir</em> -<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a> <em class="jxr_javadoccomment"> * @param destinationDirectory the target dir</em> -<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a> <em class="jxr_javadoccomment"> * @throws IOException if any</em> -<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> copyDirectoryStructure( @Nonnull File sourceDirectory, @Nonnull File destinationDirectory ) -<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a> { -<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a> copyDirectoryStructure( sourceDirectory, destinationDirectory, destinationDirectory, false ); -<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a> } -<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a> -<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> copyDirectoryStructure( @Nonnull File sourceDirectory, @Nonnull File destinationDirectory, -<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a> File rootDestinationDirectory, <strong class="jxr_keyword">boolean</strong> onlyModifiedFiles ) -<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a> { -<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a> <em class="jxr_comment">//noinspection ConstantConditions</em> -<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a> <strong class="jxr_keyword">if</strong> ( sourceDirectory == <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a> { -<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"source directory can't be null."</span> ); -<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a> } -<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a> -<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a> <em class="jxr_comment">//noinspection ConstantConditions</em> -<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a> <strong class="jxr_keyword">if</strong> ( destinationDirectory == <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a> { -<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"destination directory can't be null."</span> ); -<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a> } -<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a> -<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a> <strong class="jxr_keyword">if</strong> ( sourceDirectory.equals( destinationDirectory ) ) -<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a> { -<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"source and destination are the same directory."</span> ); -<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a> } -<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a> -<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a> <strong class="jxr_keyword">if</strong> ( !sourceDirectory.exists() ) -<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a> { -<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"Source directory doesn't exists ("</span> + sourceDirectory.getAbsolutePath() + <span class="jxr_string">")."</span> ); -<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a> } -<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a> -<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a> File[] files = sourceDirectory.listFiles(); -<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a> -<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a> <strong class="jxr_keyword">if</strong> ( files == <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a> { -<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a> <strong class="jxr_keyword">return</strong>; -<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> } -<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a> -<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a> String sourcePath = sourceDirectory.getAbsolutePath(); -<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a> -<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a> <strong class="jxr_keyword">for</strong> ( File file : files ) -<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a> { -<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a> <strong class="jxr_keyword">if</strong> ( file.equals( rootDestinationDirectory ) ) -<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a> { -<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a> <em class="jxr_comment">// We don't copy the destination directory in itself</em> -<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a> <strong class="jxr_keyword">continue</strong>; -<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a> } -<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a> -<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> String dest = file.getAbsolutePath(); -<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a> -<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a> dest = dest.substring( sourcePath.length() + 1 ); -<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a> -<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a> File destination = <strong class="jxr_keyword">new</strong> File( destinationDirectory, dest ); -<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a> -<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a> <strong class="jxr_keyword">if</strong> ( file.isFile() ) -<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a> { -<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a> destination = destination.getParentFile(); -<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a> -<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a> <strong class="jxr_keyword">if</strong> ( onlyModifiedFiles ) -<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a> { -<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a> copyFileToDirectoryIfModified( file, destination ); -<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a> } -<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a> <strong class="jxr_keyword">else</strong> -<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> { -<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a> copyFileToDirectory( file, destination ); -<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a> } -<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a> } -<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a> <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( file.isDirectory() ) -<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a> { -<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a> <strong class="jxr_keyword">if</strong> ( !destination.exists() && !destination.mkdirs() ) -<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a> { -<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( -<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a> <span class="jxr_string">"Could not create destination directory '"</span> + destination.getAbsolutePath() + <span class="jxr_string">"'."</span> ); -<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a> } -<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a> -<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a> copyDirectoryStructure( file, destination, rootDestinationDirectory, onlyModifiedFiles ); -<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a> } -<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a> <strong class="jxr_keyword">else</strong> -<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a> { -<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"Unknown file type: "</span> + file.getAbsolutePath() ); -<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a> } -<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a> } -<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> } -<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a> -<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> <em class="jxr_javadoccomment"> * Renames a file, even if that involves crossing file system boundaries.</em> -<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a> <em class="jxr_javadoccomment"> * <p/></em> -<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a> <em class="jxr_javadoccomment"> * <p>This will remove <code>to</code> (if it exists), ensure that</em> -<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a> <em class="jxr_javadoccomment"> * <code>to</code>'s parent directory exists and move</em> -<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a> <em class="jxr_javadoccomment"> * <code>from</code>, which involves deleting <code>from</code> as</em> -<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a> <em class="jxr_javadoccomment"> * well.</p></em> -<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a> <em class="jxr_javadoccomment"> * @param from the file to move</em> -<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a> <em class="jxr_javadoccomment"> * @param to the new file name</em> -<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a> <em class="jxr_javadoccomment"> * @throws IOException if anything bad happens during this process.</em> -<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a> <em class="jxr_javadoccomment"> * Note that <code>to</code> may have been deleted already when this happens.</em> -<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> rename( @Nonnull File from, @Nonnull File to ) -<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a> { -<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a> <strong class="jxr_keyword">if</strong> ( to.exists() && !deleteLegacyStyle( to ) ) -<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a> { -<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"Failed to delete "</span> + to + <span class="jxr_string">" while trying to rename "</span> + from ); -<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a> } -<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a> -<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a> File parent = to.getParentFile(); -<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a> <strong class="jxr_keyword">if</strong> ( parent != <strong class="jxr_keyword">null</strong> && !parent.exists() && !parent.mkdirs() ) -<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a> { -<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"Failed to create directory "</span> + parent + <span class="jxr_string">" while trying to rename "</span> + from ); -<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a> } -<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a> -<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a> <strong class="jxr_keyword">if</strong> ( !from.renameTo( to ) ) -<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a> { -<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a> copyFile( from, to ); -<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a> <strong class="jxr_keyword">if</strong> ( !deleteLegacyStyle( from ) ) -<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a> { -<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"Failed to delete "</span> + from + <span class="jxr_string">" while trying to rename it."</span> ); -<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a> } -<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> -<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a> <em class="jxr_javadoccomment"> * Create a temporary file in a given directory.</em> -<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a> <em class="jxr_javadoccomment"> * <p/></em> -<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a> <em class="jxr_javadoccomment"> * <p>The file denoted by the returned abstract pathname did not</em> -<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a> <em class="jxr_javadoccomment"> * exist before this method was invoked, any subsequent invocation</em> -<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> <em class="jxr_javadoccomment"> * of this method will yield a different file name.</p></em> -<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a> <em class="jxr_javadoccomment"> * <p/></em> -<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a> <em class="jxr_javadoccomment"> * The filename is prefixNNNNNsuffix where NNNN is a random number</em> -<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a> <em class="jxr_javadoccomment"> * </p></em> -<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a> <em class="jxr_javadoccomment"> * <p>This method is different to {@link File#createTempFile(String, String, File)} of JDK 1.2</em> -<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a> <em class="jxr_javadoccomment"> * as it doesn't create the file itself.</em> -<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a> <em class="jxr_javadoccomment"> * It uses the location pointed to by java.io.tmpdir</em> -<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a> <em class="jxr_javadoccomment"> * when the parentDir attribute is</em> -<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a> <em class="jxr_javadoccomment"> * null.</p></em> -<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a> <em class="jxr_javadoccomment"> * <p>To delete automatically the file created by this method, use the</em> -<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> <em class="jxr_javadoccomment"> * {@link File#deleteOnExit()} method.</p></em> -<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a> <em class="jxr_javadoccomment"> * @param prefix prefix before the random number</em> -<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a> <em class="jxr_javadoccomment"> * @param suffix file extension; include the '.'</em> -<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a> <em class="jxr_javadoccomment"> * @param parentDir Directory to create the temporary file in <code>-java.io.tmpdir</code></em> -<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a> <em class="jxr_javadoccomment"> * used if not specificed</em> -<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a> <em class="jxr_javadoccomment"> * @return a File reference to the new temporary file.</em> -<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> File createTempFile( @Nonnull String prefix, @Nonnull String suffix, @Nullable File parentDir ) -<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a> { -<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a> File result; -<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a> String parent = System.getProperty( <span class="jxr_string">"java.io.tmpdir"</span> ); -<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a> <strong class="jxr_keyword">if</strong> ( parentDir != <strong class="jxr_keyword">null</strong> ) -<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a> { -<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a> parent = parentDir.getPath(); -<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> } -<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a> DecimalFormat fmt = <strong class="jxr_keyword">new</strong> DecimalFormat( <span class="jxr_string">"#####"</span> ); -<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> SecureRandom secureRandom = <strong class="jxr_keyword">new</strong> SecureRandom(); -<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a> <strong class="jxr_keyword">long</strong> secureInitializer = secureRandom.nextLong(); -<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a> Random rand = <strong class="jxr_keyword">new</strong> Random( secureInitializer + Runtime.getRuntime().freeMemory() ); -<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a> <strong class="jxr_keyword">do</strong> -<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a> { -<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a> result = <strong class="jxr_keyword">new</strong> File( parent, prefix + fmt.format( positiveRandom( rand ) ) + suffix ); -<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a> } -<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a> <strong class="jxr_keyword">while</strong> ( result.exists() ); -<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a> -<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a> <strong class="jxr_keyword">return</strong> result; -<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a> } -<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a> -<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> positiveRandom( Random rand ) -<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a> { -<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a> <strong class="jxr_keyword">int</strong> a = rand.nextInt(); -<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a> <strong class="jxr_keyword">while</strong> ( a == Integer.MIN_VALUE ) -<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a> { -<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a> a = rand.nextInt(); -<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a> } -<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a> <strong class="jxr_keyword">return</strong> Math.abs( a ); -<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a> } -<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a> -<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a> <em class="jxr_javadoccomment"> * <b>If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified()</b></em> -<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a> <em class="jxr_javadoccomment"> * @param from the file to copy</em> -<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a> <em class="jxr_javadoccomment"> * @param to the destination file</em> -<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a> <em class="jxr_javadoccomment"> * @param encoding the file output encoding (only if wrappers is not empty)</em> -<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a> <em class="jxr_javadoccomment"> * @param wrappers array of {@link FilterWrapper}</em> -<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a> <em class="jxr_javadoccomment"> * @throws IOException if an IO error occurs during copying or filtering</em> -<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> copyFile( @Nonnull File from, @Nonnull File to, @Nullable String encoding, -<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a> @Nullable FilterWrapper... wrappers ) -<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a> { -<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a> copyFile( from, to, encoding, wrappers, false ); -<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> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a> <em class="jxr_javadoccomment"> * Wrapper class for Filter.</em> -<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/maven/shared/utils/io/FileUtils.html">FilterWrapper</a> -<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a> { -<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a> <em class="jxr_javadoccomment"> * @param fileReader {@link Reader}</em> -<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a> <em class="jxr_javadoccomment"> * @return The Reader instance.</em> -<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> Reader getReader( Reader fileReader ); -<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a> } -<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a> -<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a> <em class="jxr_javadoccomment">/**</em> -<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a> <em class="jxr_javadoccomment"> * <b>If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified() or if</em> -<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a> <em class="jxr_javadoccomment"> * overwrite is true</b></em> -<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a> <em class="jxr_javadoccomment"> *</em> -<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a> <em class="jxr_javadoccomment"> * @param from the file to copy</em> -<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a> <em class="jxr_javadoccomment"> * @param to the destination file</em> -<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a> <em class="jxr_javadoccomment"> * @param encoding the file output encoding (only if wrappers is not empty)</em> -<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a> <em class="jxr_javadoccomment"> * @param wrappers array of {@link FilterWrapper}</em> -<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a> <em class="jxr_javadoccomment"> * @param overwrite if true and f wrappers is null or empty, the file will be copy enven if to.lastModified() <</em> -<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a> <em class="jxr_javadoccomment"> * from.lastModified()</em> -<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a> <em class="jxr_javadoccomment"> * @throws IOException if an IO error occurs during copying or filtering</em> -<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a> <em class="jxr_javadoccomment"> */</em> -<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> copyFile( @Nonnull File from, @Nonnull File to, @Nullable String encoding, -<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a> @Nullable <a href="../../../../../../org/apache/maven/shared/utils/io/FileUtils.html">FilterWrapper</a>[] wrappers, <strong class="jxr_keyword">boolean</strong> overwrite ) -<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a> <strong class="jxr_keyword">throws</strong> IOException -<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a> { -<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a> <strong class="jxr_keyword">if</strong> ( wrappers != <strong class="jxr_keyword">null</strong> && wrappers.length > 0 ) -<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a> { -<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a> <em class="jxr_comment">// buffer so it isn't reading a byte at a time!</em> -<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a> Reader fileReader = <strong class="jxr_keyword">null</strong>; -<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a> Writer fileWriter = <strong class="jxr_keyword">null</strong>; -<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a> <strong class="jxr_keyword">try</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">if</strong> ( encoding == <strong class="jxr_keyword">null</strong> || encoding.length() < 1 ) -<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a> { -<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a> fileReader = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> FileReader( from ) ); -<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a> fileWriter = <strong class="jxr_keyword">new</strong> FileWriter( to ); -<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a> } -<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a> <strong class="jxr_keyword">else</strong> -<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a> { -<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a> FileInputStream instream = <strong class="jxr_keyword">new</strong> FileInputStream( from ); -<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a> -<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a> FileOutputStream outstream = <strong class="jxr_keyword">new</strong> FileOutputStream( to );
[... 1005 lines stripped ...]