Repository navigation
Point package metadata at this repository and fix stale links - #42
Merged
Merged
Conversation
The published poms gave the 51degrees.com home page as each package's url. The url is now this repository, the parent poms stop Maven adding a child's artifactId to the url it inherits, and organization links the 51degrees.com page for each package's area. Links to documentation pages that were renamed now go to the page each became, and the examples READMEs no longer send readers to the archived example repositories.
jwrosewell
marked this pull request as ready for review
November 4, 2026 18:08
Merged
jwrosewell
added a commit
that referenced
this pull request
Nov 4, 2026
Releases what has collected on `rc` since #30: - [#37](#37) Use the data repository for the examples, tests and CI - [#41](#41) Say in AGENTS.md how to get the data, build and run the examples - [#42](#42) Point package metadata at this repository and fix stale links - [#39](#39) Describe the rc approach to releases in AGENTS.md - [#40](#40) Check the callback URL before the JavaScript builder writes it - [#44](#44) Close every FlowData, Pipeline and metadata collection, and fail the build when one is left open ## Release note From [#44](#44): - `ComponentMetaData.getProperties()`, `ProfileMetaData.getValues()`, `ProfileMetaData.getValues(String)` and `FiftyOneAspectPropertyMetaData.getValues()` now declare `CloseableIterable` rather than `Iterable`, which is what the on-premise engines have always returned. Close the collection, for example in a try-with-resources statement, so that it releases the engine's data set straight away. Source that assigns the result to an `Iterable` still compiles. Code compiled against the old declared types needs recompiling, and a class that implements one of these interfaces needs its method to declare `CloseableIterable`, so this is a small breaking change. The release stays a patch release. - `PipelineBuilder.buildFromConfiguration` now closes the elements it has already built when building fails. - The servlet filter and the Spring interceptor now close the request's FlowData on every path. ## Notes The cxx submodule moves from [4.5.102](https://github.com/51Degrees/51degrees-cxx/releases/tag/4.5.102) to [4.5.103](https://github.com/51Degrees/51degrees-cxx/releases/tag/4.5.103). That release adds the [data](https://github.com/51Degrees/data) repository at `cxx/data` and changes nothing under `src/`. No commit asks for a major or minor version change, so the publish moves only patch numbers. The last release into `main` was #30, merged at 06:35 UTC on 4 November 2026.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Maven Central and mvnrepository.com show a package's
<url>as its home page and<organization>as its maintainer. The published poms gave the 51degrees.com home page for both, and none named this repository as the place the code lives. Separately, many links went to documentation pages that were renamed when the documentation was reorganised, and two example READMEs still sent readers to the archived example repositories.Package metadata
<url>is this repository. In 26 published poms the project<url>changes from the tagged 51degrees.com home page (for examplehttps://51degrees.com?utm_source=maven&utm_medium=package&utm_campaign=51degrees-java&utm_content=device-detection.cloud-pom.xml&utm_term=url) to https://github.com/51Degrees/51degrees-java.pipeline/pom.xml,device-detection/pom.xml,ip-intelligence/pom.xmlandlocation/pom.xml, now setchild.project.url.inherit.append.path="false"on<project>. Without it Maven adds a child's artifactId to the<url>it inherits, sogeo-location,geo-location.cloud,geo-location.core,pipeline-aggregateandpipeline.web.packages, which set no<url>of their own, would get addresses such ashttps://github.com/51Degrees/51degrees-java/geo-locationthat GitHub answers with 404. The Maven model reference describes the attribute as "When children inherit from project's url, append path or not?", with a default of true, since Maven 3.6.1.<organization>names 51Degrees and links the page for the package's area. The Pipeline and Location parents had an<organization>pointing at the 51degrees.com home page. The Device Detection and IP Intelligence parents had none.<organization><url>beforepipeline/pom.xmlpipeline/pipeline.did/pom.xmlpipeline.didpipelinedevice-detection/pom.xmlip-intelligence/pom.xmllocation/pom.xmlEach
<organization><url>carriesutm_source=maven,utm_medium=package,utm_campaign=51degrees-java, the pom's artifactId asutm_contentandutm_term=organization, separated by&as the lint asks for XML files.<scm>is not changed here, because #27 already points it at this repository.Documentation links
The renamed pages now redirect to the documentation home page, so a reader never reached the page a link was for. Each old page below was found in the 4.4 documentation, which keeps the old names, and matched to the current page with the same title. Where the title changed, as for the Configurator page, the two pages open with the same text. The UTM parameters of each link are unchanged.
_concepts__configuration__builders__index.html_pipeline_api__concepts__configuration__builders__index.html_concepts__configurator.html_services__configurator.html_examples__device_detection__getting_started__console__cloud.html_device_detection__examples__getting_started__console__cloud.html_examples__device_detection__index.html_device_detection__examples__index.html_features__automatic_datafile_updates.html_pipeline_api__features__automatic_datafile_updates.html_features__usage_sharing.html_pipeline_api__features__usage_sharing.html_info__resource_keys.html_services__cloud__resource_keys.html_info__tested_versions.html_product_summaries__tested_versions.html32 links in 19 files
Two links to
_info__dependencies.html, indevice-detection/README.mdandip-intelligence/README.md, are left as they are, because the current documentation has no page that replaces it.Pointers to the archived repositories
examples/device-detection/README.mdtold readers to clone and changedevice-detection-javaandpipeline-java, then edit version properties by hand. Both repositories are archived. The section now says to run Maven from the root of this repository with thedevprofile, which builds the examples against the packages here, as the root README describes. Thedevprofile is defined inexamples/device-detection/pom.xmlandexamples/ip-intelligence/pom.xml, and the root pom builds both as modules.examples/ip-intelligence/README.mdsaid to run the examples and tests from the repository root,ip-intelligence-java-examples/. Its commands, such asmvn test -pl console, are relative to what is nowexamples/ip-intelligence, so the text and the three command comments now name that folder.How it was checked
scripts/utm-lint.ps1reports no violations, both onrcand with this change.Other pull requests
In six poms the
<url>line is directly below the<description>line that #27 rewrites, so whichever of the two merges second needs those six pairs of lines resolved by keeping both changes. The poms aredevice-detection/device-detection,device-detection.cloud,device-detection.hash.engine.on-premise,ip-intelligence/ip-intelligence,ip-intelligence.cloudandip-intelligence.engine.on-premise. #37 edits some of the same READMEs and examples, but on other lines.Left for later
pipeline/pipeline.developer-examples/pipeline.developer-examples.cloud-engine/.../Main.javacallshttps://51degrees.com/starsign/api/, which answers 404, so the custom cloud engine example cannot work as written. That needs a decision on what the example should call.examples/device-detection/pom.xmlandexamples/ip-intelligence/pom.xmlnamehttps://oss.sonatype.org, which answers 404 since that service was retired. They are build settings rather than links, so they are not changed here.DeviceData.javaandDeviceDataBase.javalinkhttp://dev.w3.org/csswg/css3-images/(404) andhttp://es5.github.com/x15.12.html(no longer resolves). They are generated from the data file's property metadata, so they need fixing there.