> On Jan. 21, 2015, 10:55 p.m., Eric Olander wrote: > > core/src/main/scala/kafka/server/KafkaConfig.scala, line 130 > > <https://reviews.apache.org/r/30126/diff/1/?file=828512#file828512line130> > > > > It seems that by convention there is a ...Prop and a ...Doc constant, > > but nothing enforces that. Maybe have > > val ZKConnect = ("zookeeper.connect", "Zookeeper host string") > > so it is more apparent that these two values are needed and related. A > > utility class would be better than using a Tuple2, but that's the general > > idea.
you mean smth like ``` case class Key(prop: String, doc: String) ``` ? I can even do ``` val (ZkConnectProp, ZkConnectDoc) = ("zookeeper.connect", "Zookeeper host string") ``` I don't mind, it's just ProducerConfig and LogConfig then won't follow this approach and again we'll end up with not uniform config implementations... Let's wait if others support this since it's a big change and I'd rather do it once :) > On Jan. 21, 2015, 10:55 p.m., Eric Olander wrote: > > core/src/main/scala/kafka/server/KafkaConfig.scala, line 475 > > <https://reviews.apache.org/r/30126/diff/1/?file=828512#file828512line475> > > > > Maybe some helper functions could help with this code: > > > > def stringProp(prop: String) = parsed.get(prop).asInstanceOf[String] > > > > then: > > zkConnect = stringProp(ZkConnectProp) > > Gwen Shapira wrote: > I like this suggestion. I'd add it to ConfigDef or something similar, so > all Config classes can enjoy this. > This can be a follow-up patch, since we are already using the > parsed.get.asInstanceOf pattern everywhere, so the fix is not related to this > patch specifically. Yes, good point! Just one thing: if we add it to ConfigDef java class (which I like too), we won't be able to use implicits so the utility function will be less gracefull: ``` String stringProp(parsed: Map<String, Object>, prop: String) ``` and sample usage: ``` zkConnect = stringProp(parsed, ZkConnectProp) ``` - Andrii ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/30126/#review69063 ----------------------------------------------------------- On Jan. 21, 2015, 5:49 p.m., Andrii Biletskyi wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/30126/ > ----------------------------------------------------------- > > (Updated Jan. 21, 2015, 5:49 p.m.) > > > Review request for kafka. > > > Bugs: KAFKA-1845 > https://issues.apache.org/jira/browse/KAFKA-1845 > > > Repository: kafka > > > Description > ------- > > KAFKA-1845 - Fixed merge conflicts, ported added configs to KafkaConfig > > > KAFKA-1845 - KafkaConfig to ConfigDef: moved validateValues so it's called on > instantiating KafkaConfig > > > KAFKA-1845 - KafkaConfig to ConfigDef: MaxConnectionsPerIpOverrides refactored > > > Diffs > ----- > > clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java > 98cb79b701918eca3f6ca9823b6c7b7c97b3ecec > core/src/main/scala/kafka/Kafka.scala > 77a49e12af6f869e63230162e9f87a7b0b12b610 > core/src/main/scala/kafka/controller/KafkaController.scala > 66df6d2fbdbdd556da6bea0df84f93e0472c8fbf > core/src/main/scala/kafka/controller/PartitionLeaderSelector.scala > 4a31c7271c2d0a4b9e8b28be729340ecfa0696e5 > core/src/main/scala/kafka/server/KafkaConfig.scala > 6d74983472249eac808d361344c58cc2858ec971 > core/src/main/scala/kafka/server/KafkaServer.scala > 89200da30a04943f0b9befe84ab17e62b747c8c4 > core/src/main/scala/kafka/server/ReplicaFetcherThread.scala > 6879e730282185bda3d6bc3659cb15af0672cecf > core/src/test/scala/integration/kafka/api/ProducerCompressionTest.scala > e63558889272bc76551accdfd554bdafde2e0dd6 > core/src/test/scala/integration/kafka/api/ProducerFailureHandlingTest.scala > 90c0b7a19c7af8e5416e4bdba62b9824f1abd5ab > core/src/test/scala/integration/kafka/api/ProducerSendTest.scala > b15237b76def3b234924280fa3fdb25dbb0cc0dc > core/src/test/scala/unit/kafka/admin/AddPartitionsTest.scala > 1bf2667f47853585bc33ffb3e28256ec5f24ae84 > core/src/test/scala/unit/kafka/admin/AdminTest.scala > e28979827110dfbbb92fe5b152e7f1cc973de400 > core/src/test/scala/unit/kafka/admin/DeleteTopicTest.scala > 33c27678bf8ae8feebcbcdaa4b90a1963157b4a5 > core/src/test/scala/unit/kafka/consumer/ConsumerIteratorTest.scala > c0355cc0135c6af2e346b4715659353a31723b86 > > core/src/test/scala/unit/kafka/consumer/ZookeeperConsumerConnectorTest.scala > a17e8532c44aadf84b8da3a57bcc797a848b5020 > core/src/test/scala/unit/kafka/integration/AutoOffsetResetTest.scala > 95303e098d40cd790fb370e9b5a47d20860a6da3 > core/src/test/scala/unit/kafka/integration/FetcherTest.scala > 25845abbcad2e79f56f729e59239b738d3ddbc9d > core/src/test/scala/unit/kafka/integration/PrimitiveApiTest.scala > a5386a03b62956bc440b40783247c8cdf7432315 > core/src/test/scala/unit/kafka/integration/RollingBounceTest.scala > eab4b5f619015af42e4554660eafb5208e72ea33 > core/src/test/scala/unit/kafka/integration/TopicMetadataTest.scala > 35dc071b1056e775326981573c9618d8046e601d > core/src/test/scala/unit/kafka/integration/UncleanLeaderElectionTest.scala > ba3bcdcd1de9843e75e5395dff2fc31b39a5a9d5 > > core/src/test/scala/unit/kafka/javaapi/consumer/ZookeeperConsumerConnectorTest.scala > d6248b09bb0f86ee7d3bd0ebce5b99135491453b > core/src/test/scala/unit/kafka/log/LogTest.scala > c2dd8eb69da8c0982a0dd20231c6f8bd58eb623e > core/src/test/scala/unit/kafka/log4j/KafkaLog4jAppenderTest.scala > 4ea0489c9fd36983fe190491a086b39413f3a9cd > core/src/test/scala/unit/kafka/metrics/MetricsTest.scala > 3cf23b3d6d4460535b90cfb36281714788fc681c > core/src/test/scala/unit/kafka/producer/AsyncProducerTest.scala > 1db6ac329f7b54e600802c8a623f80d159d4e69b > core/src/test/scala/unit/kafka/producer/ProducerTest.scala > ce65dab4910d9182e6774f6ef1a7f45561ec0c23 > core/src/test/scala/unit/kafka/producer/SyncProducerTest.scala > d60d8e0f49443f4dc8bc2cad6e2f951eda28f5cb > core/src/test/scala/unit/kafka/server/AdvertiseBrokerTest.scala > f0c4a56b61b4f081cf4bee799c6e9c523ff45e19 > core/src/test/scala/unit/kafka/server/DynamicConfigChangeTest.scala > ad121169a5e80ebe1d311b95b219841ed69388e2 > core/src/test/scala/unit/kafka/server/HighwatermarkPersistenceTest.scala > 8913fc1d59f717c6b3ed12c8362080fb5698986b > core/src/test/scala/unit/kafka/server/ISRExpirationTest.scala > a703d2715048c5602635127451593903f8d20576 > core/src/test/scala/unit/kafka/server/KafkaConfigConfigDefTest.scala > PRE-CREATION > core/src/test/scala/unit/kafka/server/KafkaConfigTest.scala > 82dce80d553957d8b5776a9e140c346d4e07f766 > core/src/test/scala/unit/kafka/server/LeaderElectionTest.scala > c2ba07c5fdbaf0e65ca033b2e4d88f45a8a15b2e > core/src/test/scala/unit/kafka/server/LogOffsetTest.scala > c06ee756bf0fe07e5d3c92823a476c960b37afd6 > core/src/test/scala/unit/kafka/server/LogRecoveryTest.scala > d5d351c4f25933da0ba776a6a89a989f1ca6a902 > core/src/test/scala/unit/kafka/server/OffsetCommitTest.scala > 5b93239cdc26b5be7696f4e7863adb9fbe5f0ed5 > core/src/test/scala/unit/kafka/server/ReplicaFetchTest.scala > da4bafc1e2a94a436efe395aab1888fc21e55748 > core/src/test/scala/unit/kafka/server/ReplicaManagerTest.scala > faa907131ed0aa94a7eacb78c1ffb576062be87a > core/src/test/scala/unit/kafka/server/ServerGenerateBrokerIdTest.scala > cf2dd9455a9198b7215468df9f29568e91b31850 > core/src/test/scala/unit/kafka/server/ServerShutdownTest.scala > ba1e48e4300c9fb32e36e7266cb05294f2a481e5 > core/src/test/scala/unit/kafka/server/ServerStartupTest.scala > 8fe7cd496f74ae1031019c2ca9ca013302294d9b > core/src/test/scala/unit/kafka/server/SimpleFetchTest.scala > ccf5e2e36260b2484181b81d1b06e81de972674b > core/src/test/scala/unit/kafka/utils/ReplicationUtilsTest.scala > 84e08557de5acdcf0a98b192feac72836ea359b8 > > Diff: https://reviews.apache.org/r/30126/diff/ > > > Testing > ------- > > > Thanks, > > Andrii Biletskyi > >