proton

Utilities to help testing annotation processors

APACHE-2.0 License

Stars
2
Committers
1

Bot releases are hidden (Show)

proton - v0.64 Latest Release

Published by realityforge 5 months ago

Changes in this release:

  • When collecting methods, if an abstract method matches an existing abstract method then assume it is a refinement and replace the method in the method list.
proton - v0.63

Published by realityforge 5 months ago

Changes in this release:

  • Sort assertions in CompileTestUtil.assertCompilesWithoutWarnings() so that they generate more useful failure messages by asserting on errors, then warnings, and then success.
proton - v0.62

Published by realityforge 5 months ago

Changes in this release:

  • Fix bug introduced in 0.61 where interface methods were collected at incorrectly in some circumstances.
proton - v0.61

Published by realityforge 5 months ago

Changes in this release:

  • Sort assertions in CompileTestUtil.assertCompilesWithoutWarnings() so that they generate more useful failure messages by asserting on wwarnings, then errors and then success.
  • Fix bug introduced in 0.60 where interface methods were not collected at all unless they were collected at the end.
proton - v0.60

Published by realityforge 5 months ago

Changes in this release:

  • Add optional parameter collectInterfaceMethodsAtEnd to ElementsUtil.getMethods(...) so that interface methods can be collected at the end of collecting methods for classes. This is useful in systems that allow users to provide additional extension methods via interfaces.
proton - v0.59

Published by realityforge over 2 years ago

Changes in this release:

  • Support passing Predicate<TypeElement> isValidPredicate to AbstractStandardProcessor.processTypeElements(...) so can override the mechanisms for determining whether an element is "valid enough" to perform annotation processing on.
proton - v0.58

Published by realityforge over 2 years ago

Changes in this release:

  • Reinstate simplified AbstractProcessorTest.outputFilesIfEnabled(Compilation, Filter) method.
proton - v0.57

Published by realityforge over 2 years ago

Changes in this release:

  • Remove support for annotating generated artifacts with javax.annotation.Generated prior to Java 9 as we no longer support Java prior to Java 9.
proton - v0.56

Published by realityforge over 2 years ago

Changes in this release:

  • Ensure SynthesizingProcessor supports source in version 17.
  • Introduce CompileTestUtil and Compilation classes in the qa module to reimplement functionality present in the com.google.testing.compile:compile-testing artifact. Rewrite AbstractProcessorTest to use CompileTestUtil functionality rather than the equivalent code in the com.google.testing.compile:compile-testing artifact. Remove the com.google.testing.compile:compile-testing artifact and related dependencies. This resulted in simpler code and made it easier to evolve the project to support the latest version of Java.
proton - v0.55

Published by realityforge over 2 years ago

Changes in this release:

  • Remove ElementsUtil.isSynthetic(Element) and ElementsUtil.isNotSynthetic(Element) as it used java internals that are not available in later versions of java. Later versions of java should use elements.getOrigin( element ).isDeclared() for equivalent functionality.
  • Move to a minimum java version of 17.
proton - v0.53

Published by realityforge almost 3 years ago

Changes in this release:

  • Change the debug message in debugAnnotationProcessingRootElements() to be less prone to confusion.
  • Change the processTypeElements(...) and performAction(...) methods to accept a label to use when emitting debug messages.
proton - v0.52

Published by realityforge almost 3 years ago

Changes in this release:

  • Upgrade the au.com.stocksoftware.idea.codestyle artifact to version 1.17.
  • Upgrade the com.squareup artifact to version 1.13.0.
  • Add a AbstractStandardProcessor.debugAnnotationProcessingRootElements(...) helper method that downstream annotation processors can call to improve debuggability.
  • Change the implementation of AbstractStandardProcessor.getNewTypeElementsToProcess(...) so that it only returns types for that have been passed to the annotation processor for processing. This avoids the annotation processor from re-generating classes or descriptors for dependencies and eliminates failures during concurrent, incremental compiles. This does necessitate the downstream annotation processors invoking collectRootTypeNames(RoundEnvironment) at the start of the process() method and clearRootTypeNamesIfProcessingOver(RoundEnvironment) at the end of the process() method.
proton - v0.51

Published by realityforge over 4 years ago

Changes in this release:

  • Add MemberChecks.mustBeProtected(...) and MemberChecks.mustNotBeProtected(...) helper methods.
proton - v0.50

Published by realityforge over 4 years ago

Changes in this release:

  • Fix bug where GeneratorUtil.overrideMethod(...) was not passing on the additionalSuppressions parameter when generating suppressions.
proton - v0.49

Published by realityforge over 4 years ago

Changes in this release:

  • Expose TypesUtil.hasRawTypes() helper method.
  • Deprecate ElementsUtil.isElementDeprecated() helper method and add replacement ElementsUtil.hasDeprecatedAnnotation().
  • Expose ElementsUtil.isDeprecated() helper method that determines whether the element is effectively deprecated by either being annotated with @Deprecated or being enclosed in a deprecated element.
  • Expose TypesUtil.isDeprecated(...) helper method.
proton - v0.48

Published by realityforge over 4 years ago

Changes in this release:

  • Ensure ElementsUtil.getOverriddenMethod(...) is public.
proton - v0.47

Published by realityforge over 4 years ago

Changes in this release:

  • Add ElementsUtil.getOverriddenMethod(...) helper method.
proton - v0.46

Published by realityforge over 4 years ago

Changes in this release:

  • Make MemberChecks.doesMethodNotOverrideInterfaceMethod(...) public access.
proton - v0.45

Published by realityforge over 4 years ago

Changes in this release:

  • Extract the AbstractProcessorTest.outputFilesIfEnabled(...) helper method so that downstream projects can update golden files/fixtures even when they are performing custom configuration of the compilation.
proton - v0.44

Published by realityforge over 4 years ago

Changes in this release:

  • Add a utility method AbstractStandardProcessor.isDebugEnabled() to expose whether the debug state is enabled.