----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/14013/#review25979 -----------------------------------------------------------
I am wondering if there is any performance degradation due to the changes in implicit conversion. Could you run kafka.perf.ProducerPerformance and see if there is any noticeable performance change with and w/o the patch? core/src/main/scala/kafka/controller/PartitionStateMachine.scala <https://reviews.apache.org/r/14013/#comment50705> Could you move the import of the JavaConversion to within this function to limit the scope of the implicit conversion? core/src/main/scala/kafka/javaapi/consumer/ZookeeperConsumerConnector.scala <https://reviews.apache.org/r/14013/#comment50706> Don't you need to specify the java return type explicitly here? core/src/main/scala/kafka/utils/Annotations_2.9+.scala <https://reviews.apache.org/r/14013/#comment50707> How does this affect IDEs like Intellij? Are you able to build the project in IDE with both version of threadsafe annotation? - Jun Rao On Sept. 8, 2013, 9:47 p.m., Christopher Freeman wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/14013/ > ----------------------------------------------------------- > > (Updated Sept. 8, 2013, 9:47 p.m.) > > > Review request for kafka and Neha Narkhede. > > > Bugs: KAFKA-1046 > https://issues.apache.org/jira/browse/KAFKA-1046 > > > Repository: kafka > > > Description > ------- > > This RB contains necessary changes to the kafka source code to support Scala > 2.10.x while still maintaining support for Scala 2.8.x > > The existing cause of source incompatibility between 2.8.x and 2.10.x was > primarily due to the use of implicit conversions in the > scala.collection.JavaConversions object. Many of them where deprecated (and > replaced with differently named methods) and the deprecated methods where > removed in 2.10. I avoided the source incompatibility by importing the > implicits with a wild card. > > Scala annotations moved to a different package in 2.9 and the reference to > the old location was removed in 2.10. I couldn't think of a source > compatible way to support both in Annotations.scala so since this source file > is very small, I created two copies and configured sbt to use the one > appropriate for when building for a particular Scala version. > > I also typed many of the catch block case statements with :Throwable. This > change isn't required but starting with Scala 2.9, the compiler will emit > warnings if the type is emitted. Otherwise "case e =>" and case "e: > Throwable =>" are equivalent. > > > > > > Diffs > ----- > > core/build.sbt c54cf44 > core/src/main/scala/kafka/Kafka.scala dafb1ee > core/src/main/scala/kafka/admin/AddPartitionsCommand.scala 5757c32 > core/src/main/scala/kafka/admin/AdminUtils.scala c399bc7 > core/src/main/scala/kafka/admin/CreateTopicCommand.scala 21c1186 > core/src/main/scala/kafka/admin/DeleteTopicCommand.scala 3da4518 > core/src/main/scala/kafka/admin/ListTopicCommand.scala c760cc0 > core/src/main/scala/kafka/admin/PreferredReplicaLeaderElectionCommand.scala > d5de5f3 > core/src/main/scala/kafka/admin/ReassignPartitionsCommand.scala aa61fa1 > core/src/main/scala/kafka/client/ClientUtils.scala cc526ec > core/src/main/scala/kafka/cluster/Broker.scala b03dea2 > core/src/main/scala/kafka/consumer/ConsoleConsumer.scala 719beb5 > core/src/main/scala/kafka/consumer/ConsumerFetcherManager.scala fa6b213 > core/src/main/scala/kafka/consumer/SimpleConsumer.scala 4395fe3 > core/src/main/scala/kafka/consumer/TopicCount.scala c8e8406 > core/src/main/scala/kafka/consumer/ZookeeperConsumerConnector.scala e7a692a > core/src/main/scala/kafka/consumer/ZookeeperTopicEventWatcher.scala df83baa > core/src/main/scala/kafka/controller/ControllerChannelManager.scala ed1ce0b > core/src/main/scala/kafka/controller/KafkaController.scala ab18b7a > core/src/main/scala/kafka/controller/PartitionStateMachine.scala a084830 > core/src/main/scala/kafka/controller/ReplicaStateMachine.scala c964857 > core/src/main/scala/kafka/javaapi/FetchRequest.scala b475240 > core/src/main/scala/kafka/javaapi/Implicits.scala ee0a71d > core/src/main/scala/kafka/javaapi/OffsetRequest.scala 1c77ff8 > core/src/main/scala/kafka/javaapi/TopicMetadata.scala 97b6dcd > core/src/main/scala/kafka/javaapi/TopicMetadataRequest.scala 5f80df7 > core/src/main/scala/kafka/javaapi/consumer/ZookeeperConsumerConnector.scala > 14c4c8a > core/src/main/scala/kafka/javaapi/message/ByteBufferMessageSet.scala > 0a95248 > core/src/main/scala/kafka/javaapi/producer/Producer.scala 7265328 > core/src/main/scala/kafka/log/LogManager.scala 4771d11 > core/src/main/scala/kafka/network/BoundedByteBufferReceive.scala cab1864 > core/src/main/scala/kafka/producer/SyncProducer.scala 306f200 > core/src/main/scala/kafka/producer/async/DefaultEventHandler.scala 2e36d3b > core/src/main/scala/kafka/producer/async/ProducerSendThread.scala 2b41a49 > core/src/main/scala/kafka/server/AbstractFetcherThread.scala d5addb3 > core/src/main/scala/kafka/server/KafkaApis.scala cd02aab > core/src/main/scala/kafka/server/KafkaServerStartable.scala 5be65e9 > core/src/main/scala/kafka/server/ReplicaManager.scala f551243 > core/src/main/scala/kafka/server/ZookeeperLeaderElector.scala f1f0625 > core/src/main/scala/kafka/tools/ImportZkOffsets.scala 55709b5 > core/src/main/scala/kafka/tools/JmxTool.scala 7e424e7 > core/src/main/scala/kafka/tools/MirrorMaker.scala 6fb545a > core/src/main/scala/kafka/tools/SimpleConsumerShell.scala 3cfa384 > core/src/main/scala/kafka/utils/Annotations.scala 28269eb > core/src/main/scala/kafka/utils/Annotations_2.8.scala PRE-CREATION > core/src/main/scala/kafka/utils/Annotations_2.9+.scala PRE-CREATION > core/src/main/scala/kafka/utils/Json.scala f80b2cc > core/src/main/scala/kafka/utils/Mx4jLoader.scala 64d84cc > core/src/main/scala/kafka/utils/Pool.scala 9a86eab > core/src/main/scala/kafka/utils/Utils.scala e83eb5f > core/src/main/scala/kafka/utils/ZkUtils.scala ca1ce12 > core/src/test/scala/unit/kafka/admin/AddPartitionsTest.scala 06be990 > core/src/test/scala/unit/kafka/admin/AdminTest.scala dc0013f > > core/src/test/scala/unit/kafka/consumer/ZookeeperConsumerConnectorTest.scala > fcfc583 > > core/src/test/scala/unit/kafka/javaapi/consumer/ZookeeperConsumerConnectorTest.scala > 9f243f0 > > core/src/test/scala/unit/kafka/javaapi/message/BaseMessageSetTestCases.scala > abee11b > core/src/test/scala/unit/kafka/log/LogTest.scala 4ed88e8 > core/src/test/scala/unit/kafka/metrics/KafkaTimerTest.scala fe5bc09 > core/src/test/scala/unit/kafka/producer/AsyncProducerTest.scala 1781bc0 > core/src/test/scala/unit/kafka/producer/ProducerTest.scala 29331db > core/src/test/scala/unit/kafka/producer/SyncProducerTest.scala b3e89c3 > core/src/test/scala/unit/kafka/utils/TestUtils.scala 830608f > perf/src/main/scala/kafka/perf/ConsumerPerformance.scala 3158a22 > project/Build.scala b3858f3 > > Diff: https://reviews.apache.org/r/14013/diff/ > > > Testing > ------- > > successfully performed cross build across all scala versions > unit tests pass across all scala versions > > > Thanks, > > Christopher Freeman > >