Tibor17 commented on a change in pull request #419:
URL: https://github.com/apache/maven-surefire/pull/419#discussion_r777108528
##########
File path:
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
##########
@@ -206,7 +207,7 @@ public void run()
// if tests failed, but if this does not happen then
printing warning to console is the only way to
// inform the users.
String msg = "ForkStarter IOException: " +
e.getLocalizedMessage() + ".";
- File reportsDir =
defaultReporterFactory.getReportsDirectory();
+ File reportsDir = reportMerger.getReportsDirectory();
Review comment:
Because there must be abstraction. There are two DefaultReporterFactory
instances. One is per fork, and another is the "merger".
We simply cannot allow ForkStarter or the developer who is not aware of
Surefire insides to call other methods than the "merger" can expose.
Now, the answer for the following questions why this interface ReportsMerger
exists in here is the fact that I implement the method writeTestOutput(). Of
course I cannot allow the "merger" to call this method by any reason even if by
mistake. So the ReportsMerger becomes a subinterface with limitted access
excluding writeTestOutput() to prevent from calling it, to prevent from calling
new implementation of this method, so that it will be called only in ForkClient
and not in ForkStarter.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]