diff --git a/bindings/java/build.sh b/bindings/java/build.sh index 371e7327..45ee7ef8 100755 --- a/bindings/java/build.sh +++ b/bindings/java/build.sh @@ -53,3 +53,5 @@ docker container run --rm --user "${codegen_run_user:?}" -v $self_dir:/local "${ -o /local/src \ -t /local/templates \ $common_codegen_options + +bash $root_dir/scripts/fix-java-duplicate-imports.sh diff --git a/bindings/java/src/README.md b/bindings/java/src/README.md index 39f09b10..e889220f 100644 --- a/bindings/java/src/README.md +++ b/bindings/java/src/README.md @@ -40,7 +40,7 @@ Add this dependency to your project's POM: io.cloudsmith.api cloudsmith-api - 2.0.31 + 2.0.32 compile ``` @@ -50,7 +50,7 @@ Add this dependency to your project's POM: Add this dependency to your project's build file: ```groovy -compile "io.cloudsmith.api:cloudsmith-api:2.0.31" +compile "io.cloudsmith.api:cloudsmith-api:2.0.32" ``` ### Others @@ -63,7 +63,7 @@ mvn clean package Then manually install the following JARs: -* `target/cloudsmith-api-2.0.31.jar` +* `target/cloudsmith-api-2.0.32.jar` * `target/lib/*.jar` ## Getting Started diff --git a/bindings/java/src/build.gradle b/bindings/java/src/build.gradle index e4a59bf3..f86ee75a 100644 --- a/bindings/java/src/build.gradle +++ b/bindings/java/src/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'idea' apply plugin: 'eclipse' group = 'io.cloudsmith.api' -version = '2.0.31' +version = '2.0.32' buildscript { repositories { diff --git a/bindings/java/src/build.json b/bindings/java/src/build.json index 11d41d51..c467f8c2 100644 --- a/bindings/java/src/build.json +++ b/bindings/java/src/build.json @@ -3,7 +3,7 @@ "apiPackage": "io.cloudsmith.api.apis", "artifactId": "cloudsmith-api", "artifactUrl": "https://api.cloudsmith.io/?format=openapi", - "artifactVersion": "2.0.31", + "artifactVersion": "2.0.32", "artifactDescription": "Cloudsmith API", "dateLibrary": "java8", "developerName": "Cloudsmith Ltd", diff --git a/bindings/java/src/build.sbt b/bindings/java/src/build.sbt index 11ba83be..96c20619 100644 --- a/bindings/java/src/build.sbt +++ b/bindings/java/src/build.sbt @@ -2,7 +2,7 @@ lazy val root = (project in file(".")). settings( organization := "io.cloudsmith.api", name := "cloudsmith-api", - version := "2.0.31", + version := "2.0.32", scalaVersion := "2.11.4", scalacOptions ++= Seq("-feature"), javacOptions in compile ++= Seq("-Xlint:deprecation"), diff --git a/bindings/java/src/pom.xml b/bindings/java/src/pom.xml index 627a21e8..35f55e5d 100644 --- a/bindings/java/src/pom.xml +++ b/bindings/java/src/pom.xml @@ -5,7 +5,7 @@ cloudsmith-api jar cloudsmith-api - 2.0.31 + 2.0.32 https://api.cloudsmith.io/?format=openapi Cloudsmith API diff --git a/bindings/java/src/src/main/java/io/cloudsmith/api/ApiClient.java b/bindings/java/src/src/main/java/io/cloudsmith/api/ApiClient.java index 5066a524..7bc09929 100644 --- a/bindings/java/src/src/main/java/io/cloudsmith/api/ApiClient.java +++ b/bindings/java/src/src/main/java/io/cloudsmith/api/ApiClient.java @@ -87,7 +87,7 @@ public ApiClient() { json = new JSON(); // Set default User-Agent. - setUserAgent("Swagger-Codegen/2.0.31/java"); + setUserAgent("Swagger-Codegen/2.0.32/java"); // Setup authentications (key: authentication name, value: authentication). authentications = new HashMap(); diff --git a/bindings/python/src/README.md b/bindings/python/src/README.md index 33af304a..cf087d4d 100644 --- a/bindings/python/src/README.md +++ b/bindings/python/src/README.md @@ -4,7 +4,7 @@ The API to the Cloudsmith Service This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: v1 -- Package version: 2.0.31 +- Package version: 2.0.32 - Build package: io.swagger.codegen.languages.PythonClientCodegen For more information, please visit [https://help.cloudsmith.io](https://help.cloudsmith.io) diff --git a/bindings/python/src/build.json b/bindings/python/src/build.json index a35583d1..444881f4 100644 --- a/bindings/python/src/build.json +++ b/bindings/python/src/build.json @@ -2,7 +2,7 @@ "hideGenerationTimestamp": true, "packageName": "cloudsmith_api", "projectName": "cloudsmith_api", - "packageVersion": "2.0.31", + "packageVersion": "2.0.32", "packageUrl": "https://api.cloudsmith.io/?format=openapi", "sortParamsByRequiredFlag": true } diff --git a/bindings/python/src/cloudsmith_api/api_client.py b/bindings/python/src/cloudsmith_api/api_client.py index 91099ad0..c8ef7c37 100644 --- a/bindings/python/src/cloudsmith_api/api_client.py +++ b/bindings/python/src/cloudsmith_api/api_client.py @@ -74,7 +74,7 @@ def __init__(self, configuration=None, header_name=None, header_value=None, self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'Swagger-Codegen/2.0.31/python' + self.user_agent = 'Swagger-Codegen/2.0.32/python' self.client_side_validation = configuration.client_side_validation def __del__(self): diff --git a/bindings/python/src/cloudsmith_api/configuration.py b/bindings/python/src/cloudsmith_api/configuration.py index 2e4de6ba..d0e14a47 100644 --- a/bindings/python/src/cloudsmith_api/configuration.py +++ b/bindings/python/src/cloudsmith_api/configuration.py @@ -249,5 +249,5 @@ def to_debug_report(self): "OS: {env}\n"\ "Python Version: {pyversion}\n"\ "Version of the API: v1\n"\ - "SDK Package Version: 2.0.31".\ + "SDK Package Version: 2.0.32".\ format(env=sys.platform, pyversion=sys.version) diff --git a/bindings/python/src/setup.py b/bindings/python/src/setup.py index 1da2be72..8a6f61aa 100644 --- a/bindings/python/src/setup.py +++ b/bindings/python/src/setup.py @@ -14,7 +14,7 @@ from setuptools import find_packages, setup # noqa: H301 NAME = "cloudsmith_api" -VERSION = "2.0.31" +VERSION = "2.0.32" # To install the library, run the following # # python setup.py install diff --git a/bindings/ruby/src/README.md b/bindings/ruby/src/README.md index ec3e2df8..2861a6e5 100644 --- a/bindings/ruby/src/README.md +++ b/bindings/ruby/src/README.md @@ -7,7 +7,7 @@ The API to the Cloudsmith Service This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: v1 -- Package version: 2.0.31 +- Package version: 2.0.32 - Build package: io.swagger.codegen.languages.RubyClientCodegen For more information, please visit [https://help.cloudsmith.io](https://help.cloudsmith.io) @@ -24,15 +24,15 @@ gem build cloudsmith-api.gemspec Then either install the gem locally: ```shell -gem install ./cloudsmith-api-2.0.31.gem +gem install ./cloudsmith-api-2.0.32.gem ``` -(for development, run `gem install --dev ./cloudsmith-api-2.0.31.gem` to install the development dependencies) +(for development, run `gem install --dev ./cloudsmith-api-2.0.32.gem` to install the development dependencies) or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/). Finally add this to the Gemfile: - gem 'cloudsmith-api', '~> 2.0.31' + gem 'cloudsmith-api', '~> 2.0.32' ### Install from Git diff --git a/bindings/ruby/src/build.json b/bindings/ruby/src/build.json index 6c1cecb5..e87af028 100644 --- a/bindings/ruby/src/build.json +++ b/bindings/ruby/src/build.json @@ -8,7 +8,7 @@ "gemName": "cloudsmith-api", "gemRequiredRubyVersion": ">= 1.9", "gemSummary": "Cloudsmith API", - "gemVersion": "2.0.31", + "gemVersion": "2.0.32", "hideGenerationTimestamp": true, "moduleName": "CloudsmithApi", "sortParamsByRequiredFlag": true diff --git a/bindings/ruby/src/lib/cloudsmith-api/version.rb b/bindings/ruby/src/lib/cloudsmith-api/version.rb index 4bb5b100..05a05956 100644 --- a/bindings/ruby/src/lib/cloudsmith-api/version.rb +++ b/bindings/ruby/src/lib/cloudsmith-api/version.rb @@ -11,5 +11,5 @@ =end module CloudsmithApi - VERSION = '2.0.31' + VERSION = '2.0.32' end diff --git a/scripts/common.sh b/scripts/common.sh index 15b6ebab..489f72d0 100755 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -3,7 +3,7 @@ language=${1:-""} api_url=${2:-${api_url:-"https://api.cloudsmith.io/"}} api_version=$(curl -s "${api_url}status/check/basic/" | jq -r '.version') openapi_url="${api_url}?format=openapi" -package_version="2.0.31" +package_version="2.0.32" swagger_codegen_cli_image="swaggerapi/swagger-codegen-cli:v2.4.50" location=$(curl -s $openapi_url | grep Location | cut -d' ' -f2) diff --git a/scripts/fix-java-duplicate-imports.sh b/scripts/fix-java-duplicate-imports.sh new file mode 100755 index 00000000..2f63f5fb --- /dev/null +++ b/scripts/fix-java-duplicate-imports.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +# swagger-codegen emits repeated import statements into the generated Java +# sources (e.g. `java.lang.reflect.Type` in every *Api.java, and one +# `io.cloudsmith.api.models.*` per model in JSON.java). The duplicates are +# harmless to javac but are flagged by linters and reviewers, so they are +# collapsed to a single occurrence after every regeneration. This is idempotent. + +set -e + +self=$(readlink -f "$BASH_SOURCE") +self_dir=$(dirname "$self") +root_dir=$(readlink -f "$self_dir/..") + +java_src_dir="$root_dir/bindings/java/src/src" + +if [ ! -d "$java_src_dir" ]; then + echo "Java sources directory not found; nothing to fix: $java_src_dir" + exit 0 +fi + +is_duplicated='/^import [^ ]+;[[:space:]]*$/ && seen[$0]++ { found = 1 } END { exit !found }' +deduplicate='/^import [^ ]+;[[:space:]]*$/ && seen[$0]++ { next } { print }' + +fixed=0 +while IFS= read -r -d '' java_file; do + awk "$is_duplicated" "$java_file" || continue + + # Keep only the first occurrence of each identical import line. + awk "$deduplicate" "$java_file" > "$java_file.tmp" + mv "$java_file.tmp" "$java_file" + echo " $java_file" + fixed=$((fixed + 1)) +done < <(find "$java_src_dir" -name '*.java' -type f -print0) + +if [ "$fixed" -eq 0 ]; then + echo "No duplicate Java imports found; nothing to fix" +else + echo "Removed duplicate imports from $fixed Java file(s)" +fi