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