It would also be nice if the truly generic ZKUtils (createEphemeralPathExpectConflict) and the kafka specific (getConsumersPerTopic) were in separate classes.
On 03/25/2012 06:23 PM, Jay Kreps wrote: > Hey guys, > > The Utils helpers are meant to be generic non-kafka-specific utility > functions. Ideally it should not have dependencies outside java.* and > scala.*. I notice a lot of code in there that is zookeeper-specific (my > fault I think), that should really be a ZkUtils class. I also notice a lot > of code that isn't properly helper code at all but actually very > kafka-specific stuff. This isn't a big deal, just a little hacky. > > Here are some suspicious methods: > > def getCompressionCodec(props: Properties, codec: String): > CompressionCodec > def getTopicRentionHours(retentionHours: String) : Map[String, Int] > def getTopicFlushIntervals(allIntervals: String) : Map[String, Int] > def getTopicPartitions(allPartitions: String) : Map[String, Int] > def getConsumerTopicMap(consumerTopicString: String) : Map[String, Int] > class SnapshotStats > class Stats > ... > > In general if we are putting domain-specific logic into generic static > helpers like this it probably means we are missing some domain object to > stick these on. > > I will file a ticket to clean these up, but I wanted to email around to try > to explain the motivation. > > -Jay >