Skip to content

The native library message and the creator context demo link this repository - #32

Merged
jwrosewell merged 1 commit into
rcfrom
fix/monorepo-links-in-code
Nov 3, 2026
Merged

jwrosewell merged 1 commit into
rcfrom
fix/monorepo-links-in-code

Conversation

@jwrosewell

@jwrosewell jwrosewell commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

What changed

Five links in code still pointed at archived repositories. #31 left them out because changing them changes what the program prints, and one of them needs its test to change in the same commit. Each now points at the folder here that holds what the link is for.

File Line Was Now
device-detection/device-detection.hash.engine.on-premise/src/main/java/fiftyone/devicedetection/hash/engine/onpremise/interop/Constants.java 32 https://github.com/51degrees/device-detection-java https://github.com/51Degrees/51degrees-java/tree/main/device-detection
ip-intelligence/ip-intelligence.engine.on-premise/src/main/java/fiftyone/ipintelligence/engine/onpremise/interop/Constants.java 32 https://github.com/51degrees/ip-intelligence-java https://github.com/51Degrees/51degrees-java/tree/main/ip-intelligence
pipeline/pipeline.developer-examples/pipeline.developer-examples.fodid/src/main/resources/fodid/creator-context/page.html 150 https://github.com/51Degrees/pipeline-java, as the link and as its text https://github.com/51Degrees/51degrees-java/tree/main/pipeline
pipeline/pipeline.developer-examples/pipeline.developer-examples.fodid/src/test/java/pipeline/developerexamples/fodid/CreatorContextPageTests.java 306 https://github.com/51Degrees/pipeline-java https://github.com/51Degrees/51degrees-java/tree/main/pipeline

Only the addresses change. The message text, the class names and every other line are as they were.

Why these targets

The two Constants.java files hold the messages an on-premise engine gives when its native library fails to load. The generated module classes (DeviceDetectionHashEngineModuleJNI and IpIntelligenceOnPremiseEngineModuleJNI) throw UNSATISFIED_LINK_MESSAGE or UNSATISFIED_LINK_LIBATOMIC_MESSAGE from their static initializer. When libatomic is missing and the package manager cannot install it, both messages say "you may be able to use a different library by rebuilding the binary on the target system using the source code and instructions available on" the link.

Those instructions are the "Build and Install from source" section of device-detection/README.md and of ip-intelligence/README.md. Device Detection also has "Build for older Linux distributions", which uses device-detection/Dockerfile.example. Each folder holds its README and the engine's source, and GitHub shows the README on the folder's page, so the messages link the folders. The sentence still ends with a full stop after the address, as it did before.

The demo page lists "The source of this demo and of the code it runs on." The demo is in pipeline/pipeline.developer-examples/pipeline.developer-examples.fodid and runs on the Pipeline API in pipeline/, the folder that holds what pipeline-java held. The_Page_Ends_With_Find_Out_More checked for the old address, so it checks for the new one in the same commit.

The generated module classes use the constants by name, so no generated file changes and the SWIG wrappers do not need to be made again.

How it was checked

  • Read each file on rc at 9ffbcf8 through the API. The four files keep their LF line endings, and the only changed lines are the four in the table.
  • Checked that the three folders exist on main, and that both READMEs have the "Build and Install from source" heading.
  • Searched every text file for UNSATISFIED_LINK, USE_PACKAGE_MANAGER and the old addresses. Nothing else uses the old addresses in code or tests.
  • Full build of this pull request with merging turned off, run 41708521029. It is the common-ci build for a single pull request, started from a temporary branch with dryrun set to true, and its Complete job printed "Dry run - not merging". All 15 configurations passed, and CreatorContextPageTests ran 7 tests with none failing, The_Page_Ends_With_Find_Out_More among them.
Configuration Result Attempt
Ubuntu Java 8 passed 2
Ubuntu Java 11 passed 2
Ubuntu Java 17 passed 2
Ubuntu Java 21 passed 2
Ubuntu ARM Java 17 passed 2
macOS Java 11 passed 2
macOS Java 17 passed 2
macOS Java 21 passed 2
macOS x64 Java 21 passed 2
macOS x64 Java 11 passed 3
macOS x64 Java 17 passed 3
Windows Java 8 passed 3
Windows Java 11 passed 3
Windows Java 17 passed 3
Windows Java 21 passed 3

It took three attempts, and neither failure is in code this change touches.

  1. Attempt 1 failed on Ubuntu Java 17 in DataUpdateServiceTests.DataUpdateService_Register_AutoUpdateConfiguredInterval in pipeline.engines, with Mockito reporting two calls to schedule where the test allows one. The test schedules an update check on a real executor, and with a polling interval of 0 the delay is random.nextInt(600) seconds. One draw in 600 gives no delay, so the check runs at once and schedules itself again before the test counts the calls.
  2. Attempt 2 failed on macOS x64 Java 17 when the Selenium test Example_RendersClientSideOverridesOnThePage timed out after 60 seconds waiting on WebDriver, against the cloud getting-started web example. 8 of the 9 Selenium tests passed. The nightly build of Update packages #24 failed the same way on macOS x64 Java 11 earlier on 3 November.
  3. Attempt 3 reran the six failed and cancelled jobs, and all six passed, macOS x64 Java 17 with 9 of 9 Selenium tests.

The nine jobs from attempt 2 built this branch as it is, because rc had nothing new to merge. The six from attempt 3 built it merged with rc after #33, which changes three Doxyfiles and one example file.

Links still on archived repositories

The History section of the root README.md links the six earlier repositories by name on purpose (#26), and stays as it is. The <scm> links of the four parent poms are changed by #27, which already points them here. With this change and #27, nothing else in the repository links an archived repository.

When the native library fails to load, both on-premise engines suggest
rebuilding the binary from the source code and instructions in
device-detection-java or ip-intelligence-java, which are archived. The
instructions for building the native binary are now in the README of
device-detection/ and ip-intelligence/ here, beside the engine source,
so the message links those folders.

The creator context demo page linked pipeline-java as the source of the
demo and of the code it runs on, and now links pipeline/ here. The test
that checks the page ends with somewhere to go next asserts the new
address.
@jwrosewell jwrosewell mentioned this pull request Nov 3, 2026
@jwrosewell
jwrosewell marked this pull request as ready for review November 3, 2026 22:29
@jwrosewell
jwrosewell merged commit edbf8fc into rc Nov 3, 2026
2 checks passed
@jwrosewell
jwrosewell deleted the fix/monorepo-links-in-code branch November 3, 2026 22:30
jwrosewell added a commit that referenced this pull request Nov 4, 2026
* README: what it does, how to install it and where it came from (#26)

The README now opens with what the code does in the words developers search for, then the install command, try-it links and, where there are any, the repositories it was created from. It ends with a Find out more section, and the logo is a file in the repository. Everything else the README said is kept.

* Check that only rc merges into the default branch (#29)

* Point links to the archived Java repositories at their folders here (#31)

pipeline-java, device-detection-java, ip-intelligence-java,
location-java, device-detection-java-examples and
ip-intelligence-java-examples are archived, and the note at the top of
each README names the folder of this repository that now holds its
code. Four READMEs and 33 example source files still linked those
repositories, so each of the 39 links now points at the same file,
folder or README heading on main here.

Only the URLs change. The History section of the root README, two Java
string constants, the creator context demo page and its test, and the
four parent poms that the open package text pull request (#27) changes
keep their links.

* Drop the moved example folders and fix the native model example name (#33)

The examples moved to examples/, which the device detection and IP
Intelligence Doxyfiles already read, so the old folders go. Point the
location IMAGE_PATH at the shared documentation images, and name the
native model example console/NativeModelCloud.java in place of the
doubled example command.

* Link this repository from the native library message and the demo page (#32)

When the native library fails to load, both on-premise engines suggest
rebuilding the binary from the source code and instructions in
device-detection-java or ip-intelligence-java, which are archived. The
instructions for building the native binary are now in the README of
device-detection/ and ip-intelligence/ here, beside the engine source,
so the message links those folders.

The creator context demo page linked pipeline-java as the source of the
demo and of the code it runs on, and now links pipeline/ here. The test
that checks the page ends with somewhere to go next asserts the new
address.

* Link the hardware profile engine to its specification page (#34)

* Merged Pull Request '#36 update-packages/rc->rc: Update packages'

Co-authored-by: Automation51D <51DCI@51Degrees.com>

* Merged Pull Request '#35 update-submodules/rc->rc: Update submodules'

Co-authored-by: Automation51D <51DCI@51Degrees.com>

---------

Co-authored-by: Automation51D <60396166+Automation51D@users.noreply.github.com>
Co-authored-by: Automation51D <51DCI@51Degrees.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant