Skip to content

Commit

Permalink
1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
nicshub committed Nov 8, 2024
1 parent d5df77e commit 42ccbe1
Show file tree
Hide file tree
Showing 25 changed files with 137 additions and 207 deletions.
14 changes: 6 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
![](images/b3b3l.webp)

Usage

To send a message confused with "farfallino" alphabet
% curl -d "Salvo" http://localhost:9090

mvn archetype:generate \
-DarchetypeGroupId=org.apache.kafka \
-DarchetypeArtifactId=streams-quickstart-java \
-DarchetypeVersion=3.9.0 \
-DgroupId=streams.examples \
-DartifactId=kafka-streams.examples \
-Dversion=0.1 \
-Dpackage=tap
To send a message confused with "hacker" alphabet
% curl -d "Salvo" http://localhost:9091
22 changes: 17 additions & 5 deletions babel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ services:
XPACK_MONITORING_ENABLED: "false"
ports:
- 9090:9090
- 9091:9091
volumes:
- ./logstash-babel.conf:/usr/share/logstash/pipeline/logstash.conf
depends_on:
Expand All @@ -27,14 +28,13 @@ services:
container_name: broker
ports:
- '9092:9092'
- '9093:9093'
environment:
KAFKA_NODE_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,DMI:PLAINTEXT'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT_HOST://broker:9092,PLAINTEXT://broker:19092,DMI://151.97.56.148:9093'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT_HOST://broker:9092,PLAINTEXT://broker:19092'
KAFKA_PROCESS_ROLES: 'broker,controller'
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@broker:29093'
KAFKA_LISTENERS: 'CONTROLLER://:29093,PLAINTEXT_HOST://:9092,PLAINTEXT://:19092,DMI://:9093'
KAFKA_LISTENERS: 'CONTROLLER://:29093,PLAINTEXT_HOST://:9092,PLAINTEXT://:19092'
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
CLUSTER_ID: '4L6g3nShT-eMCtK--X86sw'
Expand All @@ -53,8 +53,20 @@ services:
- broker
babel-stream:
image: babel
command: tap.Pipe
command: tap.confundus
depends_on:
babel-topics:
condition: service_completed_successfully
babel-input:
image: apache/kafka:latest
command: /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server broker:9092 --topic babel-input --formatter kafka.tools.DefaultMessageFormatter --property print.key=true --property print.value=true --property key.deserializer=org.apache.kafka.common.serialization.StringDeserializer --property value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
depends_on:
babel-topics:
condition: service_completed_successfully
babel-output:
image: apache/kafka:latest
command: /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server broker:9092 --topic babel-output --formatter kafka.tools.DefaultMessageFormatter --property print.key=true --property print.value=true --property key.deserializer=org.apache.kafka.common.serialization.StringDeserializer --property value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
depends_on:
babel-topics:
condition: service_completed_successfully

17 changes: 14 additions & 3 deletions logstash-babel.conf
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
input {
http {
id => "tap_http_in"
id => "farfallino"
port => 9090
add_field => { "confused_language" => "farfallino" }
}

http {
id => "hacker"
port => 9091
add_field => { "confused_language" => "hacker" }
}
}

filter {
if [http][method] != "POST"{
drop {}
}

mutate {
remove_field => ["@timestamp", "@version", "url", "host", "http", "event", "user_agent"]
}
}

output {
kafka {
codec => json
codec => plain { format => "%{message}" }
topic_id => "babel-input"
bootstrap_servers => "broker:9092"
message_key => "farfallino"
message_key => "%{confused_language}"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@ WORKDIR /app
COPY pom.xml .

# Downloading dependencies
RUN mvn -f ./pom.xml clean package
RUN mvn -f ./pom.xml clean

COPY src src

RUN mvn -f ./pom.xml package
CMD /bin/bash

FROM apache/kafka:latest
ENV PATH /opt/kafka/bin:$PATH
WORKDIR /opt/kafka/
COPY --from=build /app/target/*.jar /opt/kafka/libs
ENTRYPOINT [ "kafka-run-class.sh"]
ENTRYPOINT [ "kafka-run-class.sh"]
95 changes: 0 additions & 95 deletions stream/kafka-streams.examples/src/main/java/tap/Pipe.java

This file was deleted.

81 changes: 0 additions & 81 deletions stream/kafka-streams.examples/src/main/java/tap/WordCount.java

This file was deleted.

2 changes: 1 addition & 1 deletion stream/kafka-streams.examples/pom.xml → stream/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<modelVersion>4.0.0</modelVersion>

<groupId>streams.examples</groupId>
<artifactId>kafka-streams.examples</artifactId>
<artifactId>stream</artifactId>
<version>0.1</version>
<packaging>jar</packaging>

Expand Down
31 changes: 31 additions & 0 deletions stream/src/main/java/tap/FarfallinoTranslator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package tap;

public class FarfallinoTranslator {

// Method to check if a character is a vowel
private static boolean isVowel(char c) {
return "aeiouAEIOU".indexOf(c) != -1;
}

// Method to translate the given string to Farfallino alphabet
public static String toFarfallino(String input) {
StringBuilder translated = new StringBuilder();

// Iterate over each character in the input string
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);

// If the character is a vowel, apply Farfallino transformation
if (isVowel(c)) {
translated.append(c); // Add the original vowel
translated.append('f'); // Add 'f'
translated.append(c); // Add the same vowel again
} else {
translated.append(c); // Add the consonant unchanged
}
}

return translated.toString();
}

}
31 changes: 31 additions & 0 deletions stream/src/main/java/tap/HackerLanguageTranslator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package tap;

public class HackerLanguageTranslator {

// Method to translate a character to its Hacker Language equivalent
private static char toHackerChar(char c) {
switch (Character.toLowerCase(c)) {
case 'a': return '4';
case 'e': return '3';
case 'i': return '1';
case 'o': return '0';
case 't': return '7';
default: return c; // If not a vowel or "t", keep the character unchanged
}
}

// Method to translate the given string to Hacker Language
public static String toHackerLanguage(String input) {
StringBuilder translated = new StringBuilder();

// Iterate over each character in the input string
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
translated.append(toHackerChar(c)); // Translate each character
}

return translated.toString();
}


}
Loading

0 comments on commit 42ccbe1

Please sign in to comment.