Hi,

I thought SAMZA-77 looked like fun so made the changes required to add the 
stringified UUID to the client and group IDs.  All nice and easy.  Then I tried 
adding some test cases and think I'm managing to make this more difficult than 
it needs to be. :)

In my test case I have the following, which I believe is the right chain of 
calls to create a KafkaConfig object (I created a simple config file in the 
resources directory):

  val factory = new PropertiesConfigFactory()
    val config = 
factory.getConfig(URI.create("file://%s/src/test/resources/test.properties<file:///\\%25s\src\test\resources\test.properties>"
 format new File
(".").getCanonicalPath))
val kafkaConfig = new KafkaConfig(config)

All well and good but then I try and call the appropriate method on the 
KafkaConfig object (with some uncertainty of what the argument needs map to):

val config1 = kafkaConfig.getKafkaSystemConsumerConfig("appname")

This causes an exception to be thrown, the highlights being:

java.lang.IllegalArgumentException: requirement failed: Missing required 
property 'zookeeper.connect'
        at scala.Predef$.require(Predef.scala:145)
        at 
kafka.utils.VerifiableProperties.getString(VerifiableProperties.scala:175)
        at kafka.utils.ZKConfig.<init>(ZkUtils.scala:775)
        at kafka.consumer.ConsumerConfig.<init>(ConsumerConfig.scala:73)
        at kafka.consumer.ConsumerConfig.<init>(ConsumerConfig.scala:77)
        at 
org.apache.samza.config.KafkaConfig.getKafkaSystemConsumerConfig(KafkaConfig.scala:91)

This suggests that to create a ConsumerConfig requires the whole ZK/Kafka stack 
to be instantiated - is this the case and if so pointers to the minimum config 
set required to get it working?  I tried to piece something together from the 
other test cases but couldn't find the right magic.

Or is there an easier way to do all this? :)

Thanks
Garry

Reply via email to