diff --git a/build.gradle b/build.gradle index df7518b6632..e2efd4cc634 100644 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,7 @@ buildscript { } plugins { - id 'com.diffplug.spotless' version '5.12.5' + id 'com.diffplug.spotless' version '6.10.0' id 'com.github.ben-manes.versions' version '0.42.0' id 'idea' id 'java-library' @@ -47,7 +47,7 @@ plugins { spotless { scala { target 'streams/**/*.scala' - scalafmt("$versions.scalafmt").configFile('checkstyle/.scalafmt.conf') + scalafmt("$versions.scalafmt").configFile('checkstyle/.scalafmt.conf').scalaMajorVersion(versions.baseScala) licenseHeaderFile 'checkstyle/java.header', 'package' } } diff --git a/checkstyle/.scalafmt.conf b/checkstyle/.scalafmt.conf index 1491217312b..a6fae4ab32d 100644 --- a/checkstyle/.scalafmt.conf +++ b/checkstyle/.scalafmt.conf @@ -12,7 +12,10 @@ # 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. -docstrings = JavaDoc +version = 3.5.9 +runner.dialect = scala213 +docstrings.style = Asterisk +docstrings.wrap = false maxColumn = 120 continuationIndent.defnSite = 2 assumeStandardLibraryStripMargin = true diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 7025d12eb54..ccfe3042810 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -111,7 +111,10 @@ versions += [ reload4j: "1.2.19", rocksDB: "6.29.4.1", scalaCollectionCompat: "2.6.0", - scalafmt: "2.7.5", + // When updating the scalafmt version please also update the version field in checkstyle/.scalafmt.conf. scalafmt now + // has the version field as mandatory in its configuration, see + // https://github.com/scalameta/scalafmt/releases/tag/v3.1.0. + scalafmt: "3.5.9", scalaJava8Compat : "1.0.2", scoverage: "1.4.11", slf4j: "1.7.36", diff --git a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/FunctionsCompatConversions.scala b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/FunctionsCompatConversions.scala index c3c6403dd39..4b19dcaa8f2 100644 --- a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/FunctionsCompatConversions.scala +++ b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/FunctionsCompatConversions.scala @@ -24,9 +24,8 @@ import java.lang.{Iterable => JIterable} import org.apache.kafka.streams.processor.ProcessorContext /** - * Implicit classes that offer conversions of Scala function literals to - * SAM (Single Abstract Method) objects in Java. These make the Scala APIs much - * more expressive, with less boilerplate and more succinct. + * Implicit classes that offer conversions of Scala function literals to SAM (Single Abstract Method) objects in Java. + * These make the Scala APIs much more expressive, with less boilerplate and more succinct. */ private[scala] object FunctionsCompatConversions { diff --git a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/ImplicitConversions.scala b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/ImplicitConversions.scala index 5f7064be14e..626038a315b 100644 --- a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/ImplicitConversions.scala +++ b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/ImplicitConversions.scala @@ -19,22 +19,21 @@ package org.apache.kafka.streams.scala import org.apache.kafka.common.serialization.Serde import org.apache.kafka.streams.KeyValue import org.apache.kafka.streams.kstream.{ - KStream => KStreamJ, - KGroupedStream => KGroupedStreamJ, - TimeWindowedKStream => TimeWindowedKStreamJ, - SessionWindowedKStream => SessionWindowedKStreamJ, CogroupedKStream => CogroupedKStreamJ, - TimeWindowedCogroupedKStream => TimeWindowedCogroupedKStreamJ, - SessionWindowedCogroupedKStream => SessionWindowedCogroupedKStreamJ, + KGroupedStream => KGroupedStreamJ, + KGroupedTable => KGroupedTableJ, + KStream => KStreamJ, KTable => KTableJ, - KGroupedTable => KGroupedTableJ + SessionWindowedCogroupedKStream => SessionWindowedCogroupedKStreamJ, + SessionWindowedKStream => SessionWindowedKStreamJ, + TimeWindowedCogroupedKStream => TimeWindowedCogroupedKStreamJ, + TimeWindowedKStream => TimeWindowedKStreamJ } import org.apache.kafka.streams.processor.StateStore import org.apache.kafka.streams.scala.kstream._ /** - * Implicit conversions between the Scala wrapper objects and the underlying Java - * objects. + * Implicit conversions between the Scala wrapper objects and the underlying Java objects. */ object ImplicitConversions { diff --git a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/CogroupedKStream.scala b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/CogroupedKStream.scala index 2bf58ca0e56..f8f33e7b4e6 100644 --- a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/CogroupedKStream.scala +++ b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/CogroupedKStream.scala @@ -18,11 +18,11 @@ package org.apache.kafka.streams.scala package kstream import org.apache.kafka.streams.kstream.{ + CogroupedKStream => CogroupedKStreamJ, SessionWindows, SlidingWindows, Window, - Windows, - CogroupedKStream => CogroupedKStreamJ + Windows } import org.apache.kafka.streams.scala.FunctionsCompatConversions.{AggregatorFromFunction, InitializerFromFunction} diff --git a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KGroupedStream.scala b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KGroupedStream.scala index 60a9c572d16..01e7c1c5208 100644 --- a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KGroupedStream.scala +++ b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KGroupedStream.scala @@ -20,12 +20,12 @@ package kstream import org.apache.kafka.streams.kstream.internals.KTableImpl import org.apache.kafka.streams.scala.serialization.Serdes import org.apache.kafka.streams.kstream.{ + KGroupedStream => KGroupedStreamJ, + KTable => KTableJ, SessionWindows, SlidingWindows, Window, - Windows, - KGroupedStream => KGroupedStreamJ, - KTable => KTableJ + Windows } import org.apache.kafka.streams.scala.FunctionsCompatConversions.{ AggregatorFromFunction, diff --git a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KStream.scala b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KStream.scala index 24f9e6ed6a7..59a3f5aeddb 100644 --- a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KStream.scala +++ b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KStream.scala @@ -21,11 +21,11 @@ import org.apache.kafka.streams.KeyValue import org.apache.kafka.streams.kstream.{ GlobalKTable, JoinWindows, + KStream => KStreamJ, Printed, TransformerSupplier, ValueTransformerSupplier, - ValueTransformerWithKeySupplier, - KStream => KStreamJ + ValueTransformerWithKeySupplier } import org.apache.kafka.streams.processor.TopicNameExtractor import org.apache.kafka.streams.processor.api.{FixedKeyProcessorSupplier, ProcessorSupplier} @@ -334,7 +334,7 @@ class KStream[K, V](val inner: KStreamJ[K, V]) { * @see `org.apache.kafka.streams.kstream.KStream#branch` * @deprecated since 2.8. Use `split` instead. */ - //noinspection ScalaUnnecessaryParentheses + // noinspection ScalaUnnecessaryParentheses @deprecated("use `split()` instead", "2.8") def branch(predicates: ((K, V) => Boolean)*): Array[KStream[K, V]] = inner.branch(predicates.map(_.asPredicate): _*).map(kstream => new KStream(kstream)) diff --git a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KTable.scala b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KTable.scala index 9d8fe81f71a..ea0df077482 100644 --- a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KTable.scala +++ b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream/KTable.scala @@ -18,7 +18,7 @@ package org.apache.kafka.streams.scala package kstream import org.apache.kafka.common.utils.Bytes -import org.apache.kafka.streams.kstream.{TableJoined, ValueJoiner, ValueTransformerWithKeySupplier, KTable => KTableJ} +import org.apache.kafka.streams.kstream.{KTable => KTableJ, TableJoined, ValueJoiner, ValueTransformerWithKeySupplier} import org.apache.kafka.streams.scala.FunctionsCompatConversions.{ FunctionFromFunction, KeyValueMapperFromFunction, diff --git a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/serialization/Serdes.scala b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/serialization/Serdes.scala index 0c72358c15f..cf643d518a2 100644 --- a/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/serialization/Serdes.scala +++ b/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/serialization/Serdes.scala @@ -20,7 +20,7 @@ import java.nio.ByteBuffer import java.util import java.util.UUID -import org.apache.kafka.common.serialization.{Deserializer, Serde, Serializer, Serdes => JSerdes} +import org.apache.kafka.common.serialization.{Deserializer, Serde, Serdes => JSerdes, Serializer} import org.apache.kafka.streams.kstream.WindowedSerdes object Serdes extends LowPrioritySerdes { diff --git a/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/TopologyTest.scala b/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/TopologyTest.scala index b38b0c3a941..0ef905f8d60 100644 --- a/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/TopologyTest.scala +++ b/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/TopologyTest.scala @@ -25,16 +25,16 @@ import org.apache.kafka.streams.kstream.{ Aggregator, Initializer, JoinWindows, - KeyValueMapper, - Reducer, - Transformer, - ValueJoiner, - ValueMapper, KGroupedStream => KGroupedStreamJ, KStream => KStreamJ, KTable => KTableJ, + KeyValueMapper, Materialized => MaterializedJ, - StreamJoined => StreamJoinedJ + Reducer, + StreamJoined => StreamJoinedJ, + Transformer, + ValueJoiner, + ValueMapper } import org.apache.kafka.streams.processor.{api, ProcessorContext} import org.apache.kafka.streams.processor.api.{Processor, ProcessorSupplier} @@ -42,7 +42,7 @@ import org.apache.kafka.streams.scala.ImplicitConversions._ import org.apache.kafka.streams.scala.serialization.{Serdes => NewSerdes} import org.apache.kafka.streams.scala.serialization.Serdes._ import org.apache.kafka.streams.scala.kstream._ -import org.apache.kafka.streams.{KeyValue, StreamsConfig, TopologyDescription, StreamsBuilder => StreamsBuilderJ} +import org.apache.kafka.streams.{KeyValue, StreamsBuilder => StreamsBuilderJ, StreamsConfig, TopologyDescription} import org.junit.jupiter.api.Assertions._ import org.junit.jupiter.api._ diff --git a/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KStreamTest.scala b/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KStreamTest.scala index 0b61984a96a..46d5310e02b 100644 --- a/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KStreamTest.scala +++ b/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KStreamTest.scala @@ -191,7 +191,7 @@ class KStreamTest extends TestDriver { testDriver.close() } - //noinspection ScalaDeprecation + // noinspection ScalaDeprecation @Test def testJoinCorrectlyRecords(): Unit = { val builder = new StreamsBuilder() diff --git a/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KTableTest.scala b/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KTableTest.scala index 9e872601ef1..36031907339 100644 --- a/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KTableTest.scala +++ b/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/KTableTest.scala @@ -19,11 +19,11 @@ package org.apache.kafka.streams.scala.kstream import org.apache.kafka.streams.kstream.Suppressed.BufferConfig import org.apache.kafka.streams.kstream.{ Named, - SlidingWindows, SessionWindows, + SlidingWindows, + Suppressed => JSuppressed, TimeWindows, - Windowed, - Suppressed => JSuppressed + Windowed } import org.apache.kafka.streams.scala.ImplicitConversions._ import org.apache.kafka.streams.scala.serialization.Serdes._