|
37 | 37 | <test.exclude>None</test.exclude> |
38 | 38 | <test.include>%regex[.*[^o].class]</test.include><!-- exclude module-info.class--> |
39 | 39 | <jmh.version>1.37</jmh.version> |
| 40 | + <!-- JDK-version-specific source root; overridden in the java8 profile --> |
| 41 | + <compat.src.dir>src/main/java11</compat.src.dir> |
| 42 | + <!-- logback 1.5.x needs Java 11; the java8 profile drops to the 1.3.x line --> |
| 43 | + <logback.version>1.5.25</logback.version> |
40 | 44 | </properties> |
41 | 45 |
|
42 | 46 | <version>1.3.5-SNAPSHOT</version> |
|
184 | 188 | </excludes> |
185 | 189 | </configuration> |
186 | 190 | </plugin> |
| 191 | + <!-- Adds the JDK-version-specific source root (src/main/java11 or src/main/java8) |
| 192 | + so the FDBigInteger bridge / module-access shim compiles on each JDK. --> |
| 193 | + <plugin> |
| 194 | + <groupId>org.codehaus.mojo</groupId> |
| 195 | + <artifactId>build-helper-maven-plugin</artifactId> |
| 196 | + <version>3.6.0</version> |
| 197 | + <executions> |
| 198 | + <execution> |
| 199 | + <id>add-compat-source</id> |
| 200 | + <phase>generate-sources</phase> |
| 201 | + <goals> |
| 202 | + <goal>add-source</goal> |
| 203 | + </goals> |
| 204 | + <configuration> |
| 205 | + <sources> |
| 206 | + <source>${compat.src.dir}</source> |
| 207 | + </sources> |
| 208 | + </configuration> |
| 209 | + </execution> |
| 210 | + </executions> |
| 211 | + </plugin> |
187 | 212 | </plugins> |
188 | 213 | </build> |
189 | 214 |
|
|
206 | 231 | </executions> |
207 | 232 | <configuration> |
208 | 233 | <doclint>none</doclint> |
209 | | - <source>11</source> |
| 234 | + <source>${javac.compile.source}</source> |
210 | 235 | <detectJavaApiLink>false</detectJavaApiLink> |
211 | 236 | <additionalJOptions> |
212 | | - <additionalJOption>${compilerArg1}</additionalJOption> |
213 | | - <additionalJOption>${compilerArg2}</additionalJOption> |
| 237 | + <additionalJOption>${javadocJOption1}</additionalJOption> |
| 238 | + <additionalJOption>${javadocJOption2}</additionalJOption> |
214 | 239 | </additionalJOptions> |
215 | 240 | <sourceFileExcludes> |
216 | 241 | <sourceFileExclude>${excludePattern1}</sourceFileExclude> |
|
338 | 363 | </executions> |
339 | 364 | <configuration> |
340 | 365 | <doclint>none</doclint> |
341 | | - <source>11</source> |
| 366 | + <source>${javac.compile.source}</source> |
342 | 367 | <detectJavaApiLink>false</detectJavaApiLink> |
343 | 368 | <additionalJOptions> |
344 | | - <additionalJOption>${compilerArg1}</additionalJOption> |
345 | | - <additionalJOption>${compilerArg2}</additionalJOption> |
| 369 | + <additionalJOption>${javadocJOption1}</additionalJOption> |
| 370 | + <additionalJOption>${javadocJOption2}</additionalJOption> |
346 | 371 | </additionalJOptions> |
347 | 372 | <sourceFileExcludes> |
348 | 373 | <sourceFileExclude>${excludePattern1}</sourceFileExclude> |
|
444 | 469 | <questdb.artifactid>questdb</questdb.artifactid> |
445 | 470 | <compilerArg1>--add-exports</compilerArg1> |
446 | 471 | <compilerArg2>java.base/jdk.internal.math=io.questdb.client</compilerArg2> |
| 472 | + <!-- javadoc needs the same module export to resolve jdk.internal.math.FDBigInteger |
| 473 | + referenced by the src/main/java11 FdBig bridge. Kept separate from the javac |
| 474 | + compilerArgs because javadoc and javac accept different option sets. --> |
| 475 | + <javadocJOption1>--add-exports</javadocJOption1> |
| 476 | + <javadocJOption2>java.base/jdk.internal.math=io.questdb.client</javadocJOption2> |
447 | 477 | <excludePattern1>nothing-to-exclude-dummy-value-include-all-java11plus</excludePattern1> |
448 | 478 | <excludeTestPattern1>nothing-to-exclude-dummy-value-include-all-java11plus</excludeTestPattern1> |
449 | 479 | <javac.compile.source>${javac.target}</javac.compile.source> |
|
466 | 496 | </dependency> |
467 | 497 | </dependencies> |
468 | 498 | </profile> |
| 499 | + <profile> |
| 500 | + <id>java8</id> |
| 501 | + <properties> |
| 502 | + <jdk.version>8</jdk.version> |
| 503 | + <java.enforce.version>[1.8,11)</java.enforce.version> |
| 504 | + <questdb.artifactid>questdb</questdb.artifactid> |
| 505 | + <!-- JDK8 javac rejects the add-exports flag; use a harmless no-op flag instead --> |
| 506 | + <compilerArg1>-Xlint:none</compilerArg1> |
| 507 | + <compilerArg2>-Xlint:none</compilerArg2> |
| 508 | + <!-- JDK8 javadoc rejects javac's -Xlint and needs no module export (the java8 FdBig |
| 509 | + bridge uses the open sun.misc.FDBigInteger). Pass a harmless no-op instead. --> |
| 510 | + <javadocJOption1>-quiet</javadocJOption1> |
| 511 | + <javadocJOption2>-quiet</javadocJOption2> |
| 512 | + <!-- module-info.java cannot be compiled on JDK8; exclude it from both the main |
| 513 | + (<excludes> = excludeTestPattern1) and test (<testExcludes> = excludePattern1) |
| 514 | + source sets. --> |
| 515 | + <excludePattern1>**/module-info.java</excludePattern1> |
| 516 | + <excludeTestPattern1>**/module-info.java</excludeTestPattern1> |
| 517 | + <compat.src.dir>src/main/java8</compat.src.dir> |
| 518 | + <javac.compile.source>1.8</javac.compile.source> |
| 519 | + <javac.compile.target>1.8</javac.compile.target> |
| 520 | + <!-- logback 1.5.x requires Java 11; the 1.3.x line is the Java 8 compatible branch --> |
| 521 | + <logback.version>1.3.15</logback.version> |
| 522 | + </properties> |
| 523 | + <activation> |
| 524 | + <jdk>1.8</jdk> |
| 525 | + </activation> |
| 526 | + <dependencies> |
| 527 | + <dependency> |
| 528 | + <groupId>org.jetbrains</groupId> |
| 529 | + <artifactId>annotations</artifactId> |
| 530 | + <version>17.0.0</version> |
| 531 | + <scope>provided</scope> |
| 532 | + </dependency> |
| 533 | + <dependency> |
| 534 | + <groupId>org.slf4j</groupId> |
| 535 | + <artifactId>slf4j-api</artifactId> |
| 536 | + <version>2.0.17</version> |
| 537 | + </dependency> |
| 538 | + </dependencies> |
| 539 | + </profile> |
469 | 540 | </profiles> |
470 | 541 |
|
471 | 542 | <dependencies> |
|
485 | 556 | <dependency> |
486 | 557 | <groupId>ch.qos.logback</groupId> |
487 | 558 | <artifactId>logback-classic</artifactId> |
488 | | - <version>1.5.25</version> |
| 559 | + <version>${logback.version}</version> |
489 | 560 | <scope>test</scope> |
490 | 561 | </dependency> |
491 | 562 | <dependency> |
|
0 commit comments