# FIXBench Maven artifact discovery from an archive

FIXBench's development SDK fallback now activates only when its owning harness
lacks the exported layout marker. A standalone archive does not borrow an
enclosing engine checkout, including when the archive itself is named `bench`.
Relative file activation also works with HP's Maven 3.6.3. Artifact property
names, versions, build-root suffixes, dependencies, source code and compiler
configuration remain unchanged. The exact original POM is retained under
`internal/bench/java/fixbench/pom-before-archive-activation-20261003.xml`.
The [Maven profile guide](https://maven.apache.org/guides/introduction/introduction-to-profiles)
documents file existence/missing activation and its interpolation limits.

## Actual Maven and SDK-consumer checks

Source **1c9f2842e2a3** is retained on
`s/codex-fullbench-fixbench-maven-source-20261003`. A fresh complete **748-file**
stripped archive on HP runs under a high-priority shared CPU lease after host
and process preflight. Its unrelated enclosing Git tree supplies deliberate
engine/helper/toolchain traps. Four actual effective-POM checks confirm:

- Archive defaults select the sibling Java artifact directory.
- The build-root profile retains both engine and framework output suffixes.
- An explicit artifact directory with spaces overrides the build-root profile.
- A development layout retains its own engine-target default.

The first outer checker asserted the effective model's property text rather
than the dependency's interpolated `systemPath`. Maven had correctly applied
the CLI override. That failed generation and all outputs remain sealed; the
source bytes/modes were verified unchanged before removing its materialization.
A new corrected-selection generation checks the actual dependency artifact
path, with no production-code change or rewritten failure.

That generation builds the engine-free JNI/framework artifacts, then compiles
and packages FIXBench against the existing retained Java SDK JAR/native inputs.
**All 122 FIXBench JUnit tests pass, with zero failures, errors or skips.**
The independently qualified framework's tests are omitted in this artifact
build; its separate 80-test passing receipt remains intact. Both supplied SDK
inputs stay byte-identical. The framework is fresh; the supplied engine SDK is
an input, not a fresh engine-source build or new SDK admission.

Every materialized source byte and Git mode remains unchanged, all outputs land
outside the archive, and the successful materialization is removed. Source
maps/tarballs, SDK hashes, both controllers, effective POMs, commands and JUnit
XML are sealed in `~/archive/libhft/fixbench-maven-20261003-1c9f2842e2a3*` and
[repository evidence](evidence/fixbench-maven-20261003/SHA256SUMS).
This qualifies Maven artifact selection and one supplied-SDK consumer build.
Engine-source producers, complete SDK/harness closure, physical Stage 5,
timing/report and public release gates remain open.

Integration preserves the microbench session's new Fix8 preparation helper/test,
wrapper and input guides, plus postponed campaign annotations for Python 3.9.
**744 of 748** original qualified archive inputs remain byte/mode identical;
the four differences are confined to that owned preparation/publication scope.
Every qualified Java, Maven, native framework and shared layout input is
unchanged. Current readiness selects **747 files**, with zero scrub,
private/unresolved references or dead links and **83 textual root escapes**.
The integration map and readiness output remain sealed with the checks.
