Skip to content

A suite of libraries that simplify creating and unit testing annotation processors.

License

Notifications You must be signed in to change notification settings

Pante/elementary

Repository files navigation

Elementary - Simplify creating and testing annotation processors.

Elementary Discord

To get started, check out the docs & Gradle example.

Elementary - JUnit extensions to test compilation & annotation processors

releases-maven javadoc

This project is mature. It requires Java 11.

Used by OSS projects such as Quarkus, Jenkins & Redis Spring OM.

Features

  • Allow blackbox & whitebox testing of annotation processing.
  • First class integration with JUnit 5, including parameterized tests.
  • Same-file declaration of tests & test cases.
  • Support for Java 9 modules.
<!-- Requires JUnit 5.9.3 & above -->
<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.9.3</version>
    <scope>test</scope>
  </dependency>

  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-params</artifactId>
    <version>5.9.3</version>
    <scope>test</scope>
  </dependency>

  <dependency>
    <groupId>com.karuslabs</groupId>
    <artifactId>elementary</artifactId>
    <version>3.0.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>
<!-- Required if you're using the @Introspect annotation. See tour.md for a Gradle equivalent -->
<build>
  <plugins>
    <plugin>
      <artifactId>maven-resources-plugin</artifactId>
      <version>3.2.0</version>
      <executions>
        <execution>
          <id>copy-resources</id>
          <phase>process-test-classes</phase>
          <goals>
            <goal>copy-resources</goal>
          </goals>
          <configuration>
            <outputDirectory>${basedir}/target/test-classes/</outputDirectory>
            <resources>
              <resource>
                <directory>${basedir}/src/test/java/</directory>
                <includes>
                  <include>**/*.*</include>
                </includes>
              </resource>
            </resources>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Utilitary - Utilities for annotation processors.

releases-maven javadoc

This project is mature. It requires Java 11.

<dependency>
  <groupId>com.karuslabs</groupId>
  <artifactId>utilitary</artifactId>
  <version>3.0.0</version>
</dependency>