Skip to content

Commit 0e71269

Browse files
author
Aliaksandr.Shpak
committed
- default group name via command line support
1 parent 12dd4c5 commit 0e71269

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

src/main/scala/devtools/kafka_data_viewer/AppSettings.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ object AppSettings {
4747
def withres[T <: AutoCloseable, R](t: T)(f: T => R): R = try f(t) finally t.close()
4848

4949

50-
def connect(): AppSettings = {
50+
def connect(defaultGroup: String): AppSettings = {
5151

5252
val $ = new DisposeStore()
5353

@@ -127,7 +127,7 @@ object AppSettings {
127127
root.listNodes[ConnectionDefinition]("connections", connections, ConnectionDefinition(), (item, node) => {
128128
node.property("name", item.name)
129129
node.property("kafkaHost", item.kafkaHost)
130-
node.property("group", item.group, "local.connection")
130+
node.property("group", item.group, defaultGroup)
131131
node.listStrings("avroRegistries", item.avroRegistries)
132132
node.listCustom("topicsSettings", item.topicSettings)
133133
})

src/main/scala/devtools/kafka_data_viewer/KafkaDataViewer.scala

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,16 @@ import devtools.lib.rxui.FxRender.DefaultFxRenderes
2020
import devtools.lib.rxui.UiImplicits._
2121
import devtools.lib.rxui._
2222
import io.reactivex.schedulers.Schedulers
23+
import org.apache.commons.cli.{DefaultParser, Options}
2324
import org.apache.kafka.common.errors.InterruptException
2425

2526
import scala.concurrent.{ExecutionContextExecutor, Future}
2627
import scala.language.postfixOps
2728

2829
class KafkaDataViewerAppPane(val layoutData: String = "",
2930
connections: BehaviorSubject[Seq[ConnectionDefinition]],
30-
filters: BehaviorSubject[Seq[FilterData]]
31+
filters: BehaviorSubject[Seq[FilterData]],
32+
defaultGroup: String
3133
)(implicit uiRenderer: UiRenderer) extends UiObservingComponent {
3234

3335
case class ConnectionsSet(logging: ConsumerConnection, read: ConsumerConnection, master: ConsumerConnection, producer: ProducerConnection)
@@ -112,7 +114,12 @@ class KafkaDataViewerAppPane(val layoutData: String = "",
112114
override def content(): UiWidget = UiPanel("", Grid(), items = Seq(
113115
UiSplitPane("grow", orientation = UiHoriz, proportion = 15, els = (
114116
UiTabPanel(tabs = Seq(
115-
UiTab(label = "Connections List", content = new KafkaConnectionsListPane(connections = connections, onConnect = onConnect)))),
117+
UiTab(label = "Connections List",
118+
content = new KafkaConnectionsListPane(
119+
connections = connections,
120+
onConnect = onConnect,
121+
defaultGroup = defaultGroup
122+
)))),
116123
UiTabPanelExt[ConnHandle](
117124
tabs = connectOps,
118125
selection = selected,
@@ -326,17 +333,19 @@ object KafkaDataViewer {
326333

327334
def main(args: Array[String]): Unit = {
328335

329-
// val options = new Options()
330-
// options.addRequiredOption("n", "groupname", true, "Group name to connect to kafka server")
331-
//
332-
// val cli = new DefaultParser().parse(options, args)
333-
// val groupName = cli.getOptionValue("n")
336+
val options = new Options()
337+
options.addOption("n", "groupname", true, "Group name to connect to kafka server")
334338

335-
val appSettings = AppSettings.connect()
339+
val cli = new DefaultParser().parse(options, args)
340+
val groupName = cli.getOptionValue("n")
341+
342+
val defaultGroup = Option(groupName).getOrElse("local.connection")
343+
val appSettings = AppSettings.connect(defaultGroup = defaultGroup)
336344

337345
DefaultFxRenderes.runApp(root = new KafkaDataViewerAppPane(
338346
connections = appSettings.connections,
339-
filters = appSettings.filters
347+
filters = appSettings.filters,
348+
defaultGroup = defaultGroup
340349
), postAction = uiRenderer => {
341350
implicit val ec: ExecutionContextExecutor = scala.concurrent.ExecutionContext.global
342351
Future { AppUpdate.verify() }.onComplete(r => {

src/main/scala/devtools/kafka_data_viewer/ui/KafkaConnectionsListPane.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import scala.language.postfixOps
1212
class KafkaConnectionsListPane(val layoutData: String = "",
1313
connections: BehaviorSubject[Seq[ConnectionDefinition]],
1414
onConnect: Subject[ConnectionDefinition],
15+
defaultGroup: String
1516
)(implicit uiRenderer: UiRenderer) extends UiObservingComponent {
1617

1718
private val onAdd = publishSubject[Unit]()
@@ -23,6 +24,7 @@ class KafkaConnectionsListPane(val layoutData: String = "",
2324
val applyHandle = publishSubject[Unit]()
2425
val closeHandle = publishSubject[Unit]()
2526
val newConnection = ConnectionDefinition()
27+
newConnection.group << defaultGroup
2628
for (conn <- $(applyHandle)) connections << connections.value :+ newConnection
2729
uiRenderer.runModal(new ConfigureConnectionWindow("", newConnection, applyHandle, closeHandle), close = closeHandle)
2830
}

0 commit comments

Comments
 (0)