Coverage gates: - renderer and bridges/renderer gain JaCoCo (prepare-agent, report, check at verify) with a bundle rule at the measured baseline, rounded down: renderer 94% instructions and 91% lines, bridge 85% instructions and 82% lines. - New code is held to 100% line coverage from its first commit: packages com.kingsrook.qbits.renderer.scene2 and below, AssetInspector, ZplRaster, and the new foundation classes the label layout design names. The rules match nothing until those exist, so later packages do not edit these poms. - The foundation's 85% instruction and 90% class rule is unchanged. Fuzz scaffolding: - MutationCampaign in each module's test tree: a seeded, bounded mutation harness with no clock and no unseeded randomness; a finding replays from its seed and iteration. - One campaign per module in the normal test phase: what the version 1 scene parser accepts is a version 1 scene (checked by a second parser), and what the host printer gate accepts holds only the renderer's command set. - docs/security/fuzzing.md: targets, properties, limits, seeds and replay. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
80 lines
7.6 KiB
XML
80 lines
7.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<parent><groupId>com.kingsrook.qbits</groupId><artifactId>qbit-document-generation-reactor</artifactId><version>${revision}</version><relativePath>../pom.xml</relativePath></parent>
|
|
<groupId>com.kingsrook.qbits</groupId>
|
|
<artifactId>qbit-document-generation</artifactId>
|
|
<version>${revision}</version>
|
|
<name>QBit Document Generation</name>
|
|
<description>User-defined document templates and generation coordination for QQQ</description>
|
|
<properties><qqq.version>4.1.0-RC.26</qqq.version><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><maven.compiler.proc>none</maven.compiler.proc><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><enforcer.skip>false</enforcer.skip></properties>
|
|
<licenses><license><name>Apache License, Version 2.0</name><url>https://www.apache.org/licenses/LICENSE-2.0</url><distribution>repo</distribution></license></licenses>
|
|
<dependencyManagement><dependencies><dependency><groupId>com.kingsrook.qqq</groupId><artifactId>qqq-bom-pom</artifactId><version>${qqq.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
|
|
<dependencies>
|
|
<dependency><groupId>com.kingsrook.qqq</groupId><artifactId>qqq-backend-core</artifactId><version>${qqq.version}</version></dependency>
|
|
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><scope>test</scope></dependency>
|
|
<dependency><groupId>org.assertj</groupId><artifactId>assertj-core</artifactId><version>3.27.7</version><scope>test</scope></dependency>
|
|
<dependency><groupId>com.kingsrook.qqq</groupId><artifactId>qqq-backend-module-rdbms</artifactId><version>${qqq.version}</version><optional>true</optional></dependency>
|
|
<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>2.5.252</version><scope>test</scope></dependency>
|
|
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>9.5.0</version><scope>test</scope></dependency>
|
|
<dependency><groupId>org.testcontainers</groupId><artifactId>testcontainers</artifactId><version>2.0.3</version><scope>test</scope></dependency>
|
|
<dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.7.8</version><scope>test</scope></dependency>
|
|
<dependency><groupId>com.kingsrook.qqq</groupId><artifactId>qqq-backend-module-postgres</artifactId><version>${qqq.version}</version><scope>test</scope>
|
|
<exclusions><exclusion><groupId>com.kingsrook.qqq</groupId><artifactId>qqq-backend-module-rdbms</artifactId></exclusion></exclusions></dependency>
|
|
</dependencies>
|
|
<build>
|
|
<resources>
|
|
<resource><directory>src/main/resources</directory><filtering>true</filtering></resource>
|
|
|
|
</resources>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.3.1</version>
|
|
<executions><execution><id>package-license-notices</id><phase>process-resources</phase><goals><goal>copy-resources</goal></goals>
|
|
<configuration><outputDirectory>${project.build.outputDirectory}/META-INF</outputDirectory><resources><resource>
|
|
<directory>${project.basedir}</directory><filtering>false</filtering><includes><include>LICENSE</include><include>NOTICE</include></includes>
|
|
</resource></resources></configuration>
|
|
</execution></executions>
|
|
</plugin>
|
|
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.14.1</version><configuration><proc>none</proc></configuration></plugin>
|
|
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-checkstyle-plugin</artifactId><version>3.3.1</version>
|
|
<dependencies><dependency><groupId>com.puppycrawl.tools</groupId><artifactId>checkstyle</artifactId><version>10.12.6</version></dependency></dependencies>
|
|
<configuration><includeTestSourceDirectory>true</includeTestSourceDirectory><configLocation>${project.basedir}/checkstyle/config.xml</configLocation><propertyExpansion>checkstyle.reactor.root=${project.basedir}</propertyExpansion><headerLocation>${project.basedir}/checkstyle/license.txt</headerLocation><consoleOutput>true</consoleOutput><violationSeverity>warning</violationSeverity><failOnViolation>true</failOnViolation></configuration>
|
|
<executions><execution><phase>validate</phase><goals><goal>check</goal></goals></execution></executions>
|
|
</plugin>
|
|
<plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>0.8.15</version><executions>
|
|
<execution><goals><goal>prepare-agent</goal></goals></execution>
|
|
<execution><id>report</id><phase>verify</phase><goals><goal>report</goal></goals></execution>
|
|
<execution><id>coverage</id><phase>verify</phase><goals><goal>check</goal></goals><configuration><rules><rule><element>BUNDLE</element><limits>
|
|
<limit><counter>INSTRUCTION</counter><value>COVEREDRATIO</value><minimum>0.85</minimum></limit>
|
|
<limit><counter>CLASS</counter><value>COVEREDRATIO</value><minimum>0.90</minimum></limit>
|
|
</limits></rule>
|
|
<!-- Classes added since the label layout design (section 10.7) are held to 100% line coverage from their first commit. A pattern matches nothing until its class exists,
|
|
so a later package only adds its class here if the design did not already name it. The BUNDLE rule above is unchanged and is never lowered. -->
|
|
<rule><element>CLASS</element><includes>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationPorts.Diagnostic*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationPorts.Preview*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationPreviewProcesses*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationPreviewWidget*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationAssetProcesses*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationAssetTables*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationAssetStore*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.GenerationUpgradeProcesses*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.DocumentPreviewService*</include>
|
|
<include>com.kingsrook.qbits.documentgeneration.DocumentAvailability*</include>
|
|
</includes><limits>
|
|
<limit><counter>LINE</counter><value>COVEREDRATIO</value><minimum>1.00</minimum></limit>
|
|
</limits></rule></rules></configuration></execution>
|
|
</executions></plugin>
|
|
<plugin>
|
|
<!-- Publish a self-contained POM: ${revision}/property versions are resolved at build time, so a consumer needs no -Drevision -->
|
|
<groupId>org.codehaus.mojo</groupId><artifactId>flatten-maven-plugin</artifactId><version>1.7.3</version>
|
|
<configuration><updatePomFile>true</updatePomFile><flattenMode>ossrh</flattenMode></configuration>
|
|
<executions>
|
|
<execution><id>flatten</id><phase>process-resources</phase><goals><goal>flatten</goal></goals></execution>
|
|
<execution><id>flatten.clean</id><phase>clean</phase><goals><goal>clean</goal></goals></execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins></build>
|
|
</project>
|