diff --git a/src/main/java/com/google/pubsub/kafka/common/Version.java b/src/main/java/com/google/pubsub/kafka/common/Version.java new file mode 100644 index 00000000..f28bf037 --- /dev/null +++ b/src/main/java/com/google/pubsub/kafka/common/Version.java @@ -0,0 +1,31 @@ +/* + * Copyright 2023 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.pubsub.kafka.common; + +public class Version { + private static String version = "unknown"; + + static { + String implementationVersion = Version.class.getPackage().getImplementationVersion(); + if (implementationVersion != null) { + version = implementationVersion; + } + } + + public static String version() { + return version; + } +} diff --git a/src/main/java/com/google/pubsub/kafka/sink/CloudPubSubSinkConnector.java b/src/main/java/com/google/pubsub/kafka/sink/CloudPubSubSinkConnector.java index e7c56118..d9736fe1 100644 --- a/src/main/java/com/google/pubsub/kafka/sink/CloudPubSubSinkConnector.java +++ b/src/main/java/com/google/pubsub/kafka/sink/CloudPubSubSinkConnector.java @@ -16,6 +16,7 @@ package com.google.pubsub.kafka.sink; import com.google.pubsub.kafka.common.ConnectorUtils; +import com.google.pubsub.kafka.common.Version; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -25,7 +26,6 @@ import org.apache.kafka.common.config.ConfigDef.Importance; import org.apache.kafka.common.config.ConfigDef.Type; import org.apache.kafka.common.config.ConfigException; -import org.apache.kafka.common.utils.AppInfoParser; import org.apache.kafka.connect.connector.Task; import org.apache.kafka.connect.sink.SinkConnector; import org.slf4j.Logger; @@ -117,7 +117,7 @@ public void ensureValid(String name, Object o) { @Override public String version() { - return AppInfoParser.getVersion(); + return Version.version(); } @Override diff --git a/src/main/java/com/google/pubsub/kafka/source/CloudPubSubSourceConnector.java b/src/main/java/com/google/pubsub/kafka/source/CloudPubSubSourceConnector.java index 3f507d2f..e77831f7 100644 --- a/src/main/java/com/google/pubsub/kafka/source/CloudPubSubSourceConnector.java +++ b/src/main/java/com/google/pubsub/kafka/source/CloudPubSubSourceConnector.java @@ -21,6 +21,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.pubsub.kafka.common.ConnectorCredentialsProvider; import com.google.pubsub.kafka.common.ConnectorUtils; +import com.google.pubsub.kafka.common.Version; import com.google.pubsub.v1.GetSubscriptionRequest; import java.util.ArrayList; import java.util.Arrays; @@ -31,7 +32,6 @@ import org.apache.kafka.common.config.ConfigDef.Importance; import org.apache.kafka.common.config.ConfigDef.Type; import org.apache.kafka.common.config.ConfigException; -import org.apache.kafka.common.utils.AppInfoParser; import org.apache.kafka.connect.connector.Task; import org.apache.kafka.connect.errors.ConnectException; import org.apache.kafka.connect.source.SourceConnector; @@ -130,7 +130,7 @@ public void ensureValid(String name, Object o) { @Override public String version() { - return AppInfoParser.getVersion(); + return Version.version(); } @Override diff --git a/src/main/java/com/google/pubsublite/kafka/common/Version.java b/src/main/java/com/google/pubsublite/kafka/common/Version.java new file mode 100644 index 00000000..47a053fd --- /dev/null +++ b/src/main/java/com/google/pubsublite/kafka/common/Version.java @@ -0,0 +1,31 @@ +/* + * Copyright 2023 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.pubsublite.kafka.common; + +public class Version { + private static String version = "unknown"; + + static { + String implementationVersion = Version.class.getPackage().getImplementationVersion(); + if (implementationVersion != null) { + version = implementationVersion; + } + } + + public static String version() { + return version; + } +} diff --git a/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkConnector.java b/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkConnector.java index 67bc2906..5d8741c8 100644 --- a/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkConnector.java +++ b/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkConnector.java @@ -15,11 +15,11 @@ */ package com.google.pubsublite.kafka.sink; +import com.google.pubsublite.kafka.common.Version; import java.util.Collections; import java.util.List; import java.util.Map; import org.apache.kafka.common.config.ConfigDef; -import org.apache.kafka.common.utils.AppInfoParser; import org.apache.kafka.connect.connector.Task; import org.apache.kafka.connect.sink.SinkConnector; @@ -28,7 +28,7 @@ public class PubSubLiteSinkConnector extends SinkConnector { @Override public String version() { - return AppInfoParser.getVersion(); + return Version.version(); } @Override diff --git a/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkTask.java b/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkTask.java index 9dd5ab95..4b35ce8b 100644 --- a/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkTask.java +++ b/src/main/java/com/google/pubsublite/kafka/sink/PubSubLiteSinkTask.java @@ -32,7 +32,6 @@ import javax.annotation.Nullable; import org.apache.kafka.clients.consumer.OffsetAndMetadata; import org.apache.kafka.common.TopicPartition; -import org.apache.kafka.common.utils.AppInfoParser; import org.apache.kafka.connect.header.ConnectHeaders; import org.apache.kafka.connect.header.Header; import org.apache.kafka.connect.sink.SinkRecord; @@ -54,7 +53,7 @@ public PubSubLiteSinkTask() { @Override public String version() { - return AppInfoParser.getVersion(); + return new PubSubLiteSinkConnector().version(); } @Override diff --git a/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceConnector.java b/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceConnector.java index 38414993..2ec0d939 100644 --- a/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceConnector.java +++ b/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceConnector.java @@ -15,11 +15,11 @@ */ package com.google.pubsublite.kafka.source; +import com.google.pubsublite.kafka.common.Version; import java.util.Collections; import java.util.List; import java.util.Map; import org.apache.kafka.common.config.ConfigDef; -import org.apache.kafka.common.utils.AppInfoParser; import org.apache.kafka.connect.connector.Task; import org.apache.kafka.connect.source.SourceConnector; @@ -29,7 +29,7 @@ public class PubSubLiteSourceConnector extends SourceConnector { @Override public String version() { - return AppInfoParser.getVersion(); + return Version.version(); } @Override diff --git a/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceTask.java b/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceTask.java index 2ffd01cd..2e16cdc8 100644 --- a/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceTask.java +++ b/src/main/java/com/google/pubsublite/kafka/source/PubSubLiteSourceTask.java @@ -19,7 +19,6 @@ import java.util.List; import java.util.Map; import javax.annotation.Nullable; -import org.apache.kafka.common.utils.AppInfoParser; import org.apache.kafka.connect.source.SourceRecord; import org.apache.kafka.connect.source.SourceTask; @@ -39,7 +38,7 @@ public PubSubLiteSourceTask() { @Override public String version() { - return AppInfoParser.getVersion(); + return new PubSubLiteSourceConnector().version(); } @Override