Please review a moderately simple addition to the `JavadocTester` world, to be 
able to modify the behavior of a file manager to throw exceptions as needed.

The bulk of the new functionality is in a new class, 
`TestJavaFileManagerBuilder`, which uses the builder pattern to allow a client 
to configure and build a file manager that can provide file objects for which 
the behavior can be overridden for one or more methods.  The expected use case 
is to throw an exception instead of calling the underlying delegate method.

`JavadocTester` is modified to allow a file manager to be provided when 
invoking `javadoc`. This requires some minor changes to the outermost javadoc 
tool classes, `Main` and `Start`.  Rather than add more `static` methods to 
`Main`, instance methods are now provided to make it easier to configure the 
values that will be passed to `Start`.    In `Start`, it was previously assumed 
that either the default file manager was being used or that _all_ paths would 
be configured directly in the file manager. The latter part of that assumption 
is reduced so that path-setting options (e.g. `--source-path`, `--class-path` 
etc) can be passed to the provided file manager. (Previously, they were 
silently ignored.) It is an error to pass path-like options as javadoc options 
to a file manager that does not support them.  However, since none of the 
changes are visible to any public API, this should not be an issue.

A new test is provided, with a few simple test cases. One is for direct use of 
the new file manager mechanism (without using `javadoc`). The other two 
illustrate how the feature can be used inside a `JavadocTester` call of 
`javadoc`.  Given that the feature is a relatively simple combination of 
predicates and proxies, it's not clear that we need a significant body of test 
cases.

-------------

Commit messages:
 - fix whitespace
 - JDK-8276892: Provide a way to emulate exceptional situations in FileManager 
when using JavadocTester

Changes: https://git.openjdk.java.net/jdk/pull/6404/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6404&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8276892
  Stats: 558 lines in 7 files changed: 552 ins; 5 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6404.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6404/head:pull/6404

PR: https://git.openjdk.java.net/jdk/pull/6404

Reply via email to