View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
20 [KafkaEsque] Feature Request minor have not tried 2019-01-16 15:27 2023-02-02 15:02
Reporter: pkleindl Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Show topics statistics
Description:

Add option to show statistics for a topic.
The attached code allows to sum up the offsets per day and calculate the differences.

Functionality would be useful per topic or as a report (csv-based or other), although it takes a while in the current form for a larger number of topics.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TopicsStats.java (4,763 bytes) 2019-01-16 15:27
https://kafka.esque.at/issues/file_download.php?file_id=13&type=bug
Notes
(0000026)
Oliver G.   
2019-03-17 10:17   

I have checked the code today and IMHO both the feature and the short implementation seem to be a good basis for the actual KafkaEsque implementation. However, I opened the new issue https://kafka.esque.at/issues/view.php?id=22 with prio high, since I would prefer to have that important refactoring before adding new features like this to the code.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
22 [KafkaEsque] Improvement tweak always 2019-03-17 10:11 2019-05-24 16:56
Reporter: Oliver G. Platform:  
Assigned To: OS:  
Priority: high OS Version:  
Status: new Product Version: 0.12.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Separate Responsibilities of the Controller
Description:

The Controller class has too many responsibilities and it would be desirable to separate these responsibilities into separate classes:

1., Configuration Management (configHandler): inject the configHandler singleton whereever it is needed and try to remove/extract those parts of the code that have Feature Envy (e.g. when configHandler is used in connection with TopicMessageTypeConfig):
Map<String, TopicMessageTypeConfig> configs = configHandler.getTopicConfigForClusterIdentifier(selectedCluster().getIdentifier());
TopicMessageTypeConfig topicMessageTypeConfig = getTopicMessageTypeConfig(configs); //configHandler is also used inside this method
Map<String, String> consumerConfig = configHandler.readConsumerConfigs(selectedCluster().getIdentifier());

2., Kafka Service Layer: e.g. Number of Runnables executed by runInDaemonThread need only singletons like consumerHandlers injected, but probably do not need to be part of the JavaFx Controller

3., EventHandlers passed as parameter in setOnAction can be very likely extracted. Be aware that these EventHandlers will also benefit from 1., and 2.,

I will give prio high to this issue, since it can dramatically increase the speed of future develepmoent tasks.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000027)
Oliver G.   
2019-03-18 21:03   

Please check my "cleanercode" branch for possible way, how the refactoring could look like. I introduced the concept of the BackgroundRunnable and extracted TopicsForCluster as an example. At the end of the day the BackGroundTaskHolder will probably turn into some kind of BackgroundTaskManager taking this responsibility completely from the Controller. Please give me feedback to this approach. (unfortunately this commit contains a little refactoring from the develop branch, too, sorry)

https://github.com/grofoli/KafkaEsque/commit/b2bad5a671ab5f479ba5d67f9266a5b5f92351e8#diff-57f7831e57d5d46e1e68776b121d82d4

https://github.com/grofoli/KafkaEsque/commit/b2bad5a671ab5f479ba5d67f9266a5b5f92351e8#diff-e61f00380df8f263ae76df2baba743c9

(0000030)
Oliver G.   
2019-05-24 16:56   

In order to have the ability to split the Controller class, it could be very helpful to have the KafkaesqueAdminClient injectable. Therefore I continued development on my cleanercode branch. Please check my latest changes as well: https://github.com/grofoli/KafkaEsque/commit/169b1d503b55768cff21afe62fe47d8796f61e4f


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
12 [KafkaEsque] Improvement minor have not tried 2018-11-26 06:47 2019-05-06 06:22
Reporter: patschuh Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 1.0.0  
    Target Version: 1.0.0  
Summary: Improve Configuration Handling
Description:

Introduce a ConfigurationManager that is able to handle the following szenarios properly:

  • Adding a new cluster
  • Removing a Cluster
  • Adding a schema-registry url to an existing cluster
  • Adding Topic specific configuration (needed to enable avro consumers/producers)
Tags:

Refactoring

Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
19 [KafkaEsque] Improvement tweak always 2019-01-09 22:13 2019-05-06 06:21
Reporter: Oliver G. Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 1.0.0  
    Target Version:  
Summary: In the TraceInputDialog the TextField for the key should be bigger
Description:

In order to improve the usability when tracing a key, make the TextField for the key larger.
Reason: the key can be a JSON like
{"transactionId":"8929caf8-de81-447f-823e-c9ef39522d9a", superSecretCode:"eventDrivenStream.v28"}
which is not easy to edit in the current TextField.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000025)
Oliver G.   
2019-03-16 08:15   

A Pull Request has been opened on 2019-03-15.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
23 [KafkaEsque] Improvement feature have not tried 2019-04-06 22:17 2019-04-06 22:17
Reporter: Oliver G. Platform:  
Assigned To: OS:  
Priority: none OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Integration Tests with test containers
Description:

As an alternative to EmbeddedKafka, you can let the testcontainers rule start the confluent docker containers.
https://www.testcontainers.org/modules/kafka/

Due to the fact that Docker is a requirement, integration tests should be a separate folder and/or category and must be excluded from default build.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
8 [KafkaEsque] Bug minor always 2018-11-24 17:08 2019-02-25 12:09
Reporter: patschuh Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0.0  
Summary: NPE Cleanup
Description:

Fix NPEs when clicking on buttons without having made the required selections before.
Preferably disable control if the required selection has not been made.

Tags:

Refactoring

Steps To Reproduce:
  • Creating a topic without selecting a cluster -> NPE-ErrorAlert
  • Trying to get or publish messages without selecting a topic -> NPE-ErrorAlert for publishing / NPE in background for getting
  • Playing a message book without selecting a cluster -> NPE-ErrorAlert
  • Opening the Schema registry browser without selecting a cluster -> NPE-ErrorAlert
Additional Information:
Attached Files:
Notes
(0000022)
Emin   
2019-01-23 15:21   

Switching Schema in schema registry > NPE


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
15 [KafkaEsque] Feature Request feature N/A 2018-11-29 21:20 2019-02-15 23:48
Reporter: Oliver G. Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Analytical Message Consuming
Description:

Architects, analysts, developers or testers are sometimes interested in some statistical overview of the data consumed from a topic.
Consider introducing a simple analysis feature based on some predicates and calculating percentages.

For example:
1., there is topic orderCompleted
2., the following messages are published to the topic :
{
"orderNr": "abc/12",
"completedAt": "2018-05-01T10:00:00.000Z"
}
3., User defines predicates for e.g. quarters of the year based on the timestamp.
4., User starts consuming from a topic, either print the result live or gather data first and calculate result in a post-processing.
Then print something like (numbers are random in the example):
Q1 140.000 23,76%
Q2 150.000 26,24%
...
All 700.000 100%

Do NOT aim to implement an OLAP Engine / Cube based analysis tool, this is out of scope of KafkaEsque. Only provide possibility for simple analyis like above.
Instead of providing detailed technical descriptions or even patches to be apply, the goal of this feature request is to be a basis for further discussions and to gather ideas.
The following questions need to be answered:
1., Is this a useful feature or is there another simple way to gather this information? KSQL, "quickly" write a Streams App, other tools?
2., What would the syntax of the predicates be like?

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000015)
Oliver G.   
2018-12-05 23:19   

I have created a (little weird) GIST to show an idea with Kotlin Scripting.
This is obviously not a ready-to-use solution, but maybe it helps to bring the original idea of the ticket to life.
However, the code in the gist is executable on my machine.

https://gist.github.com/grofoli/ac795868f24190d5698de8b33909dc90

If the solution will be really based on "JSR-000223 Scripting for the JavaTM Platform", we must check what they support in Java 9+.

(0000023)
Oliver G.   
2019-02-15 23:23   

Old article, but maybe interesting for this tasks: https://bytes.com/topic/python/insights/949995-three-ways-run-python-programs-java

(0000024)
Oliver G.   
2019-02-15 23:48   

Another thing to check is Groovy: http://docs.groovy-lang.org/latest/html/documentation/guide-integrating.html.
Groovy is definitely more alive, than Jython.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
18 [KafkaEsque] Improvement trivial N/A 2018-12-18 14:05 2019-01-18 17:12
Reporter: Emin Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 0.12.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Open in Editor Patch
Description:

Patch to add open in txt/json editor functionality in message list context menu.

Currently throws exception if no default program is set for the file type you are trying to open (.txt or .json), should have popup or check

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: openineditor.patch (3,182 bytes) 2018-12-18 14:05
https://kafka.esque.at/issues/file_download.php?file_id=12&amp;type=bug
Notes
(0000021)
Emin   
2018-12-18 14:26   

Desktop.getDesktop().edit() auf Desktop.getDesktop.open() ändern - funktioniert dann besser mit default editors und keinem gesetzten editor


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
17 [KafkaEsque] Improvement feature N/A 2018-12-14 08:26 2018-12-16 12:23
Reporter: Emin Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 0.12.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Json Tree View Patch
Description:

Patch for Json Tree View when using Format as Json.

Needs work to deal with nested ArrayLists/Maps and to clean up unsafe casts.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: jsontree.patch (4,129 bytes) 2018-12-14 08:26
https://kafka.esque.at/issues/file_download.php?file_id=9&amp;type=bug
jsontree-new.patch (4,432 bytes) 2018-12-14 11:49
https://kafka.esque.at/issues/file_download.php?file_id=10&amp;type=bug
jsontree-final.patch (7,510 bytes) 2018-12-14 12:21
https://kafka.esque.at/issues/file_download.php?file_id=11&amp;type=bug
Notes
(0000018)
Emin   
2018-12-14 11:49   

New Patch with infinitely recursive search and support for non-string types

(0000019)
Emin   
2018-12-14 12:21   

Final Patch with code cleanup and auto expansion of lists and top level map

(0000020)
patschuh   
2018-12-16 12:23   

Implemented the JsonTreeView as its own control based on the patch


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
14 [KafkaEsque] Improvement tweak have not tried 2018-11-27 11:06 2018-12-13 18:53
Reporter: patschuh Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.12.0  
    Target Version:  
Summary: Add option for trace start position
Description:

Introduce an option to either trace from a specific offset or a specific timestamp.

Notes:
Using offsetsForTimes should work for this (could also make polling messages in a specified timeframe possible)

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000016)
patschuh   
2018-12-13 18:51   

Option to trace from a specified timestamp (in epoch millisec) was added


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
11 [KafkaEsque] Improvement feature have not tried 2018-11-25 22:45 2018-12-13 18:53
Reporter: Oliver G. Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 0.12.0  
    Target Version: 0.12.0  
Summary: Fix consumer indefinite blocking behaviour
Description:

Use poll(Duration) instead of poll(long), but be aware to add some timeout instead of 0 (long).

https://cwiki.apache.org/confluence/display/KAFKA/KIP-266%3A+Fix+consumer+indefinite+blocking+behavior

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000010)
patschuh   
2018-11-26 17:04   
(Last edited: 2018-11-27 06:10)

Looking at the KafkaConsumercode in 2.0 it seems more reliable to use position(TopicPartion, Duration) or just position(TopicPartition)instead of poll(Duration), because according to the JavaDoc position(TopicPartition) actually throws a TimeoutException if the position cannot be determined before the passed timeout expires.

(0000017)
patschuh   
2018-12-13 18:53   

should be fixed with consumer handling rework in 0000014


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
16 [KafkaEsque] Improvement feature N/A 2018-11-29 22:18 2018-12-05 19:01
Reporter: Oliver G. Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.12.0  
    Target Version:  
Summary: Dependency Injection with Guice (or Spring)
Description:

(Spike :-) )
Analyse if you want to use a Dependency Injection Framework in KafkaEsque.
Consider checking Guice, maybe it is a good fit to JavaFX.

Simple sample containing a link to a short blog entry of the author
https://github.com/Pscheidl/JavaFX8DependencyInjection

Although German Wiki Page shows old version and some resources are from 2016, Guice seems to be alive and had a new version one month ago:
https://mvnrepository.com/artifact/com.google.inject/guice/4.2.2

When comparing to Spring, I recommend checking a number of aspects also listed in the following article, e.g. startup time, dependency size, compile time help:
https://dzone.com/articles/an-opinionless-comparison-of-spring-and-guice

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000013)
patschuh   
2018-11-30 17:29   

To make guice work, the controller reference in the fxml had to be removed.
If this causes problems or leads to excessive amounts of warnings and errors in IntelliJ or SceneBuilder in the future, guice will be removed again.

(0000014)
patschuh   
2018-12-03 07:29   

Looked over it again, will have to change the FXMLLoader initialization, then the Controller reference in the fxml should be able to stay


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
10 [KafkaEsque] Improvement tweak N/A 2018-11-25 22:13 2018-11-27 20:57
Reporter: Oliver G. Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.12.0  
    Target Version: 0.12.0  
Summary: WindowsEmbeddedKafka Patch
Description:

Patch ist im Anhang.

  • Broker Port ist Fix und nicht mehr random.
  • Hacks, damit Kafka Ordner unter Windows gelöscht werden.
  • Tempus Fugit mit Test Scope.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WindowsEmbeddedKafka.patch (3,893 bytes) 2018-11-25 22:13
https://kafka.esque.at/issues/file_download.php?file_id=7&amp;type=bug
WindowsEmbeddedKafka1.patch (6,104 bytes) 2018-11-26 20:20
https://kafka.esque.at/issues/file_download.php?file_id=8&amp;type=bug
Notes
(0000011)
Oliver G.   
2018-11-26 20:20   

Attaching patch 2nd try.

(0000012)
patschuh   
2018-11-27 20:57   

Reviewed and applied patch


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
13 [KafkaEsque] Improvement minor have not tried 2018-11-26 08:32 2018-11-26 14:21
Reporter: pkleindl Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.12.0  
    Target Version:  
Summary: Key Search für Partition
Description:

Limit searching for records by key to the partition the records belong to.
Basic code see below.

Tags:
Steps To Reproduce:

public class PartitionFinder {

public static final String TM_TRANSPORT_PLAN_INTERNAL = &quot;tm.transportPlan.internal&quot;;
public static final String KEY = &quot;\&quot;1989e567-b6d1-fc12-910c-f027bc56d7f0\&quot;&quot;;
private static Logger logger = LoggerFactory.getLogger(PartitionFinder.class);

public static void main(String[] args) throws Exception {

    String bootstrapServers = &quot;widmpp01.lkw-walter.com:9092&quot;;

    Properties config = new Properties();
    config.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
    AdminClient adminClient = AdminClient.create(config);

    DescribeClusterResult describeClusterResult = adminClient.describeCluster();
    System.out.println(describeClusterResult.clusterId().get());
    System.out.println(describeClusterResult.nodes().get());

    List&lt;TopicPartitionInfo> topicPartitionInfo =
    adminClient.describeTopics(List.of(TM_TRANSPORT_PLAN_INTERNAL)).values().get(TM_TRANSPORT_PLAN_INTERNAL).get().partitions();
    List&lt;PartitionInfo> partitionInfos = topicPartitionInfo.stream().map(new Function&lt;TopicPartitionInfo, PartitionInfo>() {
                                                                             @Override
                                                                             public PartitionInfo apply(TopicPartitionInfo topicPartitionInfo) {
                                                                                 PartitionInfo partitionInfo = new PartitionInfo(
                                                                                         TM_TRANSPORT_PLAN_INTERNAL,topicPartitionInfo.partition(),topicPartitionInfo.leader(),topicPartitionInfo.replicas().toArray(new Node[]{}),topicPartitionInfo.isr().toArray(new Node[]{})
                                                                                 );
                                                                                 return partitionInfo;
                                                                             }

                                                                             @Override
                                                                             public &lt;V> Function&lt;V, PartitionInfo> compose(Function&lt;? super V, ? extends TopicPartitionInfo> before) {
                                                                                 return null;
                                                                             }

                                                                             @Override
                                                                             public &lt;V> Function&lt;TopicPartitionInfo, V> andThen(Function&lt;? super PartitionInfo, ? extends V> after) {
                                                                                 return null;
                                                                             }
                                                                         }).collect(Collectors.toList());

    System.out.println(partitionInfos.toString());

    Cluster cluster = new Cluster(describeClusterResult.clusterId().get(),describeClusterResult.nodes().get(),partitionInfos,new HashSet&lt;>(),new HashSet&lt;>(),null);

    Partitioner partitioner = new DefaultPartitioner();

    System.out.println(cluster.toString() + &quot; : &quot; + cluster.partitionCountForTopic(TM_TRANSPORT_PLAN_INTERNAL));
    int partition = partitioner.partition(TM_TRANSPORT_PLAN_INTERNAL, KEY, KEY.getBytes(),null,null,cluster);

    System.out.println(partition);

    System.exit(0);
}

}

Additional Information:
Attached Files:
Notes
(0000007)
pkleindl   
2018-11-26 10:05   

Nachtrag: Ev. Abkürzung: https://stackoverflow.com/questions/50164566/how-to-check-which-partition-is-a-key-assign-to-in-kafka
Damit sollte die Anzahl an Partitions reichen.

(0000009)
patschuh   
2018-11-26 14:21   

Added an option to the trace key dialog, limiting the trace process to one partition


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
9 [KafkaEsque] Improvement tweak always 2018-11-25 22:06 2018-11-26 12:56
Reporter: Oliver G. Platform:  
Assigned To: patschuh OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.12.0  
    Target Version: 0.12.0  
Summary: Improve Error Alert for JSON Validation Errors
Description:

Show Message instead of RuntimeException and StackTrace.
Patch with the a possible solution will be attached.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Improved_Error_Alert_for_JSON_Validation.patch (7,214 bytes) 2018-11-25 22:06
https://kafka.esque.at/issues/file_download.php?file_id=6&amp;type=bug
Notes
(0000008)
patschuh   
2018-11-26 12:56   

Reviewed and applied patch


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6 [KafkaEsque] Feature Request feature N/A 2018-11-23 22:09 2018-11-25 16:05
Reporter: Oliver G. Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.11.0  
    Target Version: 0.11.0  
Summary: Header Support
Description:

Notizen
1., ProducerRecord hat Constructor Iterable<Header> headers, partition muss null sein oder Integer >=0
2., CosumerRecord hat public Headers headers()
3., Konvertierung in KafkaMessage (convertAndAdd) muss angepasst werden
4., (i) Zeigen der Header in TableView fx:id="messageTable" nicht notwendig
5., Darstellung unten neben Key/Value in der TabPane gut möglich, Screenshot vom Prototyp wird angehängt
6., (!) Größte Herausforderung wird das Layout des Publish Message Dialogs. Dort muss eine Liste von Header Key - Header Value Paaren hinzugefügt werden können

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: header_anzeigen.png (12,505 bytes) 2018-11-23 22:09
https://kafka.esque.at/issues/file_download.php?file_id=1&amp;type=bug
png

Overlay closed.JPG (37,711 bytes) 2018-11-25 14:31
https://kafka.esque.at/issues/file_download.php?file_id=4&amp;type=bug
jpg

Overlay open.JPG (31,165 bytes) 2018-11-25 14:31
https://kafka.esque.at/issues/file_download.php?file_id=5&amp;type=bug
jpg
Notes
(0000004)
Oliver G.   
2018-11-25 11:07   

Weitere Ideen:
1., Publish Teil kann man eventuell auch in einem separaten Ticket bearbeiten
2., Eine mögliche (ich weiß noch nicht, ob eine gute) Lösung wäre ein Accordion. Ein Pane für Key + Value, ein Pane für Headers.
3., Üblegen, ob wir KafkaEsque als Produzent in einem Header mitgeben wollen. Schauen, ob es ein Standard Header dafür gibt oder etwas wie X-Published-by oder so verwenden.

(0000005)
patschuh   
2018-11-25 14:31   

Eine Idee wäre noch die header im Publisher mit eine art overlay zu lösen

(0000006)
patschuh   
2018-11-25 16:04   
(Last edited: 2018-11-25 16:05)
  • Implemented with the Overlayed TitledPane
  • Headers will be exported but cannot be used in Message Books

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2 [KafkaEsque] Improvement tweak always 2018-11-23 15:28 2018-11-25 15:08
Reporter: Oliver G. Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.11.0  
    Target Version: 0.11.0  
Summary: Popup bei JSON Formatierungsfehler
Description:

IST:
Passiert ein Fehler bei der JSON Formatierung, kommt ein Popup (ErrorAlert).
Falls z.B. der Key ein String ist, bekommt man beim jeden Record eine Fehlermeldung.

VORSCHLAG:
Es reicht wahrscheinlich, wenn man im key oder value text area einen aussagekräftigen Text setzt (keyTextArea.setText).
Eventuell kann auch den original key oder value ins text area setzen, wenn die Formatierung nicht geklappt hat oder zumindest vor der Error Message angeben.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000001)
patschuh   
2018-11-23 21:36   

patch reviewed and applied


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3 [KafkaEsque] Bug minor always 2018-11-23 15:35 2018-11-25 15:08
Reporter: Oliver G. Platform:  
Assigned To: patschuh OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.11.0  
    Target Version: 0.11.0  
Summary: NullPointerException wenn man JSON formatieren will, aber kein Record ausgewählt hat
Description:

Wenn man sofort nach Start der Applikation auf "Format as JSON" klickt, bekommt man eine NullPointerException.

Ich habe es bei mir lokal mit folgendem Null Check gelöst:
formatJsonToggle.selectedProperty().addListener((observable, oldValue, newValue) -> {
KafkaMessage selectedItem = messageTable.getSelectionModel().getSelectedItem();
if (selectedItem == null) {
return;
}

Tags:
Steps To Reproduce:

1., Starte Appikation
2., Klick auf "Format as JSON"

Additional Information:
Attached Files:
Notes
(0000002)
patschuh   
2018-11-23 21:37   

patch reviewed and applied


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
4 [KafkaEsque] Feature Request feature N/A 2018-11-23 15:51 2018-11-25 15:08
Reporter: Oliver G. Platform:  
Assigned To: patschuh OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.11.0  
    Target Version: 0.11.0  
Summary: Topic Management mit YAML Konfig
Description:

Man könnte ein YAML File mit allen Topics einlesen und anlegen. :-)
Für Entwickler oder "unknown Entwickler"

componentName: anyNameSinceItsTheConfigForAllComponents
topics:

  • name: abc.abc
    config:
    cleanup.policy: compact
Tags:
Steps To Reproduce:

1., File Browser öffnen
2., YAML File auswählen
3., Play Button
4., Confirmation Window
5., Ausführen
6., [Optional] Fortschritt/Protokoll anzeigen

Additional Information:
Attached Files:
Notes
(0000003)
patschuh   
2018-11-24 23:18   

Added description in wiki https://git.autrage.tk/Modulo/Kafkaesque/wikis/features/topic-Templates


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7 [KafkaEsque] Improvement feature N/A 2018-11-24 16:55 2018-11-25 15:08
Reporter: patschuh Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.11.0  
    Target Version: 0.11.0  
Summary: Get current topic Config
Description:

add an option to get and display the current topic configuration

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: topicDescriptionWindow.JPG (73,886 bytes) 2018-11-24 19:16
https://kafka.esque.at/issues/file_download.php?file_id=3&amp;type=bug
jpg
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5 [KafkaEsque] Improvement tweak always 2018-11-23 20:59 2018-11-25 15:08
Reporter: Oliver G. Platform:  
Assigned To: patschuh OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.11.0  
    Target Version: 0.11.0  
Summary: Löschen der falschen / obsoleten Broker Configs über die GUI
Description:

IST: geht nicht
SOLL: soll gehen :-)

  • Prio natürlich low
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: deleteDialog.jpg (34,048 bytes) 2018-11-23 22:39
https://kafka.esque.at/issues/file_download.php?file_id=2&amp;type=bug
jpg
There are no notes attached to this issue.