Simplify kafka session creation

Remove unneeded SessionFactoryProvider abstraction and use factory
module instead as it's already done for publisher creation.

Change-Id: I58ccdbb12b48fab6a6cc8e4c5315b90d20def27f
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kafka/Module.java b/src/main/java/com/googlesource/gerrit/plugins/kafka/Module.java
index 53c08e5..03acb16 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/kafka/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/kafka/Module.java
@@ -26,15 +26,13 @@
 import com.googlesource.gerrit.plugins.kafka.message.GsonProvider;
 import com.googlesource.gerrit.plugins.kafka.message.PublisherFactory;
 import com.googlesource.gerrit.plugins.kafka.session.KafkaSessionFactory;
-import com.googlesource.gerrit.plugins.kafka.session.SessionFactoryProvider;
 import com.googlesource.gerrit.plugins.kafka.worker.DefaultEventWorker;
 
 class Module extends FactoryModule {
 
   @Override
   protected void configure() {
-    bind(KafkaSessionFactory.class).toProvider(SessionFactoryProvider.class);
-
+    factory(KafkaSessionFactory.class);
     factory(PublisherFactory.class);
     bind(KafkaProperties.class).toProvider(KafkaPropertiesProvider.class)
         .in(Singleton.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kafka/message/Publisher.java b/src/main/java/com/googlesource/gerrit/plugins/kafka/message/Publisher.java
index 7fa4752..8372f15 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/kafka/message/Publisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/kafka/message/Publisher.java
@@ -22,7 +22,7 @@
 
 import com.googlesource.gerrit.plugins.kafka.config.KafkaProperties;
 import com.googlesource.gerrit.plugins.kafka.session.KafkaSession;
-import com.googlesource.gerrit.plugins.kafka.session.SessionFactoryProvider;
+import com.googlesource.gerrit.plugins.kafka.session.KafkaSessionFactory;
 
 public class Publisher implements EventListener {
 
@@ -33,10 +33,10 @@
 
   @Inject
   public Publisher(
-      SessionFactoryProvider sessionFactoryProvider,
+      KafkaSessionFactory kafkaSessionFactory,
       Gson gson,
       @Assisted KafkaProperties properties) {
-    this.session = sessionFactoryProvider.get().create(properties);
+    this.session = kafkaSessionFactory.create(properties);
     this.properties = properties;
     this.gson = gson;
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSession.java b/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSession.java
index 9b7717d..2abfffa 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSession.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.kafka.session;
 
+import com.google.inject.Inject;
+import com.google.inject.assistedinject.Assisted;
 import com.googlesource.gerrit.plugins.kafka.config.KafkaProperties;
 import org.apache.kafka.clients.producer.KafkaProducer;
 import org.apache.kafka.clients.producer.Producer;
@@ -28,7 +30,8 @@
   private final KafkaProperties properties;
   private volatile Producer<String, String> producer;
 
-  public KafkaSession(KafkaProperties properties) {
+  @Inject
+  public KafkaSession(@Assisted KafkaProperties properties) {
     this.properties = properties;
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSessionFactory.java b/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSessionFactory.java
index 3a13721..c002b5c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSessionFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/kafka/session/KafkaSessionFactory.java
@@ -16,8 +16,6 @@
 
 import com.googlesource.gerrit.plugins.kafka.config.KafkaProperties;
 
-public class KafkaSessionFactory {
-  public KafkaSession create(KafkaProperties properties) {
-    return new KafkaSession(properties);
-  }
+public interface KafkaSessionFactory {
+  KafkaSession create(KafkaProperties properties);
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kafka/session/SessionFactoryProvider.java b/src/main/java/com/googlesource/gerrit/plugins/kafka/session/SessionFactoryProvider.java
deleted file mode 100644
index 0a869be..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/kafka/session/SessionFactoryProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2016 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.googlesource.gerrit.plugins.kafka.session;
-
-import com.google.inject.Provider;
-
-public class SessionFactoryProvider implements Provider<KafkaSessionFactory> {
-
-  @Override
-  public KafkaSessionFactory get() {
-    return new KafkaSessionFactory();
-  }
-}