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();
- }
-}