Releases: ascopes/java-compiler-testing
Releases · ascopes/java-compiler-testing
v0.5.0
v0.4.0
What's Changed
- Junit
@Managed
annotation and JctExtension class for automating initialisation and
destruction of Workspace objects. - Add additional methods for creating JAR files from PathRoot objects that are directories.
FileBuilder#asJarFrom
now takes aPathRoot
rather than the more specialisedManagedDirectory
- Fix missing nullable annotations dotted around.
Merged PRs
- Bump micronaut-bom from 3.8.6 to 3.8.7 by @dependabot in #376
- Bump actions/deploy-pages from 1.2.4 to 1.2.5 by @dependabot in #375
- Bump mockito-bom from 5.1.1 to 5.2.0 by @dependabot in #378
- Bump checkstyle from 10.8.0 to 10.8.1 by @dependabot in #379
- Update report file detection in build.yml by @ascopes in #381
- Update avaje-json to 1.4-RC by @ascopes in #382
- Bump groovy from 4.0.9 to 4.0.10 by @dependabot in #383
- Bump actions/checkout from 3.3.0 to 3.4.0 by @dependabot in #384
- Bump avaje-jsonb.version from 1.4-RC1 to 1.4-RC6 by @dependabot in #385
- Bump actions/deploy-pages from 1.2.5 to 2.0.0 by @dependabot in #386
- Bump EnricoMi/publish-unit-test-result-action from 2.4.2 to 2.5.0 by @dependabot in #387
- Bump checkstyle from 10.8.1 to 10.9.1 by @dependabot in #388
- Bump maven-surefire-plugin from 3.0.0-M9 to 3.0.0 by @dependabot in #389
- Bump maven-failsafe-plugin from 3.0.0-M9 to 3.0.0 by @dependabot in #390
- Bump slf4j.version from 2.0.6 to 2.0.7 by @dependabot in #391
- Implement JctExtension JUnit extension. by @ascopes in #392
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- Use Maven 3.9.0 by @ascopes in #357
- Bump EnricoMi/publish-unit-test-result-action from 2.4.1 to 2.4.2 by @dependabot in #359
- Bump checkerframework.version from 3.31.0 to 3.32.0 by @dependabot in #363
- Bump checkstyle from 10.7.0 to 10.8.0 by @dependabot in #365
- Bump avaje-inject.version from 8.12 to 8.13 by @dependabot in #364
- Bump spring-boot-dependencies from 3.0.2 to 3.0.4 by @dependabot in #362
- Bump maven-compiler-plugin from 3.10.1 to 3.11.0 by @dependabot in #366
- Bump micronaut-bom from 3.8.5 to 3.8.6 by @dependabot in #367
- GH-370: Implement ability to create JARs from existing workspaces by @ascopes in #371
- GH-369: Enforce exact Maven version is used for builds by @ascopes in #372
- GH-371: Fix license plugin warnings by @ascopes in #374
Full Changelog: v0.2.1...v0.3.0
v0.2.1
Bugfixes/API changes
This patch includes some new API changes that are non-breaking that were needed to
patch various bits and pieces internally.
- GH-354, GH-294, GH-356 related API changes:
- Add new method: PathFileObject#getBinaryName
- JctCompilationFactoryImpl will now error if no initial compilation units
were found with a clearer error message. - JctCompilationFactoryImpl will now error if any of the explicitly provided
class names are not found as compilation units. - JctCompilationFactoryImpl will now error if the list of provided class
names is non-null but empty. - Allow call chaining on PackageContainerGroupAssert#allFilesExist.
- Add a new method TeeWriter#getContent that gets the lines of content
within a TeeWriter, as this is easier to stub than #toString due to
how Mockito works internally. - Add a new method TeeWriter#wrapOutputStream that wraps a given
OutputStream and Charset in an OutputStreamWriter and inserts that
into a new TeeWriter that is returned. - Fix regression in JctCompilationFactoryImpl where the locale was not
being set during compilations. - Fix bug in JctCompilationFactory where the TeeWriter was not being flushed,
so buffered content may not have been written to System.out properly
in some edge cases. - Improve performance of JctCompilationFactoryImpl for explicit class name
lookup by avoiding creating a distinct collection that is iteratively
resized with O(n) space complexity. - Fixes GH-354: Fix incorrect logic for filtering explicit class names that previously
resulted in an exception being raised if annotation processing was not configured in
a very specific way.
Other changes
- Bump maven-surefire-plugin from 3.0.0-M8 to 3.0.0-M9 by @dependabot in #353
- Bump micronaut-bom from 3.8.4 to 3.8.5 by @dependabot in #352
- Bump checkerframework.version from 3.30.0 to 3.31.0 by @dependabot in #347
- Bump maven-javadoc-plugin from 3.4.1 to 3.5.0 by @dependabot in #348
- Bump avaje-jsonb.version from 1.1 to 1.2 by @dependabot in #350
- Bump maven-failsafe-plugin from 3.0.0-M8 to 3.0.0-M9 by @dependabot in #349
- Bump avaje-inject.version from 8.11 to 8.12 by @dependabot in #351
- Bump error_prone_core from 2.17.0 to 2.18.0 by @dependabot in #242
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
- Remove GenericMock class by @ascopes in #341
- Add a GitHub ribbon to JavaDocs by @ascopes in #342
- Remove unused plugins by @ascopes in #344
- Rename JctCompilers.createPlatformCompiler to newPlatformCompiler by @ascopes in #345
- Enable automatically staging and promoting Nexus artifacts in CI without intervention by @ascopes in #346
Full Changelog: v0.1.0...v0.2.0
v0.1.0
What's Changed
- Add tests to dogfood compiling JCT within JCT by @ascopes in #336
- Add helpful error message if module errors encountered with junit support by @ascopes in #335
- Bump micronaut-bom from 3.8.3 to 3.8.4 by @dependabot in #334
- Bump maven-deploy-plugin from 3.0.0 to 3.1.0 by @dependabot in #333
- Bump dagger.version from 2.44.2 to 2.45 by @dependabot in #331
- Bump actions/setup-java from 3.9.0 to 3.10.0 by @dependabot in #330
- Bump groovy from 4.0.8 to 4.0.9 by @dependabot in #332
- Bump EnricoMi/publish-unit-test-result-action from 2.3.0 to 2.4.1 by @dependabot in #329
- Add location helpers in JctFileManager by @ascopes in #338
- Add additional API method helpers to access workspace locations by @ascopes in #339
- Deprecate
modules
attribute in@JavacCompilerTest
annotation
Full Changelog: v0.0.1...v0.1.0
v0.0.1
v0.0.1-M9
What's Changed
- Bump dependency-check-maven from 8.0.1 to 8.0.2 by @dependabot in #307
- Bump micronaut-bom from 3.8.2 to 3.8.3 by @dependabot in #306
- Bump pitest-maven from 1.10.4 to 1.11.0 by @dependabot in #304
- Bump mockito-bom from 5.0.0 to 5.1.0 by @dependabot in #305
- Simplify VersionStrategy class by @ascopes in #312
- Implement SPI to allow swapping out JIMFS at runtime (part of #311) by @ascopes in #313
- Bump checkstyle from 10.6.0 to 10.7.0 by @dependabot in #314
- Bump lombok from 1.18.24 to 1.18.26 by @dependabot in #316
- Bump checkerframework.version from 3.29.0 to 3.30.0 by @dependabot in #315
- Remove ModuleHandle class, as it is not really needed anymore by @ascopes in #319
- Freeze actions versions by @ascopes in #318
- Simplify container group implementation code. by @ascopes in #320
- File manager implementation tests, simplify OutputContainerGroup expectations by @ascopes in #321
- Replace JSR-305 with JSpecify by @ascopes in #322
- Amend JavaDoc for PathRoot by @ascopes in #324
- Fix bug around registering a module in an empty output location. by @ascopes in #326
- Implement RamFileSystemProvider tests by @ascopes in #325
- First batch of ContainerGroupRepositoryImpl tests by @ascopes in #327
Full Changelog: v0.0.1-M8...v0.0.1-M9
v0.0.1-M8
What's Changed
- Tidy up PathFileObject by @ascopes in #289
- Only run mutation tests on main branch by @ascopes in #290
- Make changes to filemanager.config files by @JoePorterDev in #292
- Do not open modules to JUnit by @ascopes in #295
- JctFileManagerFactoryImpl tests by @ascopes in #296
- Add test pack for LoggingFileManagerProxy by @ascopes in #297
- Module discoverer tests by @ascopes in #298
- Replace mockito-inline with mockito-core by @ascopes in #300
- Add missing AbstractJctCompiler coverage by @ascopes in #301
- Add ModuleLocation tests by @ascopes in #302
- PathFileObject tests and bugfixes by @ascopes in #303
Bugfixes
- Mark methods in PathFileObject as raising NoSuchFileException rather than FileNotFoundException
which was previously incorrect information. - Fix bug where the 'name' of a PathFileObject could previously have been an absolute path
if the PathFileObject was initialised with an absolute file path. Now it will match the
string representation of the relative path on the object. - Update IllegalArgumentException that is thrown if a root path is not absolute
so that it conveys the value of the erroneous parameter in the error message
within PathFileObject.
Prerelease API changes
- Rename getRoot to the clearer 'getRootPath' which is consistent with other
method naming in this class within PathFileObject. - io.github.ascopes.jct.junit is no longer opened to all modules. It is now fully closed access.
- io.github.ascopes.jct.filemanager.config classes are now marked as part of the
stable API rather than the internal API (@JoePorterDev).
New Contributors
- @JoePorterDev made their first contribution in #292
Full Changelog: v0.0.1-M7...v0.0.1-M8
v0.0.1-M7
What's Changed
- Add ability to customise the names of compiler objects by @ascopes in #273
- Versioning strategies in Junit support. by @ascopes in #274
- Enrich the Junit API by @ascopes in #275
- Use factory pattern to initialise flag and JavaCompiler objects by @ascopes in #278
- Bump dependency-check-maven from 8.0.0 to 8.0.1 by @dependabot in #280
- Bump groovy from 4.0.7 to 4.0.8 by @dependabot in #283
- Bump spring-boot-dependencies from 3.0.1 to 3.0.2 by @dependabot in #281
- Bump assertj-core from 3.24.1 to 3.24.2 by @dependabot in #282
- Bump micronaut-bom from 3.8.1 to 3.8.2 by @dependabot in #284
- Remove JSR-199 Interop class and reimplement object model. by @ascopes in #279
- Make container groups list collections rather than iterables. by @ascopes in #286
- Simplify the JctFileManagerImpl class into a separate repository by @ascopes in #287
Full Changelog: v0.0.1-M6...v0.0.1-M7