Addresses the warning found by the new version of Sonar
The new DocBook plugin requires that the sourceFileName property is configured. See gh-9
Rather than relying on the project being built with the correct JDK, the source and target compatibility is now explicitly configured in the build. This should all the project to be built with Java 7 (which is required by the FindBugs plugin used on sonar.spring.io), while still producing Java 6-compatible byte code. See gh-9
The -t option may now be specified multiple times, allowing both an XML report and an HTML report to be produced at the same time.
Failing to close a FileReader or FileInputStream causes problems on Windows when the time comes to delete the file. To ensure that the InputStreams and Readers are closed this commit updates FileSystemEntry to provide access to its InputStream or Reader via a callback mechanism rather than providing direct access via getter methods. This means that the FileSystemEntry implementation is responsible for closing the InputStream or Reader rather than each user of FileSystemEntry having to do so.
Prior to this commit, each report was written into a directory with the same name as its input archive. This meant that, if the output path was the same directory as the one that contained the input archive, their names would clash. To overcome this problem, each report is now written into a directory with a name of the form migration-analysis-<input-archive>. For example, if my-app.ear is analysed, its report will be written into a directory named migration-analysis-my-app.ear. In addition to the change described above, each report directory now contains a subdirectory for the report type. Continuing the example above, if an HTML report is produced it will be found in a directory named migration-analysis-my-app.ear/html. This paves the way for rendering multiple reports from the same analysis (SMA-3). For example, it's currently expected that analysing my-app.ear with reports in format1 and format2 would produce the following: migration-analysis-my-app.ear/ format1/ … format2/ …
The migration-analysis.bat script was setting the CLASSPATH by concantenation but did not consider the initial case where the CLASSPATH was empty. This resulted in CLASSPATH containing an empty entry which is interpretted as the current working directory. The knock-on effect is that StandardClassPathScanner will recursively scan the current working directory. If the current working directory happens to be inside the SMA installation this is benign, however if the current working directory is outside the SMA installation it leads to, at best, unnecessary scanning during launch. This commit addresses the issue by updating migration-analysis.bat so that when CLASSPATH is empty it directly assigns it rather than using concatenation, thereby avoiding the empty entry.