Conversation
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.
Part of the license compliance work across ThingsBoard-owned dependencies, along the same lines as thingsboard/tbel#52, thingsboard/protobuf-dynamic#4 and thingsboard/springdoc-openapi#3.
This PR targets
release/4.3, so the changes ship with the next 4.3.x client (4.3.1.6). #81 applies the same commits tomaster.Changes
SPDX license headers. Every file the license plugin covers now starts with a two-line SPDX header in place of the year-stamped Apache block (
Copyright © 2026-2026 ThingsBoard, Inc.plus the full notice):license-maven-pluginis upgraded from 3.0 to 5.1.2, configured withlicenseSetsand the single-line//style for Java, the same as license-server.license-header-template.txtis renamed tolicense-header.txt, since it is no longer a template, and holds just the two SPDX lines. The unusedownerproperty is gone.generate-client.shalready runsmvn license:formatafter generation, so regenerated sources get the new header without any script change..github/workflows/ci.ymlno longer carries a header. It stays excluded from the plugin.Templates derived from OpenAPI Generator.
openapi/api.mustacheandopenapi/pojo.mustacheare edited copies of the OpenAPI Generator 7.20.0 templates (Java/libraries/native/api.mustacheandJava/pojo.mustache). Most of their text is still upstream's. OpenAPI Generator licenses its templates under Apache-2.0, so these two now carrySPDX-FileCopyrightText: Modifications Copyright ThingsBoard, Inc.instead of claiming plain ThingsBoard copyright. They are excluded from the license plugin so thatlicense:formatdoes not overwrite that header. The other four templates (api_doc,model_doc,pojo_doc,enum_outer_doc) were written from scratch and keep the standard header.The generated Java sources keep the plain ThingsBoard header. OpenAPI Generator states that generated code is not subject to its license and is owned by the user (README, section 3.4 "License information on Generated Code").
LICENSE. The file is restored to the canonical Apache License 2.0 text, with
httpsURLs. The appendix had its placeholders filled in (Copyright 2016 The Thingsboard Authors, with{}in place of[]); it is boilerplate showing how to apply the license, so it should keep the placeholders.License text in the published jars.
LICENSEis now packaged asMETA-INF/LICENSEin the main and sources jars of every module. Before this, the published jars contained no license text.SPDX license name. The pom declares
Apache License 2.0, the SPDX full name, instead ofApache License, Version 2.0.thingsboard-client-commonis no longer deployed. The module stays: it is whereThingsboardClientandRetryingHttpClientare edited and tested, andgenerate-client.shcopies those sources into every edition. Its own jar is of no use to consumers, though:NoClassDefFoundErrorwithout an edition jar, sinceThingsboardClientextends the generatedThingsboardApi;The README already described it as "not published separately". It now really is not. The versions already published to the repository are unaffected.
README. The
## Licensesection becomes## Licensing, using the same wording as the other ThingsBoard repositories.Published artifacts after this change
thingsboard-client-parent(pom), plusthingsboard-ce-client,thingsboard-pe-clientandthingsboard-paas-client(jar, sources jar, pom). Each jar containsMETA-INF/LICENSE.Merging
release/4.3intomasterWhen
release/4.3is next merged forward,pe/src/main/java/org/thingsboard/client/model/ComplexOperation.javawill produce a modify/delete conflict.masterdeleted that generated file in 9108cbf, and this PR rewrites its header. Resolve it by keeping the deletion. Everything else merges cleanly, because both PRs change the shared files' headers identically.