Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-1101

Need better java api for embedding kafkaserver in a java container app

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      We embed the KafkaServer inside a java service container framework, which makes it easy to deploy and monitor within our infrastructure. When upgrading to kafka 0.8 from 0.7.2, I ran into an issue with not being able to pass the needed constructor arg (SystemTime), since there doesn't appear to be an easy way to instantiate that from java. So, I ended up with this janky solution using SystemTime$.MODULE$.

      Could a default constructor be added which assumes a default SystemTime, rather than requiring that here?

      Note, I need to construct a KafkaServer directly, since I need to manage the lifecycle more directly than can be done with KafkaServerStartable.

            // Need to do janky scala MODULE$ dereferencing, in order to get a default value in ctor
            server = new kafka.server.KafkaServer(kafkaConfig, SystemTime$.MODULE$);
            server.startup();
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            jbrosenberg@gmail.com Jason Rosenberg
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated: