Modified:
maven/website/components/plugins-archives/maven-compiler-plugin-LATEST/xref/org/apache/maven/plugin/compiler/AbstractCompilerMojo.html
==============================================================================
---
maven/website/components/plugins-archives/maven-compiler-plugin-LATEST/xref/org/apache/maven/plugin/compiler/AbstractCompilerMojo.html
(original)
+++
maven/website/components/plugins-archives/maven-compiler-plugin-LATEST/xref/org/apache/maven/plugin/compiler/AbstractCompilerMojo.html
Thu Dec 21 07:48:49 2023
@@ -1174,723 +1174,725 @@
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a> <strong
class="jxr_keyword">if</strong> (useIncrementalCompilation) {
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a>
incrementalBuildHelperRequest.outputDirectory(getOutputDirectory());
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a>
-<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a> <em
class="jxr_comment">// Cleanup the generated source files created by annotation
processing</em>
-<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a> <em
class="jxr_comment">// they are regenerated by the java compiler.</em>
+<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a> <em
class="jxr_comment">// MCOMPILER-333: Cleanup the generated source files
created by annotation processing</em>
+<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a> <em
class="jxr_comment">// to avoid issues with `javac` compiler when the source
code is rebuild.</em>
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>
<strong class="jxr_keyword">if</strong> (getGeneratedSourcesDirectory() !=
<strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>
<strong class="jxr_keyword">try</strong> (Stream<Path> walk =
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a>
Files.walk(getGeneratedSourcesDirectory().toPath())) {
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>
walk.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete);
-<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>
} <strong class="jxr_keyword">catch</strong> (IOException ex) {
-<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a>
getLog().warn(<span class="jxr_string">"I/O error deleting the annotation
processing generated files: "</span> + ex.getMessage());
-<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a> }
-<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a> }
-<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>
-<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a>
incrementalBuildHelper.beforeRebuildExecution(incrementalBuildHelperRequest);
+<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>
<em class="jxr_comment">// MCOMPILER-567: The directory must already exist
because javac does not create it.</em>
+<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a>
Files.createDirectories(getGeneratedSourcesDirectory().toPath());
+<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>
} <strong class="jxr_keyword">catch</strong> (IOException ex) {
+<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a>
getLog().warn(<span class="jxr_string">"I/O error deleting the annotation
processing generated files: "</span> + ex.getMessage());
+<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a> }
+<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a> }
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>
-<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a>
getLog().debug(<span
class="jxr_string">"incrementalBuildHelper#beforeRebuildExecution"</span>);
-<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a> }
-<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>
-<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a> <strong
class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>
compilerResult = compiler.performCompile(compilerConfiguration);
-<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a> }
<strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a> <em
class="jxr_comment">// TODO: don't catch Exception</em>
-<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> MojoExecutionException(<span
class="jxr_string">"Fatal error compiling"</span>, e);
-<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a> }
-<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a>
-<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a> <strong
class="jxr_keyword">if</strong> (createMissingPackageInfoClass
-<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a>
&& compilerResult.isSuccess()
-<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>
&& compiler.getCompilerOutputStyle() ==
CompilerOutputStyle.ONE_OUTPUT_FILE_PER_INPUT_FILE) {
-<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a>
<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>
SourceMapping sourceMapping = getSourceMapping(compilerConfiguration, compiler);
-<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>
createMissingPackageInfoClasses(compilerConfiguration, sourceMapping, sources);
-<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a> }
<strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a>
getLog().warn(<span class="jxr_string">"Error creating missing package info
classes"</span>, e);
-<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a> }
-<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a> }
-<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a>
-<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a> <strong
class="jxr_keyword">if</strong> (outputTimestamp != <strong
class="jxr_keyword">null</strong> && (outputTimestamp.length() > 1
|| Character.isDigit(outputTimestamp.charAt(0)))) {
-<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a> <em
class="jxr_comment">// if Reproducible Builds mode, apply workaround</em>
-<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a>
patchJdkModuleVersion(compilerResult, sources);
-<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a> }
-<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a>
-<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a> <strong
class="jxr_keyword">if</strong> (useIncrementalCompilation) {
-<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>
<strong class="jxr_keyword">if</strong>
(incrementalBuildHelperRequest.getOutputDirectory().exists()) {
-<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a>
getLog().debug(<span
class="jxr_string">"incrementalBuildHelper#afterRebuildExecution"</span>);
-<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>
<em class="jxr_comment">// now scan the same directory again and create a
diff</em>
-<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>
incrementalBuildHelper.afterRebuildExecution(incrementalBuildHelperRequest);
-<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a> }
<strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>
getLog().debug(
-<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a>
<span class="jxr_string">"skip
incrementalBuildHelper#afterRebuildExecution as the output directory doesn't
exist"</span>);
-<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a> }
-<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a> }
-<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a>
-<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a>
List<CompilerMessage> warnings = <strong class="jxr_keyword">new</strong>
ArrayList<>();
-<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a>
List<CompilerMessage> errors = <strong class="jxr_keyword">new</strong>
ArrayList<>();
-<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>
List<CompilerMessage> others = <strong class="jxr_keyword">new</strong>
ArrayList<>();
-<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a> <strong
class="jxr_keyword">for</strong> (CompilerMessage message :
compilerResult.getCompilerMessages()) {
-<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>
<strong class="jxr_keyword">switch</strong> (message.getKind()) {
-<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a>
<strong class="jxr_keyword">case</strong> ERROR:
-<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>
errors.add(message);
-<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>
<strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a>
<strong class="jxr_keyword">case</strong> WARNING:
-<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a>
<strong class="jxr_keyword">case</strong> MANDATORY_WARNING:
-<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a>
warnings.add(message);
-<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>
<strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a>
<strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>
others.add(message);
-<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>
<strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a> }
-<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a> }
-<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a>
-<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a> <strong
class="jxr_keyword">if</strong> (failOnError &&
!compilerResult.isSuccess()) {
-<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage message : others) {
-<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a>
assert message.getKind() != CompilerMessage.Kind.ERROR
-<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>
&& message.getKind() != CompilerMessage.Kind.WARNING
-<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>
&& message.getKind() != CompilerMessage.Kind.MANDATORY_WARNING;
-<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>
getLog().info(message.toString());
-<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a> }
-<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>
<strong class="jxr_keyword">if</strong> (!warnings.isEmpty()) {
-<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>
getLog().warn(<span class="jxr_string">"COMPILATION WARNING : "</span>);
+<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a>
incrementalBuildHelper.beforeRebuildExecution(incrementalBuildHelperRequest);
+<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a>
+<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>
getLog().debug(<span
class="jxr_string">"incrementalBuildHelper#beforeRebuildExecution"</span>);
+<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a> }
+<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>
+<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a> <strong
class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a>
compilerResult = compiler.performCompile(compilerConfiguration);
+<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a> }
<strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a> <em
class="jxr_comment">// TODO: don't catch Exception</em>
+<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> MojoExecutionException(<span
class="jxr_string">"Fatal error compiling"</span>, e);
+<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a> }
+<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a>
+<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a> <strong
class="jxr_keyword">if</strong> (createMissingPackageInfoClass
+<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a>
&& compilerResult.isSuccess()
+<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>
&& compiler.getCompilerOutputStyle() ==
CompilerOutputStyle.ONE_OUTPUT_FILE_PER_INPUT_FILE) {
+<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>
<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a>
SourceMapping sourceMapping = getSourceMapping(compilerConfiguration, compiler);
+<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a>
createMissingPackageInfoClasses(compilerConfiguration, sourceMapping, sources);
+<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a> }
<strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>
getLog().warn(<span class="jxr_string">"Error creating missing package info
classes"</span>, e);
+<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a> }
+<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a> }
+<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a>
+<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a> <strong
class="jxr_keyword">if</strong> (outputTimestamp != <strong
class="jxr_keyword">null</strong> && (outputTimestamp.length() > 1
|| Character.isDigit(outputTimestamp.charAt(0)))) {
+<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a> <em
class="jxr_comment">// if Reproducible Builds mode, apply workaround</em>
+<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a>
patchJdkModuleVersion(compilerResult, sources);
+<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a> }
+<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>
+<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a> <strong
class="jxr_keyword">if</strong> (useIncrementalCompilation) {
+<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>
<strong class="jxr_keyword">if</strong>
(incrementalBuildHelperRequest.getOutputDirectory().exists()) {
+<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>
getLog().debug(<span
class="jxr_string">"incrementalBuildHelper#afterRebuildExecution"</span>);
+<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a>
<em class="jxr_comment">// now scan the same directory again and create a
diff</em>
+<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>
incrementalBuildHelper.afterRebuildExecution(incrementalBuildHelperRequest);
+<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a> }
<strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>
getLog().debug(
+<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>
<span class="jxr_string">"skip
incrementalBuildHelper#afterRebuildExecution as the output directory doesn't
exist"</span>);
+<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a> }
+<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a> }
+<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a>
+<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>
List<CompilerMessage> warnings = <strong class="jxr_keyword">new</strong>
ArrayList<>();
+<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a>
List<CompilerMessage> errors = <strong class="jxr_keyword">new</strong>
ArrayList<>();
+<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>
List<CompilerMessage> others = <strong class="jxr_keyword">new</strong>
ArrayList<>();
+<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a> <strong
class="jxr_keyword">for</strong> (CompilerMessage message :
compilerResult.getCompilerMessages()) {
+<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>
<strong class="jxr_keyword">switch</strong> (message.getKind()) {
+<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>
<strong class="jxr_keyword">case</strong> ERROR:
+<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a>
errors.add(message);
+<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a>
<strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a>
<strong class="jxr_keyword">case</strong> WARNING:
+<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>
<strong class="jxr_keyword">case</strong> MANDATORY_WARNING:
+<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a>
warnings.add(message);
+<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>
<strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>
<strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>
others.add(message);
+<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a>
<strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a> }
+<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a> }
+<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a>
+<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a> <strong
class="jxr_keyword">if</strong> (failOnError &&
!compilerResult.isSuccess()) {
+<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage message : others) {
+<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>
assert message.getKind() != CompilerMessage.Kind.ERROR
+<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>
&& message.getKind() != CompilerMessage.Kind.WARNING
+<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a>
&& message.getKind() != CompilerMessage.Kind.MANDATORY_WARNING;
+<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>
getLog().info(message.toString());
+<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a> }
+<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>
<strong class="jxr_keyword">if</strong> (!warnings.isEmpty()) {
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage warning : warnings) {
-<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a>
getLog().warn(warning.toString());
-<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a> }
-<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>
getLog().info(warnings.size() + ((warnings.size() > 1) ? <span
class="jxr_string">" warnings "</span> : <span class="jxr_string">"
warning"</span>));
-<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a> }
-<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>
-<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a>
<strong class="jxr_keyword">if</strong> (!errors.isEmpty()) {
-<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a>
getLog().error(<span class="jxr_string">"COMPILATION ERROR : "</span>);
+<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>
getLog().warn(<span class="jxr_string">"COMPILATION WARNING : "</span>);
+<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
+<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage warning : warnings) {
+<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>
getLog().warn(warning.toString());
+<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a> }
+<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>
getLog().info(warnings.size() + ((warnings.size() > 1) ? <span
class="jxr_string">" warnings "</span> : <span class="jxr_string">"
warning"</span>));
+<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
+<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a> }
+<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>
+<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a>
<strong class="jxr_keyword">if</strong> (!errors.isEmpty()) {
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage error : errors) {
-<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a>
getLog().error(error.toString());
-<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a> }
-<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a>
getLog().info(errors.size() + ((errors.size() > 1) ? <span
class="jxr_string">" errors "</span> : <span class="jxr_string">"
error"</span>));
-<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
-<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a> }
-<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a>
-<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a>
<strong class="jxr_keyword">if</strong> (!errors.isEmpty()) {
-<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> <a name="CompilationFailureException"
href="../../../../../org/apache/maven/plugin/compiler/CompilationFailureException.html#CompilationFailureException">CompilationFailureException</a>(errors);
-<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a> }
<strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> <a name="CompilationFailureException"
href="../../../../../org/apache/maven/plugin/compiler/CompilationFailureException.html#CompilationFailureException">CompilationFailureException</a>(warnings);
-<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a> }
-<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a> }
<strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage message :
compilerResult.getCompilerMessages()) {
-<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a>
<strong class="jxr_keyword">switch</strong> (message.getKind()) {
-<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>
<strong class="jxr_keyword">case</strong> NOTE:
-<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a>
<strong class="jxr_keyword">case</strong> OTHER:
-<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a>
getLog().info(message.toString());
-<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a>
<strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>
<strong class="jxr_keyword">case</strong> ERROR:
-<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a>
getLog().error(message.toString());
-<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>
<strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a>
<strong class="jxr_keyword">case</strong> MANDATORY_WARNING:
-<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>
<strong class="jxr_keyword">case</strong> WARNING:
-<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>
<strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a>
getLog().warn(message.toString());
-<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>
<strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a> }
-<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a> }
-<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a> }
-<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a> }
-<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a>
-<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong>
createMissingPackageInfoClasses(
-<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a>
CompilerConfiguration compilerConfiguration, SourceMapping sourceMapping,
Set<File> sources)
-<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a>
<strong class="jxr_keyword">throws</strong> InclusionScanException, IOException
{
-<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a> <strong
class="jxr_keyword">for</strong> (File source : sources) {
-<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a>
String path = source.toString();
-<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>
<strong class="jxr_keyword">if</strong> (path.endsWith(File.separator + <span
class="jxr_string">"package-info.java"</span>)) {
-<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a>
<strong class="jxr_keyword">for</strong> (String root :
getCompileSourceRoots()) {
-<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>
root = root + File.separator;
-<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>
<strong class="jxr_keyword">if</strong> (path.startsWith(root)) {
-<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>
String rel = path.substring(root.length());
-<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a>
Set<File> files =
sourceMapping.getTargetFiles(getOutputDirectory(), rel);
-<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>
<strong class="jxr_keyword">for</strong> (File file : files) {
-<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a>
<strong class="jxr_keyword">if</strong> (!file.exists()) {
-<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>
File parentFile = file.getParentFile();
-<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a>
-<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a>
<strong class="jxr_keyword">if</strong> (!parentFile.exists()) {
-<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>
Files.createDirectories(parentFile.toPath());
-<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a>
}
-<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a>
-<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a>
byte[] bytes = generatePackage(compilerConfiguration, rel);
-<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a>
Files.write(file.toPath(), bytes);
-<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a>
}
-<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>
}
-<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a>
}
-<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a> }
-<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a> }
-<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a> }
-<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> <strong
class="jxr_keyword">private</strong> byte[]
generatePackage(CompilerConfiguration compilerConfiguration, String javaFile) {
-<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a> <strong
class="jxr_keyword">int</strong> version = getOpcode(compilerConfiguration);
-<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a> String
internalPackageName = javaFile.substring(0, javaFile.length() - <span
class="jxr_string">".java"</span>.length());
-<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a> <strong
class="jxr_keyword">if</strong> (File.separatorChar != '/') {
-<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a>
internalPackageName = internalPackageName.replace(File.separatorChar, '/');
-<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a> }
-<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>
ClassWriter cw = <strong class="jxr_keyword">new</strong> ClassWriter(0);
-<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> cw.visit(
-<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a>
version,
-<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a>
Opcodes.ACC_SYNTHETIC | Opcodes.ACC_ABSTRACT | Opcodes.ACC_INTERFACE,
-<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a>
internalPackageName,
-<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a>
<strong class="jxr_keyword">null</strong>,
-<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a>
<span class="jxr_string">"java/lang/Object"</span>,
-<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>
<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a>
cw.visitSource(<span class="jxr_string">"package-info.java"</span>, <strong
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a> <strong
class="jxr_keyword">return</strong> cw.toByteArray();
-<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a> }
-<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a>
-<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong>
getOpcode(CompilerConfiguration compilerConfiguration) {
-<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a> String
version = compilerConfiguration.getReleaseVersion();
-<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a> <strong
class="jxr_keyword">if</strong> (version == <strong
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>
version = compilerConfiguration.getTargetVersion();
-<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>
<strong class="jxr_keyword">if</strong> (version == <strong
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a>
version = <span class="jxr_string">"1.5"</span>;
-<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a> }
-<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a> }
-<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a> <strong
class="jxr_keyword">if</strong> (version.startsWith(<span
class="jxr_string">"1."</span>)) {
-<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>
version = version.substring(2);
-<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a> }
-<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a> <strong
class="jxr_keyword">int</strong> iVersion = Integer.parseInt(version);
-<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a> <strong
class="jxr_keyword">if</strong> (iVersion < 2) {
-<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> IllegalArgumentException(<span
class="jxr_string">"Unsupported java version '"</span> + version + <span
class="jxr_string">"'"</span>);
-<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a> }
-<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a> <strong
class="jxr_keyword">return</strong> iVersion - 2 + Opcodes.V1_2;
-<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> }
-<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>
-<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">boolean</strong> isTestCompile() {
-<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a> <strong
class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a> }
-<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a>
-<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a> <em
class="jxr_javadoccomment"> * @return all source files for the compiler</em>
-<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a> <strong
class="jxr_keyword">private</strong> Set<File> getCompileSources(Compiler
compiler, CompilerConfiguration compilerConfiguration)
-<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>
<strong class="jxr_keyword">throws</strong> MojoExecutionException,
CompilerException {
-<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a> String
inputFileEnding = compiler.getInputFileEnding(compilerConfiguration);
-<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a> <strong
class="jxr_keyword">if</strong> (inputFileEnding == <strong
class="jxr_keyword">null</strong> || inputFileEnding.isEmpty()) {
-<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a> <em
class="jxr_comment">// see MCOMPILER-199 GroovyEclipseCompiler doesn't set
inputFileEnding</em>
-<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a> <em
class="jxr_comment">// so we can presume it's all files from the source
directory</em>
-<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>
inputFileEnding = <span class="jxr_string">".*"</span>;
-<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a> }
-<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>
SourceInclusionScanner scanner = getSourceInclusionScanner(inputFileEnding);
-<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>
-<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>
SourceMapping mapping = getSourceMapping(compilerConfiguration, compiler);
+<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>
getLog().error(<span class="jxr_string">"COMPILATION ERROR : "</span>);
+<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
+<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage error : errors) {
+<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a>
getLog().error(error.toString());
+<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a> }
+<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a>
getLog().info(errors.size() + ((errors.size() > 1) ? <span
class="jxr_string">" errors "</span> : <span class="jxr_string">"
error"</span>));
+<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a>
getLog().info(<span
class="jxr_string">"-------------------------------------------------------------"</span>);
+<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a> }
+<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a>
+<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a>
<strong class="jxr_keyword">if</strong> (!errors.isEmpty()) {
+<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> <a name="CompilationFailureException"
href="../../../../../org/apache/maven/plugin/compiler/CompilationFailureException.html#CompilationFailureException">CompilationFailureException</a>(errors);
+<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a> }
<strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> <a name="CompilationFailureException"
href="../../../../../org/apache/maven/plugin/compiler/CompilationFailureException.html#CompilationFailureException">CompilationFailureException</a>(warnings);
+<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a> }
+<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a> }
<strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>
<strong class="jxr_keyword">for</strong> (CompilerMessage message :
compilerResult.getCompilerMessages()) {
+<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a>
<strong class="jxr_keyword">switch</strong> (message.getKind()) {
+<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a>
<strong class="jxr_keyword">case</strong> NOTE:
+<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a>
<strong class="jxr_keyword">case</strong> OTHER:
+<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>
getLog().info(message.toString());
+<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a>
<strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>
<strong class="jxr_keyword">case</strong> ERROR:
+<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a>
getLog().error(message.toString());
+<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>
<strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>
<strong class="jxr_keyword">case</strong> MANDATORY_WARNING:
+<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a>
<strong class="jxr_keyword">case</strong> WARNING:
+<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>
<strong class="jxr_keyword">default</strong>:
+<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a>
getLog().warn(message.toString());
+<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a>
<strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a> }
+<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a> }
+<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a> }
+<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a> }
+<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a>
+<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong>
createMissingPackageInfoClasses(
+<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a>
CompilerConfiguration compilerConfiguration, SourceMapping sourceMapping,
Set<File> sources)
+<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a>
<strong class="jxr_keyword">throws</strong> InclusionScanException, IOException
{
+<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a> <strong
class="jxr_keyword">for</strong> (File source : sources) {
+<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a>
String path = source.toString();
+<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>
<strong class="jxr_keyword">if</strong> (path.endsWith(File.separator + <span
class="jxr_string">"package-info.java"</span>)) {
+<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>
<strong class="jxr_keyword">for</strong> (String root :
getCompileSourceRoots()) {
+<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>
root = root + File.separator;
+<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a>
<strong class="jxr_keyword">if</strong> (path.startsWith(root)) {
+<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>
String rel = path.substring(root.length());
+<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a>
Set<File> files =
sourceMapping.getTargetFiles(getOutputDirectory(), rel);
+<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>
<strong class="jxr_keyword">for</strong> (File file : files) {
+<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a>
<strong class="jxr_keyword">if</strong> (!file.exists()) {
+<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a>
File parentFile = file.getParentFile();
+<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>
+<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a>
<strong class="jxr_keyword">if</strong> (!parentFile.exists()) {
+<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a>
Files.createDirectories(parentFile.toPath());
+<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>
byte[] bytes = generatePackage(compilerConfiguration, rel);
+<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>
Files.write(file.toPath(), bytes);
+<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a>
}
+<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a>
}
+<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>
}
+<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a> }
+<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> }
+<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a>
+<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a> <strong
class="jxr_keyword">private</strong> byte[]
generatePackage(CompilerConfiguration compilerConfiguration, String javaFile) {
+<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a> <strong
class="jxr_keyword">int</strong> version = getOpcode(compilerConfiguration);
+<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a> String
internalPackageName = javaFile.substring(0, javaFile.length() - <span
class="jxr_string">".java"</span>.length());
+<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a> <strong
class="jxr_keyword">if</strong> (File.separatorChar != '/') {
+<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>
internalPackageName = internalPackageName.replace(File.separatorChar, '/');
+<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> }
+<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a>
ClassWriter cw = <strong class="jxr_keyword">new</strong> ClassWriter(0);
+<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a> cw.visit(
+<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a>
version,
+<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a>
Opcodes.ACC_SYNTHETIC | Opcodes.ACC_ABSTRACT | Opcodes.ACC_INTERFACE,
+<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a>
internalPackageName,
+<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>
<strong class="jxr_keyword">null</strong>,
+<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a>
<span class="jxr_string">"java/lang/Object"</span>,
+<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a>
<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a>
cw.visitSource(<span class="jxr_string">"package-info.java"</span>, <strong
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a> <strong
class="jxr_keyword">return</strong> cw.toByteArray();
+<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a> }
+<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>
+<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong>
getOpcode(CompilerConfiguration compilerConfiguration) {
+<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a> String
version = compilerConfiguration.getReleaseVersion();
+<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a> <strong
class="jxr_keyword">if</strong> (version == <strong
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a>
version = compilerConfiguration.getTargetVersion();
+<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>
<strong class="jxr_keyword">if</strong> (version == <strong
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>
version = <span class="jxr_string">"1.5"</span>;
+<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a> }
+<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a> }
+<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a> <strong
class="jxr_keyword">if</strong> (version.startsWith(<span
class="jxr_string">"1."</span>)) {
+<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a>
version = version.substring(2);
+<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a> }
+<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a> <strong
class="jxr_keyword">int</strong> iVersion = Integer.parseInt(version);
+<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a> <strong
class="jxr_keyword">if</strong> (iVersion < 2) {
+<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> IllegalArgumentException(<span
class="jxr_string">"Unsupported java version '"</span> + version + <span
class="jxr_string">"'"</span>);
+<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> iVersion - 2 + Opcodes.V1_2;
+<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">protected</strong> <strong
class="jxr_keyword">boolean</strong> isTestCompile() {
+<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a> <strong
class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a> }
+<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a>
+<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a> <em
class="jxr_javadoccomment"> * @return all source files for the compiler</em>
+<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a> <strong
class="jxr_keyword">private</strong> Set<File> getCompileSources(Compiler
compiler, CompilerConfiguration compilerConfiguration)
+<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>
<strong class="jxr_keyword">throws</strong> MojoExecutionException,
CompilerException {
+<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a> String
inputFileEnding = compiler.getInputFileEnding(compilerConfiguration);
+<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a> <strong
class="jxr_keyword">if</strong> (inputFileEnding == <strong
class="jxr_keyword">null</strong> || inputFileEnding.isEmpty()) {
+<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a> <em
class="jxr_comment">// see MCOMPILER-199 GroovyEclipseCompiler doesn't set
inputFileEnding</em>
+<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a> <em
class="jxr_comment">// so we can presume it's all files from the source
directory</em>
+<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>
inputFileEnding = <span class="jxr_string">".*"</span>;
+<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a> }
+<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>
SourceInclusionScanner scanner = getSourceInclusionScanner(inputFileEnding);
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>
-<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>
scanner.addSourceMapping(mapping);
+<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>
SourceMapping mapping = getSourceMapping(compilerConfiguration, compiler);
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>
-<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>
Set<File> compileSources = <strong class="jxr_keyword">new</strong>
HashSet<>();
+<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>
scanner.addSourceMapping(mapping);
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>
-<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a> <strong
class="jxr_keyword">for</strong> (String sourceRoot : getCompileSourceRoots()) {
-<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a> File
rootFile = <strong class="jxr_keyword">new</strong> File(sourceRoot);
-<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>
-<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>
<strong class="jxr_keyword">if</strong> (!rootFile.isDirectory()
-<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>
||
rootFile.getAbsoluteFile().equals(compilerConfiguration.getGeneratedSourcesDirectory()))
{
-<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>
<strong class="jxr_keyword">continue</strong>;
-<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>
<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>
compileSources.addAll(scanner.getIncludedSources(rootFile, <strong
class="jxr_keyword">null</strong>));
-<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a> }
<strong class="jxr_keyword">catch</strong> (InclusionScanException e) {
-<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> MojoExecutionException(
-<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>
<span class="jxr_string">"Error scanning source root: '"</span> +
sourceRoot + <span class="jxr_string">"' for stale files to recompile."</span>,
e);
-<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a> }
-<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a> }
-<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>
-<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a> <strong
class="jxr_keyword">return</strong> compileSources;
-<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a> }
-<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a>
-<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">abstract</strong> Set<String> getIncludes();
+<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a>
Set<File> compileSources = <strong class="jxr_keyword">new</strong>
HashSet<>();
+<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>
+<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a> <strong
class="jxr_keyword">for</strong> (String sourceRoot : getCompileSourceRoots()) {
+<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a> File
rootFile = <strong class="jxr_keyword">new</strong> File(sourceRoot);
+<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>
+<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>
<strong class="jxr_keyword">if</strong> (!rootFile.isDirectory()
+<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>
||
rootFile.getAbsoluteFile().equals(compilerConfiguration.getGeneratedSourcesDirectory()))
{
+<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>
<strong class="jxr_keyword">continue</strong>;
+<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a> }
+<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>
+<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>
<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>
compileSources.addAll(scanner.getIncludedSources(rootFile, <strong
class="jxr_keyword">null</strong>));
+<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a> }
<strong class="jxr_keyword">catch</strong> (InclusionScanException e) {
+<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a>
<strong class="jxr_keyword">throw</strong> <strong
class="jxr_keyword">new</strong> MojoExecutionException(
+<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>
<span class="jxr_string">"Error scanning source root: '"</span> +
sourceRoot + <span class="jxr_string">"' for stale files to recompile."</span>,
e);
+<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a> }
+<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a> }
+<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>
+<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a> <strong
class="jxr_keyword">return</strong> compileSources;
+<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a> }
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>
-<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">abstract</strong> Set<String> getExcludes();
+<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">abstract</strong> Set<String> getIncludes();
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>
-<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a> <em
class="jxr_javadoccomment"> * @param compilerConfiguration</em>
-<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a> <em
class="jxr_javadoccomment"> * @param compiler</em>
-<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a> <em
class="jxr_javadoccomment"> * @return {@code true} if at least a single
source file is newer than it's class file</em>
-<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">boolean</strong> isSourceChanged(CompilerConfiguration
compilerConfiguration, Compiler compiler) {
-<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>
Set<File> staleSources = Collections.emptySet();
-<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a> <strong
class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>
staleSources = computeStaleSources(compilerConfiguration, compiler,
getSourceInclusionScanner(staleMillis));
-<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a> }
<strong class="jxr_keyword">catch</strong> (MojoExecutionException |
CompilerException ex) {
-<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a> <em
class="jxr_comment">// we cannot detect Stale Sources, so don't do anything
beside logging</em>
-<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>
getLog().warn(<span class="jxr_string">"Cannot detect stale sources."</span>);
-<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>
<strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a> }
-<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> (getLog().isDebugEnabled() ||
showCompilationChanges) {
-<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>
<strong class="jxr_keyword">for</strong> (File f : staleSources) {
-<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>
getLog().info(<span class="jxr_string">"\tStale source detected: "</span> +
f.getAbsolutePath());
-<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a> }
-<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a> }
-<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a> <strong
class="jxr_keyword">return</strong> !staleSources.isEmpty();
-<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a> }
-<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>
-<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a> <em
class="jxr_javadoccomment"> * try to get thread count if a Maven 3 build,
using reflection as the plugin must not be maven3 api dependent</em>
-<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a> <em
class="jxr_javadoccomment"> * @return number of thread for this build or 1
if not multi-thread build</em>
-<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a> <strong
class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong>
getRequestThreadCount() {
-<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a> <strong
class="jxr_keyword">return</strong>
session.getRequest().getDegreeOfConcurrency();
-<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a> }
-<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>
-<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a> <strong
class="jxr_keyword">protected</strong> Date getBuildStartTime() {
-<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a> <strong
class="jxr_keyword">return</strong>
getBuildStartTimeInstant().map(Date::from).orElseGet(Date::<strong
class="jxr_keyword">new</strong>);
-<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a> }
-<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>
-<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a> <strong
class="jxr_keyword">private</strong> Optional<Instant>
getBuildStartTimeInstant() {
-<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a> <strong
class="jxr_keyword">return</strong> Optional.ofNullable(session.getRequest())
-<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>
.map(MavenExecutionRequest::getStartTime)
-<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a>
.map(Date::toInstant)
-<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a>
.map(i -> i.truncatedTo(ChronoUnit.MILLIS));
-<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a> }
-<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>
-<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a> <strong
class="jxr_keyword">private</strong> String getMemoryValue(String setting) {
-<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a> String
value = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>
-<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a> <em
class="jxr_comment">// Allow '128' or '128m'</em>
-<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a> <strong
class="jxr_keyword">if</strong> (isDigits(setting)) {
-<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a>
value = setting + <span class="jxr_string">"m"</span>;
-<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a> }
<strong class="jxr_keyword">else</strong> <strong
class="jxr_keyword">if</strong> ((isDigits(setting.substring(0,
setting.length() - 1)))
-<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>
&& (setting.toLowerCase().endsWith(<span
class="jxr_string">"m"</span>))) {
-<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>
value = setting;
-<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a> }
-<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a> <strong
class="jxr_keyword">return</strong> value;
-<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a> }
-<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>
-<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a> <em
class="jxr_comment">// TODO remove the part with ToolchainManager lookup once
we depend on</em>
-<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a> <em
class="jxr_comment">// 3.0.9 (have it as prerequisite). Define as regular
component field then.</em>
-<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">final</strong> Toolchain getToolchain() {
-<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>
Toolchain tc = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>
-<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a> <strong
class="jxr_keyword">if</strong> (jdkToolchain != <strong
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a> <em
class="jxr_comment">// Maven 3.3.1 has plugin execution scoped Toolchain
Support</em>
-<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>
<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a>
Method getToolchainsMethod = toolchainManager
-<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>
.getClass()
-<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>
.getMethod(<span class="jxr_string">"getToolchains"</span>,
MavenSession.<strong class="jxr_keyword">class</strong>, String.<strong
class="jxr_keyword">class</strong>, Map.<strong
class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>
-<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>
List<Toolchain> tcs =
-<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a>
(List<Toolchain>) getToolchainsMethod.invoke(toolchainManager,
session, <span class="jxr_string">"jdk"</span>, jdkToolchain);
-<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>
-<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a>
<strong class="jxr_keyword">if</strong> (tcs != <strong
class="jxr_keyword">null</strong> && !tcs.isEmpty()) {
-<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>
tc = tcs.get(0);
-<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a> }
-<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a> }
<strong class="jxr_keyword">catch</strong> (NoSuchMethodException
-<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>
| SecurityException
-<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>
| IllegalAccessException
-<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>
| IllegalArgumentException
-<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>
| InvocationTargetException e) {
-<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>
<em class="jxr_comment">// ignore</em>
-<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a> }
-<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a> }
-<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>
-<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a> <strong
class="jxr_keyword">if</strong> (tc == <strong
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a> tc =
toolchainManager.getToolchainFromBuildContext(<span
class="jxr_string">"jdk"</span>, session);
-<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a> }
-<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>
-<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a> <strong
class="jxr_keyword">return</strong> tc;
-<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a> }
-<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>
-<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">boolean</strong> isDigits(String string) {
-<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i =
0; i < string.length(); i++) {
-<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>
<strong class="jxr_keyword">if</strong> (!Character.isDigit(string.charAt(i))) {
-<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>
<strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a> }
-<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a> }
-<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a> <strong
class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a> }
-<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>
-<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> <strong
class="jxr_keyword">private</strong> Set<File> computeStaleSources(
-<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>
CompilerConfiguration compilerConfiguration, Compiler compiler,
SourceInclusionScanner scanner)
-<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>
<strong class="jxr_keyword">throws</strong> MojoExecutionException,
CompilerException {
-<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>
SourceMapping mapping = getSourceMapping(compilerConfiguration, compiler);
-<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>
-<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a> File
outputDirectory;
-<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>
CompilerOutputStyle outputStyle = compiler.getCompilerOutputStyle();
-<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a> <strong
class="jxr_keyword">if</strong> (outputStyle ==
CompilerOutputStyle.ONE_OUTPUT_FILE_FOR_ALL_INPUT_FILES) {
-<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>
outputDirectory = buildDirectory;
-<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a> }
<strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>
outputDirectory = getOutputDirectory();
-<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a> }
-<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>
-<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>
scanner.addSourceMapping(mapping);
+<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">abstract</strong> Set<String> getExcludes();
+<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>
+<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a> <em
class="jxr_javadoccomment"> * @param compilerConfiguration</em>
+<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a> <em
class="jxr_javadoccomment"> * @param compiler</em>
+<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a> <em
class="jxr_javadoccomment"> * @return {@code true} if at least a single
source file is newer than it's class file</em>
+<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">boolean</strong> isSourceChanged(CompilerConfiguration
compilerConfiguration, Compiler compiler) {
+<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>
Set<File> staleSources = Collections.emptySet();
+<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a> <strong
class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>
staleSources = computeStaleSources(compilerConfiguration, compiler,
getSourceInclusionScanner(staleMillis));
+<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a> }
<strong class="jxr_keyword">catch</strong> (MojoExecutionException |
CompilerException ex) {
+<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a> <em
class="jxr_comment">// we cannot detect Stale Sources, so don't do anything
beside logging</em>
+<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>
getLog().warn(<span class="jxr_string">"Cannot detect stale sources."</span>);
+<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>
<strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a> }
+<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>
+<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a> <strong
class="jxr_keyword">if</strong> (getLog().isDebugEnabled() ||
showCompilationChanges) {
+<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>
<strong class="jxr_keyword">for</strong> (File f : staleSources) {
+<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a>
getLog().info(<span class="jxr_string">"\tStale source detected: "</span> +
f.getAbsolutePath());
+<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a> }
+<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a> }
+<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a> <strong
class="jxr_keyword">return</strong> !staleSources.isEmpty();
+<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> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a> <em
class="jxr_javadoccomment"> * try to get thread count if a Maven 3 build,
using reflection as the plugin must not be maven3 api dependent</em>
+<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a> <em
class="jxr_javadoccomment"> * @return number of thread for this build or 1
if not multi-thread build</em>
+<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a> <strong
class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong>
getRequestThreadCount() {
+<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a> <strong
class="jxr_keyword">return</strong>
session.getRequest().getDegreeOfConcurrency();
+<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a> }
+<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>
+<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a> <strong
class="jxr_keyword">protected</strong> Date getBuildStartTime() {
+<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a> <strong
class="jxr_keyword">return</strong>
getBuildStartTimeInstant().map(Date::from).orElseGet(Date::<strong
class="jxr_keyword">new</strong>);
+<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a> }
+<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>
+<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a> <strong
class="jxr_keyword">private</strong> Optional<Instant>
getBuildStartTimeInstant() {
+<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a> <strong
class="jxr_keyword">return</strong> Optional.ofNullable(session.getRequest())
+<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a>
.map(MavenExecutionRequest::getStartTime)
+<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a>
.map(Date::toInstant)
+<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>
.map(i -> i.truncatedTo(ChronoUnit.MILLIS));
+<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a> }
+<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a>
+<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a> <strong
class="jxr_keyword">private</strong> String getMemoryValue(String setting) {
+<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a> String
value = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a>
+<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a> <em
class="jxr_comment">// Allow '128' or '128m'</em>
+<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a> <strong
class="jxr_keyword">if</strong> (isDigits(setting)) {
+<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>
value = setting + <span class="jxr_string">"m"</span>;
+<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a> }
<strong class="jxr_keyword">else</strong> <strong
class="jxr_keyword">if</strong> ((isDigits(setting.substring(0,
setting.length() - 1)))
+<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>
&& (setting.toLowerCase().endsWith(<span
class="jxr_string">"m"</span>))) {
+<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>
value = setting;
+<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a> }
+<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a> <strong
class="jxr_keyword">return</strong> value;
+<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a> }
+<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a>
+<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a> <em
class="jxr_comment">// TODO remove the part with ToolchainManager lookup once
we depend on</em>
+<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a> <em
class="jxr_comment">// 3.0.9 (have it as prerequisite). Define as regular
component field then.</em>
+<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">final</strong> Toolchain getToolchain() {
+<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>
Toolchain tc = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>
+<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a> <strong
class="jxr_keyword">if</strong> (jdkToolchain != <strong
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> <em
class="jxr_comment">// Maven 3.3.1 has plugin execution scoped Toolchain
Support</em>
+<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>
<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>
Method getToolchainsMethod = toolchainManager
+<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>
.getClass()
+<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>
.getMethod(<span class="jxr_string">"getToolchains"</span>,
MavenSession.<strong class="jxr_keyword">class</strong>, String.<strong
class="jxr_keyword">class</strong>, Map.<strong
class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>
+<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>
List<Toolchain> tcs =
+<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a>
(List<Toolchain>) getToolchainsMethod.invoke(toolchainManager,
session, <span class="jxr_string">"jdk"</span>, jdkToolchain);
+<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>
+<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>
<strong class="jxr_keyword">if</strong> (tcs != <strong
class="jxr_keyword">null</strong> && !tcs.isEmpty()) {
+<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>
tc = tcs.get(0);
+<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a> }
+<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a> }
<strong class="jxr_keyword">catch</strong> (NoSuchMethodException
+<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>
| SecurityException
+<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>
| IllegalAccessException
+<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>
| IllegalArgumentException
+<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>
| InvocationTargetException e) {
+<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>
<em class="jxr_comment">// ignore</em>
+<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a> }
+<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a> }
+<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>
+<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a> <strong
class="jxr_keyword">if</strong> (tc == <strong
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a> tc =
toolchainManager.getToolchainFromBuildContext(<span
class="jxr_string">"jdk"</span>, session);
+<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a> }
+<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>
+<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a> <strong
class="jxr_keyword">return</strong> tc;
+<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a> }
+<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>
+<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">boolean</strong> isDigits(String string) {
+<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i =
0; i < string.length(); i++) {
+<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>
<strong class="jxr_keyword">if</strong> (!Character.isDigit(string.charAt(i))) {
+<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>
<strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a> }
+<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a> }
+<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a> <strong
class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> }
+<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>
+<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a> <strong
class="jxr_keyword">private</strong> Set<File> computeStaleSources(
+<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>
CompilerConfiguration compilerConfiguration, Compiler compiler,
SourceInclusionScanner scanner)
+<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>
<strong class="jxr_keyword">throws</strong> MojoExecutionException,
CompilerException {
+<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>
SourceMapping mapping = getSourceMapping(compilerConfiguration, compiler);
+<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>
+<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a> File
outputDirectory;
+<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>
CompilerOutputStyle outputStyle = compiler.getCompilerOutputStyle();
+<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a> <strong
class="jxr_keyword">if</strong> (outputStyle ==
CompilerOutputStyle.ONE_OUTPUT_FILE_FOR_ALL_INPUT_FILES) {
+<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>
outputDirectory = buildDirectory;
+<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a> }
<strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>
outputDirectory = getOutputDirectory();
+<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a> }
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>
-<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>
Set<File> staleSources = <strong class="jxr_keyword">new</strong>
HashSet<>();
+<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>
scanner.addSourceMapping(mapping);
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>
-<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a> <strong
class="jxr_keyword">for</strong> (String sourceRoot : getCompileSourceRoots()) {
-<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a> File
rootFile = <strong class="jxr_keyword">new</strong> File(sourceRoot);
-<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>
-<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>
<strong class="jxr_keyword">if</strong> (!rootFile.isDirectory()) {
-<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>
<strong class="jxr_keyword">continue</strong>;
-<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a> }
-<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>
-<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>
<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>
staleSources.addAll(scanner.getIncludedSources(rootFile, outputDirectory));
[... 731 lines stripped ...]