Skip to content

Commit 27f8370

Browse files
committed
Let's use an integration test to experiment with topic setup
1 parent b467f5a commit 27f8370

File tree

6 files changed

+48
-23
lines changed

6 files changed

+48
-23
lines changed

build.gradle

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
repositories {
23
mavenCentral()
34
jcenter()
@@ -14,10 +15,15 @@ apply plugin: "jacoco"
1415

1516
group 'se.yolean'
1617

18+
sourceCompatibility = 1.8
19+
1720
apply plugin: 'application'
1821
mainClassName = 'se.yolean.kafka.topic.client.cli.Client'
1922

20-
sourceCompatibility = 1.8
23+
configurations {
24+
compile.exclude group: 'org.slf4j', module: 'slf4j-log4j12'
25+
compile.exclude group: 'log4j', module: 'log4j'
26+
}
2127

2228
dependencies {
2329
compile group: 'javax.inject', name: 'javax.inject', version: '1'
@@ -31,6 +37,7 @@ dependencies {
3137
compile group: 'io.confluent', name: 'kafka-schema-registry-client', version: '4.0.0'
3238

3339
runtime group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'
40+
runtime group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.25'
3441
compile group: 'structlog4j', name: 'structlog4j-api', version: '1.0.0'
3542
compile group: 'structlog4j', name: 'structlog4j-json', version: '1.0.0'
3643

@@ -55,6 +62,12 @@ buildscript {
5562
}
5663
dependencies {
5764
classpath 'org.standardout:gradle-eclipseconfig:1.1.0'
65+
classpath 'org.unbroken-dome.gradle-plugins:gradle-testsets-plugin:1.4.2'
5866
}
5967
}
6068
apply plugin: 'org.standardout.eclipseconfig'
69+
70+
apply plugin: 'org.unbroken-dome.test-sets'
71+
testSets {
72+
itest
73+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package se.yolean.kafka.topic.client.service;
2+
3+
import java.util.Properties;
4+
5+
import com.google.inject.AbstractModule;
6+
import com.google.inject.name.Names;
7+
8+
public class IntegrationTestConfigLocalhost extends AbstractModule {
9+
10+
@Override
11+
protected void configure() {
12+
bind(String.class).annotatedWith(Names.named("config:bootstrap")).toInstance("localhost:9092");
13+
14+
bind(String.class).annotatedWith(Names.named("config:adminTopic")).toInstance("_topic_declarations");
15+
16+
bind(Integer.class).annotatedWith(Names.named("config:adminInitTimeoutMs")).toInstance(1000);
17+
18+
bind(Integer.class).annotatedWith(Names.named("config:adminTopicDesiredReplicationFactor")).toInstance(1);
19+
20+
bind(Properties.class).annotatedWith(Names.named("admin")).toProvider(AdminClientPropsProvider.class);
21+
}
22+
23+
}

src/itest/java/se/yolean/kafka/topic/client/service/TopicDeclarationsTopicCheckTest.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,9 @@ public void tearDown() throws Exception {
3333

3434
@Test
3535
public void test() throws Exception {
36-
Injector injector = Guice.createInjector(new AbstractModule() {
37-
@Override
38-
protected void configure() {
39-
bind(Properties.class).toInstance(new Properties());
40-
//bind(TopicDeclarationsTopicCheck.class);
41-
}
42-
});
43-
//TopicDeclarationsTopicCheck check = injector.getInstance(TopicDeclarationsTopicCheck.class);
44-
//check.createOrVerifySchemaTopic();
36+
Injector injector = Guice.createInjector(new IntegrationTestConfigLocalhost());
37+
TopicDeclarationsTopicCheck check = injector.getInstance(TopicDeclarationsTopicCheck.class);
38+
check.createOrVerifySchemaTopic();
4539
}
4640

4741
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
org.slf4j.simpleLogger.defaultLogLevel=info
2+
org.slf4j.simpleLogger.log.se.yolean=debug

src/main/java/se/yolean/kafka/topic/client/service/AdminClientPropsProvider.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,21 @@
66
import javax.inject.Named;
77
import javax.inject.Provider;
88

9+
import org.apache.kafka.clients.admin.AdminClientConfig;
10+
911
public class AdminClientPropsProvider implements Provider<Properties> {
1012

1113
private String bootstrap;
12-
private String acks;
1314

1415
@Inject
15-
public AdminClientPropsProvider(@Named("config:bootstrap") String bootstrap,
16-
@Named("config:acks") String acks) {
16+
public AdminClientPropsProvider(@Named("config:bootstrap") String bootstrap) {
1717
this.bootstrap = bootstrap;
18-
this.acks = acks;
1918
}
2019

2120
@Override
2221
public Properties get() {
23-
// https://kafka.apache.org/0110/javadoc/index.html?org/apache/kafka/clients/producer/KafkaProducer.html
2422
Properties props = new Properties();
25-
props.put("bootstrap.servers", bootstrap);
26-
props.put("acks", acks);
27-
props.put("retries", 0);
28-
props.put("batch.size", 16384);
29-
props.put("linger.ms", 1);
30-
props.put("buffer.memory", 33554432);
31-
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
32-
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
23+
props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrap);
3324
return props;
3425
}
3526

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
org.slf4j.simpleLogger.defaultLogLevel=info
2+
org.slf4j.simpleLogger.log.se.yolean=debug

0 commit comments

Comments
 (0)